25.11.2015

Эволюционное развитие ПО

Все, кто занимаются разработкой ПО, знают о том, что порой из небольших мелочей могут вырасти серьезные проблемы. Интуиция на первых этапах разработки(проектирования) играет ключевую роль, т.к. от каждого принятого на первых этапах решения будет крайне сложно отказаться в будущем.



Программное обеспечение, развивающееся эволюционно, можно сравнить со сложным живым организмом: оно несет на себе крест своих предшественников - более молодых версий. При этом ключом в успешном развитии ПО, на мой взгляд, являются менеджеры, которые должны смотреть не на шаг вперед, считая прибыль от текущего проекта, как это делает эволюция, фиксируя выгодные для текущих условий мутации, а действовать более гибко - пытаться просчитать ситуацию на два шага вперед, как это делают шахматисты.

Эволюция конкретного «родительского» вида, выбрав путь развития один раз, не может ретроспективно его поменять, поэтому тело сложных организмов напоминает, по выражению Р. Докинза, «лоскутное одеяло» из доработок и компромиссов. Именно из-за этого тезиса один из принципов ООП - Наследование, кажущийся на первых парах решением всех бед, в дальнейшем может приводить к усложнению продукта.

Мы, как создатели своих миров и вселенных, можем, нет, должны уметь признавать свои ошибки ранних этапов, причем делать это во время, чтобы откатиться до предыдущей версии и сделать все заново, с учетом новых возможностей. С другой стороны у нас есть возможности, которых нет у эволюции: всегда можно отрубить устаревшие органы, которые когда-то были преимуществом, а сейчас выступают недостатком. Есть и третий путь - описать существующее состояние, заморозить его в развитии, и создать с нуля аналог с применением лучших практик.

Получается, что разработка ПО, это та же жизнь, со всей эзотерической вуалью - отпусти прошлое, или иначе оно тебя съест. Причем, чтобы отпустить прошлое и пойти дальше нужна серьезная работа, которая выражается в серьезных финансовых потерях, с точки зрения производителя. Потери, которые должны принести результат на шаге два, если работу выполняют хорошие исполнители. Если же качество работы исполнителей страдает, т.е. консультант-эзотерик нацелен на долгосрочной работе по выуживанию денег, а не на решении существующих проблем, то это форсирование гибели продукта.
 

Комментариев нет:

Отправить комментарий