3. Саморегулирование: эволюция системы – саморегулируемый процесс, при этом темпы изменения атрибутов системы в течение ее жизненного цикла близки к нормальному распределению.
4. Влияние организационной стабильности: среднее количество усилий, прилагаемых при поддержании развивающейся системы, в течение ее жизненного цикла остается примерно постоянным.
5. Сохранение преемственности: в то время как система развивается, все связанные с ней люди должны обеспечивать господство ее содержания для достижения удовлетворительной эволюции.
6. Непрерывный рост: чтобы удовлетворенность пользователей не снижалась на протяжении жизненного цикла системы, ее функциональные возможности должны постоянно расширяться.
7. Ухудшение качества: воспринимаемое качество системы будет снижаться, если не предпринимать специальных мер по ее сопровождению и адаптации к изменениям во внешней среде.
8. Система обратной связи: эволюционные процессы представляют собой сложные системы обратной связи и должны рассматриваться как таковые для достижения значительных улучшений.
У меня имеются мелкие разногласия с некоторыми из законов Лемана (в особенности с третьим[91]), но в любом случае их смысл понятен и верен: система должна постоянно изменяться, иначе ее эффективность снижается. А когда система изменяется, то она становится более сложной, если не предпринимать мер по ее упрощению.
Может быть, самое интересное наблюдение Лемана состоит в том, что количество усилий по внесению изменений в систему и ее адаптации остается (приблизительно) постоянным в течение всего жизненного цикла. Мы вернулись к тому, что постоянны только изменения…
Каждый продукт успешен… пока не потерпит неудачу
Каким образом мы судим об успешности продукта?
Индустриальные отчеты, такие как, например, известный (или печально известный) CHAOS, выпускаемый компанией Standish Group, утверждают, что лишь незначительное число проектов по разработке ПО будут «успешными». Но что это означает? За последние годы было много попыток найти правильное определение успешности проектов, но согласие до сих пор не достигнуто. Согласно традиционной точке зрения, проект успешен, если он завершен вовремя и в рамках бюджета, а готовый продукт соответствует спецификациям. Другие говорят, что успешный продукт соответствует ожиданиям заказчика или обеспечивает соответствующий возврат инвестиций с точки зрения созданной ценности. Существует также точка зрения, что проект успешен в том случае, когда удовлетворены все заинтересованные стороны.
Как вы думаете, динозавры были успешны? А люди как биологический вид? Подозреваю, что многие ответят «нет» на первый вопрос и «да» на второй. Однако динозавры господствовали на Земле 160 миллионов лет, в то время как семейство
А как вы думаете, успешны ли лошади как биологический вид? Скорее всего, моя дочь была бы с этим согласна, но ее мнение вряд ли поддержал бы великий палеонтолог Стивен Джей Гулд. В своих работах Гулд несколько раз отмечал, что почти все виды диких лошадей (
Мне кажется, есть основания утверждать, что любой биологический вид успешен до тех пор, пока не вымрет. Если учесть, что 99,9 % всех видов из когда-либо существовавших вымерли, то мы располагаем массой примеров неудачных биологических проектов. Вследствие этого я предпочитаю такое определение успешности проектов по разработке ПО:
Программный продукт успешен до тех пор, пока не потерпит неудачу.
Да, я знаю, что это звучит по-дурацки. Но мир в целом иногда выглядит по-дурацки.