«Когда человек не знает, к какой пристани он держит путь, для него ни один ветер не будет попутным». (С) Сенека, Луций Анней
Предисловие
Как-то один из топов уважаемой компании, которая занимается продуктовой разработкой ПО, пригласил меня, как эксперта, чтобы я оценил качество нового продукта. Я внимательно просмотрел и прослушал презентацию. Видно было, что коллеги очень старались и работали по 10-12 часов, чтобы продукт выглядел на высшем уровне. После чего меня спросили: «хороший получился продукт или нет?» Я поблагодарил за представленную презентацию, но попросил ответить на свой последний вопрос: «А какие процессы, и с какой целью вы собираетесь автоматизировать с помощью этого инструмента?» Вопрос почему-то вызвал замешательство у докладчиков. После небольшой паузы, топ, который, видимо, был идеологом нового продукта, ответил: «Был бы инструмент хороший, а какие процессы с его помощь автоматизировать мы найдем!» Мне пришлось сказать, что оценить продукт я не смогу. Не зная бизнес-целей, невозможно понять степень их достижения.
Большинство провалившихся программных проектов, которые приходилось наблюдать, были провальными еще до их старта. Миссия изначально была невыполнима потому, что никто не удосужился ответить на девять простых, но обязательных вопросов, которые определяют концепцию будущего проекта. Судьба подобных проектов плачевна. Вложив существенные средства в разработку какой-то хрени, которая не полетела, инвестор, как правило, продолжает вкладывать средства дальше и дальше, в надежде на то, что она, таки, полетит и затраты окупятся. И только озаботившись концептуальным определением проекта, он понимает, что миссия невыполнима и, чтобы не впасть в еще большие убытки, проект надо срочно закрывать.
Для иллюстрации используем проект «Экспедиция за сокровищами Флинта»
Девять пунктов концепции проекта
#1. Зачем?
Как не банально это звучит, но у любого проекта должны быть цели. Цели могут быть разными. От — тупо заработать миллион, до — получить плюс в карму бренда компании. Но они обязаны быть. Иначе проект уподобится кораблю, который плывет к неизвестной пристани. Цели служат критерием, который позволит нам в каждый момент времени определить, в ту ли сторону плывет наш проект или мы сбились с курса.Зачем экспедиция за сокровищами Флинта? – Чтобы разбогатеть.
#2. Что?
Ответ на этот вопрос должен определять, что мы должны сделать, чтобы достичь заявленных целей. Какой продукт или услуга должны стать результатом проекта, какими качествами они должны обладать.Что? – Снарядить «Испаньолу»; нанять команду; доплыть из Бристоля до Острова сокровищ; найти и извлечь клад; возвратиться назад.
#3. Почему?
Этот раздел концепции должен отвечать на вопрос, а почему мы предполагаем, что, реализовав проект, мы достигнем поставленных целей. Любой наш план действий строится, исходя из некоторых предположений и допущений, которые мы обязаны явно сформулировать и проанализировать на достоверность.Почему? – Потому что мы уверены, что: клад существует; его еще никто не вырыл; стоимость клада большая; карта Бонса достоверна; шхуна и команда надежны; с февраля по сентябрь штормов не будет.
Кстати, очень многие «кораблекрушения» случились, из-за отсутствия проработки именно этого пункта концепции.
#4. Кто?
Кто участвует в проекте. К участникам проекта относятся все заинтересованные стороны, лица и организации, например заказчики, спонсоры, исполняющая организация, которые активно участвуют в проекте или те, чьи интересы могут быть затронуты при исполнении или завершении проекта. У каждой заинтересованной стороны, как правило, есть свои явные и скрытые мотивы, которые могут влиять на успешность реализации проекта.К заинтересованным сторонам нашего проекта относятся все герои романа Роберта Стивенсона. Перечислим лишь главных из них. Сквайр Джон Трелони – спонсор проекта; доктор Дэвид Ливси – руководитель проекта; капитан Александр Смоллетт – тимлид; Джим Хокинс – системный архитектор; Джон Сильвер – неформальный лидер; бывшая команда Флинта – аутсорсеры. Заслуживает пристального внимания то, как явные и скрытые мотивы этих стейкхолдеров повлияли на проект .
#5. Сколько?
Для того чтобы понять во сколько нам обойдется реализация проекта, требуется определить и оценить ресурсы необходимые для его выполнения.Тут все просто. К нашим проектным расходам следует отнести: фрахт «Исаньолы», закупку провианта и снаряжения, оплату команды.
#6. Когда?
Ф. Брукс писал: «Чтобы родить ребенка требуется девять месяцев независимо от того, сколько женщин привлечено к решению данной задачи. Многие задачи программирования относятся к этому типу, поскольку отладка по своей сути носит последовательный характер». Он же приводит исключительно полезную, но почему-то редко применяемую, эмпирическую формулу оценки срока в месяцах первой поставки продукта по трудоемкости его создания: T = 2,5 (N ч.*м.)^1/3. Для оценок на уровне концепции, очень даже полезная формула.#7. Возможные проблемы?
Этот пункт о рисках. Помним, что «проект без риска – удел неудачников. Риски и выгода всегда ходят рука об руку» (С) Том Демарко, Тимати Листер. В первую очередь в качестве рисков необходимо рассматривать обоснованность наших допущений. Если определять неформально то, риски – это возможные проблемы в проекте, а проблемы в проекте — это материализовавшиеся риски.Если, говорить о проектах разработки ПО, то к основным рискам следует отнести:
- Требования отсутствуют / не полны / подвержены частым изменениям.
- Отсутствие рабочего взаимодействия с заказчиком.
- Отсутствие необходимых ресурсов и опыта.
- Неполнота планирования. «Забытые работы».
- Ошибки в оценках трудоемкости и сроков работ.
Романа Стивенсона просто бы не было, если до старта проекта были проанализированы основные риски и составлен план управления ими.
#8. Критерии приемки?
Цели должны быть измеримыми и еще до старта проекта мы должны понять, каким образом мы будем определять степень их достижения.В этом разделе мы должны дать ответ на вопрос, как измеряется достижение богатства. Добыть 1000, 100 000 или 1 000 000 фунтов.
#9. Кому от этого польза?
Тут просто. Достижение целей проекта должно оправдывать затраченные на его реализацию ресурсы.Стоимость клада, должна покрывать расходы на экспедицию и еще наше представление о богатстве.
Заключение
Концепция может занимать одну страницу или сто страниц. Но она обязана быть. Концепция проекта служит документом, который позволит на всем протяжении проекта определять верной дорогой или нет мы идем к поставленным целям. Отсутствие концепции, как правило, свидетельствует о том, что проект мертворожденный.