Страница 5 из 12
Итак, распечатав кипу документов, Джонсон и Фулгэм прошлись по ним, стараясь выяснить, какие задачи сложнее других и особенно важны для дела. Определить приоритет каждого запроса было необходимо, поскольку часто утверждается, будто существенно все. При таком подходе не мешало бы задать себе вопрос, который поставила перед собой команда проекта «Страж»: что сможет повысить эффективность работы и ее ценность? Найдя, что именно, этим и следует заняться в первую очередь. В сфере разработки программного обеспечения есть правило, подкрепленное десятилетиями исследований: восемьдесят процентов успеха и ценности любой программы заложены в двадцати процентах ее функциональных возможностей. Вспомните, когда в последний раз вам понадобилась в Microsoft Word функция Visual Basic? Возможно, вы даже не знаете, что есть такой редактор, как Visual Basic, не говоря о том, чтобы им пользоваться. Тем не менее эта функция есть, и кто-то потратил время на ее разработку. Уверяю вас, она не слишком сильно увеличивает ценность текстового редактора Word.
Специалистам, вынужденным расставлять приоритеты в соответствии с ценностью проекта, приходится сначала браться за данные двадцать процентов. Обычно когда они заканчивают эту часть работы, приходит понимание, что на самом деле остальные восемьдесят процентов не так нужны, как представлялось ранее, то есть функции, считавшиеся важными, в результате таковыми не оказываются.
Группа «Стража» пыталась выяснить главное: «Ладно, мы ведем этот гигантский проект, который нам жизненно необходим и на который мы угробили уже миллионы долларов. Когда мы его закончим?» Продумав все нюансы, разработчики пообещали сдать проект осенью 2011 года. В отчете генерального инспектора, представленном осенью 2010 года, каждая страница была пропитана недоверием:
В ФБР утверждают, что для завершения проекта «Страж» они прибегнут к «гибкой методологии разработки», то есть будут использовать меньшее количество сотрудников самого ФБР и Lockheed Martin, а также компаний, поставляющих основные стандартные компоненты для системы «Страж». В общей сложности ФБР планирует сократить число привлеченных по контракту специалистов, задействованных в разработке «Стража», приблизительно с двухсот двадцати человек до сорока. В ФБР сообщили, что количество сотрудников ФБР, принимающих участие в работе над проектом, тоже уменьшится с тридцати до двенадцати… ФБР уверило нас, что предполагает завершить проект за двенадцать месяцев с момента внедрения нового подхода, не выходя за рамки оставшихся в бюджете проекта двадцати миллионов3.
Уже сама фразеология, использованная в отчете, свидетельствует, насколько генеральный инспектор плохо ориентировался в вопросах Scrum. Термин гибкая методология по времени восходит к 2001 году, когда состоялась встреча семнадцати ведущих разработчиков — среди них был и я, — итогом которой стал «Манифест гибкой методологии разработки программного обеспечения». «Манифест…» провозглашал следующие ценности: люди важнее процессов; фактическая работа продукта важнее документации, фиксирующей, что и как продукт должен делать; сотрудничество с заказчиком важнее обсуждения условий договора с ним; реакция на изменения важнее следования первоначальному плану. Scrum — это концепция, созданная мною, чтобы воплотить эти ценности в жизнь. Не существует никакого единого подхода под называнием «гибкая методология».
Разумеется, Джефф Джонсон отчасти лукавил, давая обещание уложиться в двенадцать месяцев. Такой информацией в ФБР никто не владел. Они просто не могли знать фактической даты окончания проекта, поскольку были не в курсе, с какой скоростью в состоянии трудиться их группы. Вот о чем я постоянно твержу руководству: «Я смогу назвать срок, только когда увижу, насколько эффективно будет действовать команда. Насколько быстро исполнители станут работать. В какой степени они разгонятся».
Прежде всего, крайне важно, чтобы участники группы выяснили причину, мешающую ускорять процесс разработки. Как выразился Джефф Джонсон, «Я разобрался с устранением препятствий». Представление о «препятствии» зародилось в Toyota — компании, в которой впервые были сформулированы многие идеи, заложенные потом в основу Scrum. Строго говоря, я имею в виду Производственную систему «Тойоты», созданную Тайити Оно.
Не буду углубляться в детали, но остановлюсь на одном из понятий, внедренных Тайити Оно, — создание непрерывного потока. Идея заключается в том, что процесс производства должен быть быстрым и бесперебойным, а одна из ключевых задач руководства — выявлять и устранять препятствия на пути течения потока. Все, что мешает его непрерывности, классифицируется как потери. В своей книге «Производственная система Тойоты»[5] Тайити Оно дает оценку этому явлению не только с деловой, но и с моральной точки зрения:
Не будет преувеличением сказать, что в периоды медленного роста потери являются в большей степени преступлением перед обществом, чем просто коммерческими потерями. Устранение потерь должно быть первой целью бизнеса4, [6].
Тайити Оно классифицировал потери и препятствия, возникающие на пути производства, по многим категориям. Однако любая задержка в рабочем процессе равнозначна преступлению — и только когда каждый руководитель нутром поймет это, произойдет подлинный взлет Scrum. Далее я расскажу подробно, как исключать потери. Сейчас достаточно отметить, что эффект будет огромным. Правда, мало кто занимается ликвидацией помех, поскольку данная процедура требует от человека абсолютной честности перед собой и окружающими.
Джефф Джонсон осознавал, что препятствия станут его проблемой.
Почти три месяца выясняли разработчики «Стража», сколько им действительно понадобится времени на завершение проекта. Почему так долго? В поисках ответа обратимся к процессу «проверять и адаптироваться», о котором я говорил ранее.
Процесс разработки, основанный на принципах Scrum, дает возможность в фиксированные и довольно короткие циклы достигать требуемых результатов, причем каждая новая версия поддерживает функционал предыдущей. В ФБР остановились на двухнедельных циклах исходя из предположения, что в конце каждого этапа они будут иметь полностью функционирующую часть программы, которую они смогут предъявить любой заинтересованной стороне. Но самое главное, появлялась возможность демонстрировать программу тем, ради кого она создавалась, — оперативному персоналу и аналитикам.
Этот метод позволяет участникам группы эффективно взаимодействовать как с заказчиком, так и друг с другом во время всего процесса разработки. В правильном ли направлении они движутся? Соответствует ли поставленной задаче то, что они собираются делать дальше? Учитываются ли ошибки, обнаруженные во время предыдущего этапа?
В Scrum такие циклы, или этапы, названы спринтами. Каждый спринт планируется предварительно на специальных встречах. Участники оценивают, какой объем работ, на их взгляд, они смогут сделать, скажем, в течение следующих двух недель. Из списка задач, расставленных по приоритетам, они выбирают очередные единицы работы[7], предназначенные для выполнения, записывают их на стикеры, которые приклеивают на стену. Группа решает, сколько единиц работы они в состоянии выполнить за предстоящий спринт.
На завершающей стадии спринта участники снова собираются вместе и показывают друг другу, чего удалось достичь за время совместной работы. Они смотрят, сколько единиц работы, занесенных на стикеры, действительно доведены до конца. Не все удается выполнить? Значит, для этого спринта было отобрано слишком много задач. Бывает наоборот — недостаточное количество задач. В данном случае важно другое: у группы развивается чувство собственной скорости, то есть появляется необходимое знание, как быстро она может продвигаться в своей работе.