Всем, интересующимся устройством мира, рекомендую почитать «Логику случая» Евгения Кунина — книгу о современном научном взгляде на эволюцию (который уже сильно отличается от того, чему нас учили в школе).
Особенно рекомендую её программистам, которым интересно изменение софта со временем и развитие «сложности» — очень многие идеи, изложенные в книге, перекликаются с моими наблюдениями за жизненным циклом кода.
Книга изобилует химическими и биологическим терминами, но они не мешают восприятию информации, в крайнем случае пояснение всегда можно найти в википедии.
Для затравки перескажу своими словами наиболее интересные факты. Только учтите, что я ни разу не биолог и могу сильно ошибаться.
Животрепещущий вопрос, не правда ли?
Меня уже 3 года как им пытают персонально, поэтому я решил попытаться рассказать всё-таки почему. Рассказывать, конечно, буду со стороны разработчика-одиночки. В командах побольше есть некоторые нюансы, но суть та же.
Для затравки приведу небольшую иллюстрацию, смысл её, думаю, понятен.