May 29, 2010 01:58
Кросс-пост с РСДН.
Здравствуйте, Vzhyk, Вы писали:
V>Вот что интересно, сколько времени в таком состоянии может находиться
V>обычная русская програмерская контора?
V>Французская прожила 2 года (до этого 10 лет жила, а потом "детские
V>болезни", прямо по Ленину), после объявила себя банкротом.
При условии наличия продукта, который уже продается - может находиться довольно долго. Как это ни странно. Меня это одно время сильно занимало, и я пытался изучить вопрос.
Все, что в таком случае происходит - "кодеры" своими правками постоянно увеличивают "хрупкость кода" - то есть, стоимость последующих правок. Действительно критично это только для тех мест кода, который одновременно:
1) Критичен для работы всей системы, или важнейших функций.
2) Будет часто правиться в будущем.
Такого кода на самом деле не так много, если вдумчиво посмотреть. И катастрофы в результате не происходит - происходит примерно следующее:
1) Эффективность работы группы разработки падает - из года в год фичи добавляются все медленнее и медленнее. Часть фич вообще откладывается из-за большой трудоемкости, часть - реализуется кое-как (то есть, наиболее дешевым в разработке образом).
2) Растет количество дефектов, вносимых разработчиками. При добавлении фич или исправлении дефектов, разработчики вносят новые дефекты в других функциях. Так происходит из-за сильной связности кода. Причем, эти дефекты со временем становятся довольно сложны в воспроизведении, не всегда находят на интеграции. Эти дефекты обнаруживаются пользователями, проходят через поддержку, попадают не тому человеку, который их внес, и далеко не всегда удается их связать с изначальной правкой. Их лечат симптоматически, и цикл повторяется по новой... Все это еще больше увеличивает цену внесения изменений, и понижает скорость разработки.
Данные симптомы малозаметны на глаз. Потому, что ситуация меняется к худшему достаточно медленно. Скорость изменения зависит от размера базы кода (больше - медленее), и количества разработчиков (меньше - медленнее). Когда наступает момент, что все решают "все переписать" (обычно это звучит - "надо разработать новую версию"), часто бывает на самом деле уже поздно. В результате данного "переписывания" шансы накрыться медным тазом повышаются, и это может приблизить конец.
Ну, короче, как-то так.