avl (avl) wrote,
avl
avl

Categories:

25. Расширение границ проекта - враг успеха

(В оригинале - Scope is the enemy of success)

Границы проекта определяют его размер. Сколько времени, усилий и ресурсов потребуется? Какая функциональность и какого уровня качества? Насколько сложно это будет внедрить? Какой риск? Какие ограничения? Ответы на эти вопросы и определяют границы проекта. Проектировщикам нравятся большие, сложные проекты. Потенциальная награда за сложный проект может подталкивать людей искусственно раздвигать границы проекта для повышения видимой важности. Раздвигание границ – враг проекта, потому что при этом вероятность провала растет быстрее ожидаемого. Увеличение проекта вдвое может повысить вероятность провала на порядок.

Почему это работает именно так? Давайте рассмотрим несколько примеров.

  • Интуиция нам подсказывает удвоить время или ресурсы при удвоении объема работы. История же говорит ("The Mythical Man-Month" by Fred Brooks), что зависимость здесь нелинейная. К примеру, команда из четырех человек потратит более чем в два раза времени на коммуникацию, чем команда из двух человек.
  • Оценки оказываются далеки от реальности. Кто ни разу не сталкивался с вещами, реализовать которые оказывалось значительно сложнее, чем ожидалось?


Конечно, некоторые проекты невозможно сделать без присущей для них определенной сложности и размера. Сделать текстовый редактор без возможности ввода текста может быть и легко, только результат не будет текстовым редактором. Какие же стратегии могут помочь лучше контролировать границы реальных проектов?


  • Понимание реальных потребностей. Проект должен содержать то, что перечислено в требованиях. Требования определяют функциональность и ее качество. Если требование не объяснено в терминах измеряемой ценности для заказчика, то это повод задавать вопросы. Если требование не приносит заказчику прибыли, зачем оно вообще нужно?
  • Разделяй и властвуй. Ищите возможности разделить проект на несколько независимых частей. Гораздо легче управлять несколькими маленькими проектами, чем одним большим.
  • Приоритет. Мир бизнеса изменчивый. Требования к большому проекту могут поменяться несколько ко времени его окончания. Важные требования обычно остаются важными и при изменении в мире бизнеса, а остальные могут измениться или даже совсем исчезнуть. Приоритизация позволит вам выпустить наиболее важные вещи в первом релизе.
  • Выпуск результата как можно ранее. Очень мало людей точно знают, что именно они хотят до того, как это получат. Наверняка вы видели известную картинку, показывающую эволюцию проекта детских качелей, и помните разницу между тем, что хотел заказчик, и что было сделано реально. Переусложненный результат напоминал качели очень отдаленно, а последний кадр «что на самом деле хотел заказчик» показывает самую простую качелю из старой автомобильной шины. Если заказчик получит возможность что-то попробовать, решение может оказаться сильно проще первоначально ожидаемого. Реализация наиболее важных вещей в первую очередь даст вам важную обратную связь раньше, когда она вам больше всего и нужна.


Сторонники agile разработки ("eXtreme Programming eXplained" by Kent Beck) советуют реализовывать «самый простой вариант, который еще работает». Сложная архитектура проваливается значительно чаще, чем простая. Уменьшение границ проекта часто приводит к более простой архитектуре. Уменьшение границ – одна из эффективных стратегий для архитекта на пути повышения вероятности успеха.

Автор оригинала - Dave Quick

Перевод мой. Если вы решите использовать его полностью или частично, не забудьте указать ссылку на мой живой журнал!
Tags: 97_things_architect_should_know
Subscribe

  • 97 вещей, которые должен знать архитектор ПО

    Давно начатый проект перевода серии из 97 заметок наконец-то закончен! Теперь ищу новую идею, чего бы еще интересного и непереведенного, перевести…

  • 97 вещей для архитектора ПО

    Поскольку надо закончить начатое - продолжу переводить первую серию, поскольку мир не без добрых людей, и оригиналы, удаленные с neartime, нашлись…

  • Переводы задерживаются

    Сайт, хостящий "97 things", чего-то задумал, и тексты оригиналов стали недоступны. Так что пока новых переводов не будет...

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments