Борис Вольфсон
Гибкое управление проектами и продуктами
Предисловие ко второй версии
Вы держите в руках необычную книгу. Она может изменить вашу работу, работу вашей команды, а со временем и всей вашей компании. Если первая версия книги писалась с целью поделиться знаниями, то задача этой – помочь всей отрасли стать эффективнее. Написать вторую версию также побудили почти 20 000 человек, которые скачали электронную версию первой:
• 12 338 раз с Dropbox (посчитано через Google);
• 7553 раза c «Яндекс. Народ».
Распределение скачиваний по странам, по данным Google
Во второй версии книги я значительно переосмыслил и переработал многие разделы, в частности:
• изменена структура книги, чтобы важная информация была ближе к началу;
• обновлено описание Scrum на основе последней версии Scrum Guide от июля 2013 года;
• добавлено большое количество материала по разработке продукта.
Предисловие к первой версии
Все специалисты ищут серебряную пулю, хотя опыт подсказывает, что ее не существует. На смену одной методологии приходит вторая, одну тему фокусирования всего софтверного сообщества сменяет другая – этот круг бесконечен.
Матерые специалисты с седыми бородами настаивают на тяжеловесных методологиях с сотнями ролей, процессов, артефактов и толстенными описаниями. Молодые же управленцы предпочитают гибкие методологии, или Agile, как они говорят. Кто прав в этом противостоянии отцов и детей? Замечу, что в нашей стране часто идет спор, нужны ли методологии и процессы вообще для создания качественного продукта.
В этой книге я расскажу о современных гибких методологиях, причем постараюсь осветить аспекты, которые обычно не упоминаются либо раскрываются недостаточно глубоко. Кроме теории, в книге содержится множество конкретных приемов и лучших методов, которые можно применять на практике, что отличает ее от других материалов.
Эта книга предназначена для широкого круга специалистов, работающих в области разработки программного обеспечения:
• разработчиков, ведущих разработчиков и архитекторов;
• скрам-мастеров и руководителей проектов;
• владельцев и менеджеров продуктов;
• руководителей отделов;
• аналитиков;
• тестировщиков;
• верстальщиков;
• дизайнеров и специалистов по интерфейсу.
Методы и инструменты, описанные в этой книге, позволяют организовать эффективную работу команд, состоящих из вышеперечисленных работников.
Эта книга не претендует на звание единого и непогрешимого источника знаний по гибким методологиям, потому что они постоянно развиваются: появляются новые подходы, дорабатываются старые и расширяются сферы применения. На этих страницах отражено исключительно мое мнение и понимание гибких методологий, не связанное с моими нынешними или будущими работодателями либо сообществами, в которых я состою. Тем не менее не отрицаю их сильного влияния на меня.
Я веду рассказ с позиции практика, который реально использует то, о чем пишет, так что с некоторыми вещами «теоретики» могут не согласиться. Замечу также, что я не рассказываю о «партизанском» внедрении гибких методологий: мои руководители всегда поддерживали изменения, которые я вносил, так как понимали, какие преимущества это дает организации.
Кроме того, я хочу сказать: чтобы эффективно использовать гибкие методологии, ваша команда (и организация в целом) должна быть достаточно зрелой и в технологическом, и в организационном плане. Мне повезло – я всегда работал с очень сильными командами, но, как тренеру и внешнему консультанту, мне приходилось сталкиваться и с более слабыми и плохо мотивированными. Скажем так: из команды двоечников никакая методология вам не поможет сделать команду отличников.
У меня есть обширный и разнообразный опыт в области разработки программного обеспечения и веб-разработки, чем я, собственно, и занимаюсь на постоянной основе с 2003 года. За это время я успел поработать на разных должностях, начиная с верстальщика и разработчика и заканчивая руководителем крупного подразделения разработки с коллективом более 100 человек в компании Softline. Сейчас я работаю в компании HeadHunter техническим директором лучшего рекрутингового сайта в Интернете, который помогает находить свое предназначение миллионам людей.
С гибкими методологиями (Agile software development, Аgile-методы) я познакомился в середине 2000-х годов, а Scrum практикую с 2009-го. Мое видение гибких методологий (и Scrum в частности) прошло путь от набора лучших практик до философии производства программного обеспечения.
Можно сказать, что я отношусь к современному поколению управленцев, которые неплохо знают тяжеловесные методологии разработки софта и методы общего менеджмента из других отраслей, но уверены, что настоящее и будущее за гибкими методологиями.
Со мной можно связаться следующими способами:
• http://www.facebook.com/borisvolfson;
• http://twitter.com/borisvolfson;
• [email protected]
Спасибо всем, кто помогал мне в работе над данными материалами, в том числе по плану внедрения Agile. Полужирным шрифтом выделены авторы наиболее обширных и ценных комментариев, предложений и замечаний: Тимофей Евграшин; Максим Гармаш; Егор Ковязин; Илья Козлов; Ксения Колосова; Евгений Кривошеев; Наталья Лукьянчикова; Дмитрий Паньшин; Михаил Подоплелов; Михаил Подурец; Сергей Рогачев; Андрей Свердлов; Евгений Сорокин; Ирина Сурикова; Анна Тарасенко; Асхат Уразбаев; Лия Шабакаева.
Особую благодарность также выражаю многочисленным рок– и хард-рок-группам, без которых создание этой книги было бы невозможно.
Благодарности компаниям и организациям
Особую благодарность также выражаю многочисленным рок– и хард-рок-группам, без которых создание этой книги было бы невозможно.
Хочу выразить огромную благодарность компаниям HeadHunter и Softline, в которых мне довелось работать и, надеюсь, сделать разработку в них гибкой и эффективной. Большое спасибо также компании ScrumTrek и лично Асхату Уразбаеву и Никите Филиппову за бесценные знания и идеи!
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Глава 1. Гибкие методологии
Семейство гибких методологий буквально ворвалось на софтверную сцену и перевернуло все с ног на голову:
• мы стали сосредотачиваться на людях и улучшении коммуникаций между ними вместо выстраивания сверхжестких процессов;
• мы начали концентрироваться на продукте вместо того, чтобы писать изощренную проектную документацию, которую никто не читает;
• мы больше не заставляем заказчика расписываться кровью, ограничивая его жесткими и неудобными условиями договоров, а строим действительно партнерские отношения и выясняем, чего он хочет и что ему нужно;
• мы всегда готовы к изменениям, так как понимаем, что мир вокруг нас меняется и то, что месяц назад казалось абсолютно необходимым в нашем проекте, сейчас уже не нужно вообще.
В более строгом варианте эти тезисы были сформулированы отцами-основателями гибких методологий в документе, который получил название Agile Manifesto.
Люди и их взаимодействие важнее процессов и инструментов.
Готовый продукт важнее документации по нему.
Сотрудничество с заказчиком важнее жестких контрактных ограничений.
Реакция на изменения важнее следования плану.
Визуализация ценностей манифеста гибкой разработки
Полный текст манифеста и его переводы доступны на сайте http://agilemanifesto.org. Каждый, кто хочет работать по гибкой методологии, должен ориентироваться на эти четыре «взвешивания»: как только начинает тяжелеть не та «чаша весов», надо задуматься: «На верном ли я пути?» Таким образом, манифест станет вашим компасом, по которому можно определять направление движения.
Отдельно отмечу, что, хотя в манифесте гибкой разработки понятия противопоставляются, нет полного отрицания, то есть гибкие методологии – это не отсутствие процессов и инструментов, документации, контрактных ограничений и плана.
Принципы гибких методологий
Не менее важны принципы Agile, о которых часто даже не упоминают, когда обсуждают гибкие методологии разработки. Если вы их соблюдаете, то не имеет значения, как называется ваша методология, – она будет гибкой.
1. Наш высший приоритет – это удовлетворение заказчика с помощью частых и непрерывных поставок продукта, ценного для него.