Недавно я консультировал компанию, которая выпускает системы автоматизации зданий. Отопление, вентиляция, электричество, водоснабжение, кондиционирование — в общем, «все в одном». Один из их новых продуктов представлял собой программное обеспечение для домашней автоматизации, управляющей важнейшими системами в жилом помещении: открыванием входной двери; включением осветительных приборов; расходами на отопление и многим другим — причем все осуществляется с мобильного устройства. Перед началом проекта разработчики, собравшись за одним столом, составили большой список: переключатели, контроллеры, интерфейсы, сенсоры, протоколы коммуникаций и прочее в таком же духе — то есть в нем были перечислены детали, которые понадобятся для нормально функционирующей системы. Не ее принципы, не этапы рабочего процесса, а именно пожелания пользователя. Например, следующее пожелание: «Мне как хозяину надо видеть, кто звонит в дверь, чтобы открывать только тем, кого я хочу впустить в свой дом». Были записаны истории об открывании ворот гаража, включении систем отопления и вентиляции, контроле за состоянием электросети. Разработчики продолжали писать до тех пор, пока не зафиксировали все функции системы. Список оказался длинный — в несколько сотен пунктов. Система обещала быть большой, сложной и весьма привлекательной для пользователей.
Смысл составления бэклога представляет создание максимально полного перечисления требований, предъявляемых к функциям продукта. На самом деле никто и не собирается выполнять подряд каждый пункт, но такой документ, содержащий все, что в принципе могло бы быть включено в концепцию проекта, всегда должен находиться под рукой. Некоторые требования отбираются в первую очередь.
Основной момент, нас интересующий, — принцип расстановки приоритетов. Для этого нужно выяснить, какие пункты списка:
имеют самое большое значение для хода работ над проектом;
важнее всего для заказчика или будущего потребителя;
принесут максимальный доход;
проще всего осуществить.
Следует сразу уяснить простую вещь: в списке полно заданий, до которых у вас никогда не дойдут руки, но вам требуется выбрать те, что принесут наибольшую пользу при наименьшем риске. Поскольку Scrum придерживается поступательной модели разработки и поставки — на языке программистов эта модель называется инкрементальной, — надо начать с такого набора возможностей продукта, который немедленно принесет доход; тем самым вы снизите риски, связанные с проектом. Потому сначала советую отбирать основные функциональности. Хотите оказать быструю услугу заказчику? Тогда берите требование с наивысшим приоритетом, выполняйте его — и, полностью сделав, демонстрируйте клиенту. Это может быть лишь небольшая часть крупного проекта, но ее нужно исполнить до готовности , чтобы не было стыдно показать всем заинтересованным лицам. Перекрашивая дом, начните в первую очередь с обновления гостиной и доведите работу до конца (вплоть до того, что уберете оттуда грязные тряпки и банки с краской) — это будет часть вашего проекта, выполненная целиком.
В первой главе я уже говорил о непреложном правиле, не раз подтвержденном на практике: 80 процентов успеха и ценности продукта заложены в 20 процентах его функциональных возможностей. На минутку задумайтесь. Что бы вы ни приобрели, основная ценность товара или услуги, то есть самое необходимое, содержится в пятой части того, что было сделано. Этот универсальный принцип, естественно, касается и любой проектной разработки программного обеспечения. Вернемся к нашей компании, выпускающей системы автоматизации зданий. Разработчики, составив перечень требований, предъявляемых к функциям продукта, принялись внимательно его перечитывать, причем они прекрасно понимали — действительно понимали , — что из всего огромного списка потребитель заинтересуется лишь 20 процентами предложений. Секрет мастерства методики Scrum заключается в том, что с ее помощью вы докопаетесь до истины и определите эти 20 процентов. При традиционном подходе к производству исполнители работают вслепую, не зная, в каких глубинах проекта закопаны таинственные 20 процентов. Однако они сразу находятся, когда готовый продукт становится собственностью потребителя. Из чего мы делаем вывод: целых 80 процентов усилий работников совершаются впустую. Мое отношение к потерям вам хорошо известно.
Вы никогда не думали о таком беспроигрышном варианте, как выпускать новую продукцию в пять раз быстрее своих конкурентов, при этом впятеро повысив ее рыночную ценность? А вот разработчики из компании по автоматизации — они задумалась. И опять сели за свой бесконечный список, но на сей раз не для того, чтобы его перечитывать, а чтобы решить ряд вопросов. Им предстояло разобраться, за какой участок работы они возьмутся завтра, установить, какие функции системы нужнее всего для потребителя, и понять, как повысить эффективность системы и вывести ее на рынок быстрее всех. По утверждению Скотта Максвелла, сложность не в том, чтобы решить, чего ты хочешь достичь, — намного труднее понять, что ты можешь выполнить. Это относится к любому виду деятельности, независимо от того, строите ли вы дом или собираете автомобиль, пишете ли книгу или производите компьютерную игру, боретесь ли с преступностью или убираете мусор. Попытайтесь установить, как принести наибольшую пользу в кратчайший срок с наименьшими усилиями, — и немедленно принимайтесь за дело. Затем, с каждым следующим этапом, продолжайте наращивать ценность проекта. Таким образом, довольно быстро — быстрее, чем могли подумать, приступая к работе, — вы создадите продукт, который можно будет представить заказчику или выпустить на рынок. Иными словами, вы довольно скоро достигнете реального результата. Только и нужно, что правильно расставить приоритеты.
Читать дальше
Конец ознакомительного отрывка
Купить книгу