И вот совсем недавно я узнал, что на свете уже давно существует такая методика разработки информационных систем – Evo (от слова «эволюция»), которая делает провалы проекта принципиально невозможными! Под провалом здесь подразумевается неконтролируемый рост сроков, бюджета, состава команды разработки, общего негатива; а также недостижение заранее установленных и измеримых целей.
Авторы этой эволюционной системы управления проектами Том и Кай Гилб, к сожалению, все многочисленные детали и хитрости своей методики раскрывают только на своих платных семинарах, однако общее представление об их идее можно вполне сделать и просуммировав несколько разрозненных статей, что я сейчас и сделаю в своем кратком обзоре.
Не провалить сроки – да как такое может быть?
Для любого человека главном вызовом в жизни и самым сложным испытанием всегда является управление и контроль за чем-либо. Автомобилем, семьей, карьерой, командой, и процессами – да ничего более ответственного и сопряженного с рисками в жизни и не бывает. А любой провал именно в управлении влечет за собой самые серьёзные катастрофы, и именно поэтому люди полагают, что контроль над любым процессом нужно постоянно усиливать, до бесконечности увеличивая число ограничений. Когда-то и мне казалось, что только рост рамок в геометрической прогрессии дает проекту шансы на успех, ведь главное – правильно и заранее расставлять все эти рамки.
Как правило при таком подходе мгновенно забывается, что ни один человек в мире не способен предвидеть будущее и описать подробно даже свой завтрашний день, не говоря уже о завтрашнем дне всей команды, создающей информационные системы. При этом все и всегда в мельчайших деталях предсказывают будущее любого нового проекта и ждут от менеджера только сверх способностей, граничащих с умением управлять пространством-временем. Когда же он не обнаруживает таковых в себе, то и Заказчик, и вся команда — очень искренне разочаровывается. А тем временем некоторые компании уже нашли новый способ управления своими проектами, при котором возможно не только систематически избегать неудач, но при этом перманентно получать — и значительные улучшения продукта для клиентов, и повышенный энтузиазм среди руководства и команды инженеров.
Описываемый в статье Evo-метод настолько эффективен, потому что он решает самые ключевые проблемы – постоянные задержки крупных проектов, неконтролируемый рост функционала и дополнений к первичному Техническому заданию, постоянный отход от первоначальных прототипов и общее непонимание командой и самим заказчиком основных целей создаваемой системы.
Думаю, никто не станет отрицать, что традиционный метод «Водопада» является сильно устаревшим, и сейчас только самые ленивые студии не используют тактику мелких итераций во времени, дробя крупную задачу на несколько мелких. Так, в компаниях HP и Confirmit практикуют цикл в 1 неделю, Microsoft применяет шестинедельный цикл; но оказывается, что на практике это далеко не всегда помогает. Сплошь и рядом встречаются ситуации, когда первоначальный прототип (макет Главной, ТЗ, sprint zero – нужное подчеркнуть) заворачивается и отдается на переработку по 10, 20, 30 раз. Программисты и тестировщики, верстальщики и ваши сервера пока пылятся без дела, а сверхкипучая деятельность на самом первом шаге перемешивает в шлак десятки тысяч часов и долларов без видимого успеха. Что же делать?
Пусть расцветают все цветы
Данная методика не похожа на планирование в том виде, в каком его привыкли видеть все консервативные менеджеры. Скорее она учится у самой природы, сравнивая создание информационной системы с процессом воспитания ребенка или выращиванием цветов у себя на клумбе.
Согласитесь, вы же не можете выдать своему цветку документ, четко регламентирующий: какого числа и в какое время он обязан зацвести, какого размера в сантиметрах он должен вырасти и сколько листьев иметь – ведь вы понятия не имеете, сколько будет солнечных и дождливых дней в году, вы не сможете предвидеть появление паразитов, падение метеорита, тень от соседнего цветка и т.д. Именно поэтому писать ТЗ для цветка вам кажется смешным.
А теперь попробуйте представить, как родители в 70-х годах прошлого века пробуют написать план на жизнь для собственной дочери. Я представляю себе такую четкую стратегию ее дальнейшего продвижения в жизни: выучиться обязательно на инженера (самая престижная профессия), затем в 21 год выйти замуж за человека по имени Вася, в 22 родить мальчика, в 25 – девочку, в 30 вступить в Партию, в 40 первый раз поехать по путевке за границу – в Болгарию! Это звучит еще смешнее.
Однако, создавая информационную систему с жизненным циклом в 2-3, а то и 5 лет – каждый из нас не видит ничего смешного, чтобы заранее предсказать до пикселей – какой функционал системе будет необходим. И затем все мы крайне недоумеваем, когда через пару лет выясняется, что проект вырос совсем не в то, что планировалась заранее.
Главная проблема всех менеджеров продукта в том, что мы со своими планами и ТЗ вмешались в естественный процесс эволюции, о котором не имеем ни малейшего представления. Методика Evo же использует минимальные начальные требования вкупе с ранней и постоянной обратной связью о происходящих процессах, чтобы своевременно корректировать рост и развитие продукта. Никто и никогда не способен заранее постичь и предвидеть миллион факторов, но в методике Evo этого и не требуется. Наблюдательность, здравомыслие и постоянные точечные корректировки — этого минимума достаточно для гарантии большого успеха любого создаваемого продукта.
Конечно, эволюционный менеджмент точно также делит каждый проект на несколько эволюционных циклов. Однако, это разложение в начале пути не предполагает знания ни конечных сроков, ни общего числа этих циклов. Первый цикл эволюции — это решение первой задачи «Достичь Цели № 1 самым простым путем» с последующей аналитикой «Что получилось в итоге?». По сути главное отличие эволюции от стандартных методик: все программисты, заказчики, дизайнеры, скраммастера – постоянно учатся и меняются, как и сам проект. Продукт каждую неделю становится немного другим: чуть больше, чуть лучше, чуть удобнее, чуть популярнее. При этом нельзя сказать, что эта методика декларирует просто «плыть по течению», наоборот — Evo ориентирован на достижение согласованных целей и решение четких задач. И как раз для достижения оптимального эффекта – все требования, выраженные количественно в виде ценности и качества конечного продукта – еженедельно мутируют и обучаются вместе со всеми. Именно так можно дать шанс любой информационной системе безгранично улучшаться, динамично меняя приоритеты при самых минимальных затратах на разработку – просто потому, что вы не делаете ничего лишнего.
Эволюционная методология не позволяет людям строить замки из песка, в которых запираться от реального мира со своими великими идеями и тратить слишком много ресурсов на понимание того, что работать не будет. Она предлагает начинать любой сайт с простой заглушки, лэндинга с одной кнопкой, и затем, по мере роста доходов заказчика и его собственного штата – добавлять все новые и новые страницы, товары и услуги, интерактивные функции и маркетинговые фишки. Вам больше не нужно будет продавать квартиру чтобы СРАЗУ сделать крутой сайт – сделайте простую страничку, чтобы заработать себе дальнейшие бюджеты на развитие всего бизнеса в целом.
Миллион способов убить свой проект
Как бы не был многоопытен каждый из нас, непредсказуемых способов уничтожить свой проект всегда гораздо больше, чем можно предвидеть заранее. Перечислю из собственного опыта лишь самые популярные из них:
• Слишком большая гордость от первоначальной идеи и нежелание ничего менять,
• Безразличие и крайняя ненаблюдательность всей команды разработки,
• Возведенное в сакральный статус невнимание к мелочам,
• Отсутствие самодисциплины у каждого конечного исполнителя: ожидание письма, приказа, пинка для начала размышления над проектом,
• Вера в то, что проблемы решаются числом (людей, дней, денег), а не умением,
• Отсутствие малейшей измеримой системы оценки полученных результатов,
• Подход «Сделаем и поскорее забудем»,
• Непонимание фактора, что главный ресурс в любой информационной системе – это люди,
• Жестокая кара за любые неудачи, вместо повода максимально тщательно проанализировать неверные шаги и стать лучше,
• Создание всевозможных дополнительных ограничений до построения самой системы,
• Попытки сделать очень общее решение сразу для всех с бесконечным масштабом для роста функций,
• Попытки контролировать и навязывать, а не анализировать и обучаться,
• И так до бесконечности…
В завершение своего обзора сразу скажу, что автор, как и все вы, не присутствовал на живых семинарах авторов этой методики, а также не обкатал данную методику несколькими годами практики, чтобы сделать более обоснованные выводы. Более того, я готов сознаться, что, возможно, несколько превратно понял или плохо перевел некоторые постулаты данной методики – именно поэтому и прощу вашей помощи в комментариях дополнить мою статью другими полезными материалами по теме, которые помогут всем читателям, которые придут после вас – получить в комментариях более полную картину отписываемого способа менеджмента.
Ниже перечислю основные прицепы Evo так, как я их уяснил для себя:
1. Максимально быстро получать первые реальные результаты, которые и будут основой для следующего витка эволюции;
2. Следующий шаг эволюции должен быть именно таким, который обеспечивает достижение скорректированных целей и задач по итогам первого этапа,
3. Оставьте
4. Признание самому себе о полном отсутствии экстрасенсорного и астрологического таланта, и в связи с этим раз и навсегда искоренение в себе привычки делать менторским тоном прогнозы и требования,
5. Эволюция подразумевает принцип открытой архитектуры – любой раздел, блок, пункт, страница должна иметь возможность полного исправления за 5-10 минут без перекройки всей платформы,
6. Вы не должны боятся изменений. Меняйте все так часто – как должны,
7. Вся команда проекта Evo должна быть целиком и полностью сосредоточена на текущем витке эволюции. Никто не должен простаивать неделю, месяц, год, в ожидании согласования, подтверждения, включения в работу. Добиваться успеха или терпеть неудачу в текущем шаге – только все вместе, без самых виновных и оставшихся в стороне с чистыми руками. Никто не будут тратить свою энергию на последующих стадиях, влившись в проект на полпути и не постигнув всю историю и принципы его роста с самого начала.
8. Методология Evo — это сплошное обучение. Гуру, менторам и «зазвездившимся» тут не место,
9. Избавляйтесь от всего плохого как можно раньше, не ждите чуда,
10. Не сдавайтесь в полушаге от победы.
Комментарии (19)
senpay
05.04.2015 14:58+1Вообщем, у меня мнение противоречивое. Во первых, я не увидел самой методологии, просто список довольно очевидных советов (спасибо, кэп!). Тема всеобщей применимости (как и о моральной смерти каскада-водопада) не раскрыта. Существуют краткосрочные проекты, где agile подходы (а evo — очень даже agile) только вредят, а каскад в жилу (пришел, решил, увидел, запилил).
В целом, утверждение, что есть подход, работающий везде 100%, звучит так же сомнительно, как существование автомобиля, подходящего для скоростной езды по автобану и пересеченной местности, преодоления водных и воздушных препятствий, перевозки грузов и комфортного путешествия семьей из 17 человек.protogui Автор
05.04.2015 17:10Методология простая — все сразу в работу:
сделать заглушку — замерить результат.
сделать 1 кнопку — замерить результат.
сделать 1 картинку — замерить результат.
сделать 2 кнопку — замерить результат.
Понять что достигли цели 1.
задать более амбициозную цель 2.
К началу.dbondarev
07.04.2015 19:21э, в Agile делают то же самое, если заменить «замерить результат» на «показать клиенту»
sferrka
05.04.2015 15:32Не провалить сроки – да как такое может быть?
Ответ на вопрос — «никак», просто не задавайте их? Это не про бизнес явно.
defuz
05.04.2015 15:42+3Как все-таки хорошо, что Мегамозг отделили от Хабра. Теперь вся маркетинговая шелуха накапливается здесь.
S_A
06.04.2015 05:00+1Маркетинговая шелуха — это когда компании или представители компаний в красивых картинках расписывают как запилили/провалили какой-нибудь космический продукт. А когда человек пытается разобраться с темой, собственными стараниями как может, и знакомит с подходами других — это ценная информация.
И да, хорошо что Мегамозг отделили от Хабра. Теперь в хабе управление проектами стало побольше по управлению проектами, и поменьше всякого промоушена. Хотя до сих пор половина постов в хабе появляется только потому что хаб самый читаемый, а не потому что они имеют к управлению проектами какое-то отношение.
protogui Автор
05.04.2015 17:04-1Всем спасибо за минусы. Если это единственное, что специалисты смогли добавить по существу темы — я очень рад.
S_A
06.04.2015 04:54По существу темы — эволюционная разработка — не новость. Еще в компьютерре как-то статья была. Органическое программирование так называемое. Может эта концепция даст вам направление мысли.
Еще очень все напоминает «дробление проектов», подход который можно почерпнуть в книге Мак-Фарлана и Бенко про управление портфелем проектов. Онлайн эту книгу не найти, но про этот подход я немного писал в одном из своих постов. Если кратко — проект дробится на ломти, каждый из которых приносит позитивный результат.
Flar49
05.04.2015 19:11+1Очень похоже на плохо сформулированный аналог Lean Startup :). Предлагаю прочитать и написать детальное сравнение методологий, тогда будет о чем почитать.
protogui Автор
06.04.2015 04:45Сделайте пожалуйста вы, как более опытный специалист. Обещаю поставить плюсик за действительно хорошее исследование.
Можно в виде слайдов.
senpay
Я не совсем разобрался, за счет чего осуществляется fail-safe управление разработкой? Или это таки рекламный трюк?
Мне что-то слабо верится в очередной silver bullet. Как была измерена и оценена эффективность метода?
protogui Автор
Подразумевается, что фейлов быть не может принципиально.
Говоря образно, методология признает, что вся разработка — это бег с завязанными глазами по краю пропасти. У всех и всегда. Пока все остальные бегут на время, эволюция требует встать на четвереньки и долго руками ощупывать каждый шаг.
Да, и первым прийти в таком случае тоже возможно — если стать единственным выжившим.
senpay
Позвольте, т.е. фейла не может быть, т.к. не бывает фейла что-ли? Сомнительное, с точки зрения бизнеса, утверждение.
Бежать на время, не прихоть, а необходимость!
protogui Автор
Успешный результат разве не важнее времени? Вырастить ребенка за год тоже может быть жизненно важно, иной раз даже критично — но дети растут 18 лет.
Эволюция учится у природы, а не ломает ее своими сказочными требованиями.
13oz
А тут бывает по-разному. Бывают задачи, когда соблюдение сроков/требований по ресурсам важнее реализации того или иного функционала.
dbondarev
далеко не всегда
у проекта часто есть время жизни
если время жизни проекта 2 года, а выращивать его до результата 4 — то мы просто продолбаем 2 года и выкинем результат.