Agile технологии. Аджайл: что это и зачем нужно. Agile методология без ошибок


Agile («аджайл») - слово, которое последнее время звучит из каждого утюга. Но что такое Agile и, главное, зачем этот Agile нужен?

Если открыть толковый словарь, например, Оксфордский, то можно прочитать там, как минимум, два определения:

  1. Able to move quickly and easily.
  2. Able to think and understand quickly.

То есть, чтобы быть agile, надо уметь быстро и легко двигаться и быстро соображать. Кажется, довольно полезные качества, особенно в бизнесе. Быстро соображать и быстро реагировать - это именно то, что доктор прописал, для нашего времени, иначе просто не выжить: конкуренты сожрут. В мире всё меньше отраслей, где этих конкурентов, нет. Да ещё скорость копирования практически лишает возможности вывести продукт на рынок и почивать на лаврах. Без способности быстро адаптироваться к изменениям, которую даёт так называемая «методология Agile», выживать всё сложнее.

Я не случайно беру выражение «методология Agile» в кавычки, потому что его можно часто услышать, но оно не совсем верное. Если не вдаваться в технические детали, то Agile - это не методология, а собирательное название различных методик и подходов к управлению, которые:

  1. Фокусируют команду на нуждах и целях клиентов.
  2. Упрощают оргструктуру и процессы.
  3. Предлагают работу короткими циклами.
  4. Активно используют обратную связь.
  5. Предполагают повышение полномочий сотрудников.
  6. Имеют в своей основе гуманистический подход.
  7. Не являются конечным состоянием, а, скорее, образом мышления и жизни.

Ничего сверхъестественного, не так ли? Давайте пройдемся по пунктам и разберемся, почему вышеперечисленное важно, для того чтобы быть быстрыми и гибкими, и какими средствами в Agile достигаются эти цели.

Фокусировка на нуждах и целях клиентов

Думаю, не стоит объяснять, почему успешнее тот бизнес, который удовлетворяет нужды своего клиента лучше конкурентов. Интереснее разобраться, какие инструменты в Agile помогают этого добиться.

Самое главное, что фокусировка на клиенте при Agile-подходе появляется не в одной только голове владельца бизнеса (она там и так уже есть), а у всех, кто работает над созданием продукта или сервиса. Каждый участник процесса должен понимать, кто клиент, чего он хочет, какие его проблемы мы решаем своим продуктом, что он любит, чего боится и так далее. Такая всеобщая фокусировка позволяет создавать на порядок более качественные решения. Я неоднократно сталкивался с ситуацией, когда люди, раньше отвечавшие за какой-то маленький кусочек работы, поняв цели клиента, начинали выдавать замечательные идеи, а люди, которые отвечают за разработку продукта, с удивлением за ними записывали. Или - как на групповых сессиях проработки продукта подобные идеи оттачиваются разными людьми и дополняют друг друга, из просто хороших превращаясь в отличные. И, конечно, как они потом реализуются.

«Инструменты работы» в данном случае - это непродолжительные по времени, но насыщенные сессии (встречи) всех участников работы или ключевого большинства, где происходит генерация и тестирование различных идей. Эти же встречи служат для выравнивания понимания и фокусировки: все участники встречи на выходе понимают, что они делают, зачем, и почему это важно для клиента. А демократичный формат воркшопа, в отличие от скучных презентаций, гарантирует большее включение и мотивацию всех участников.

Примеры подобных инструментов - Lean Canvas, Impact Mapping, User Story Mapping и другие Agile-методы описания гипотез и процессов.

Один из краеугольных камней Agile - это предельная простота. И оргструктура организации, и процессы, по которым работают люди, и правила должны быть настолько простыми, насколько это возможно. Это позволит людям сфокусироваться на своей работе, на ценности, которую они создают, а не на соблюдении регламентов и правил. Прекрасные примеры такого подхода можно найти во множестве команд, работающих по Scrum - самому популярному способу организации рабочего процесса в Agile. Фактически, все договорённости и правила команды в 10-11 человек, текущие задачи на пару недель, цели, а также стратегические планы легко могут поместиться на 2-3 листа бумаги А0. На одном листе может быть так называемый «бэклог спринта», перечень всего, что команда собирается сделать в ближайшую итерацию. Если повесить такой в помещении, где идёт работа, можно избавить себя от необходимости всё это запоминать. То же самое касается и процессов. Скажем, в Скраме место и время проведения всех встреч жестко фиксируются. Любой участник точно знает, что, например, в понедельник в 10-00 планируется ближайшая итерация, а в пятницу в 17-30 - встреча по улучшению процесса работы.

И чем больше организация, тем больше пользы от подобной простоты, потому что сложность имеет привычку расти экспоненциально, а Agile - это хороший способ победить эту сложность или, как минимум, сдерживать ее рост.

Примеры упрощения (и уплощения, но это тема отдельного разговора) в Agile - Scrum, Nexus, LeSS (Large-Scale Scrum, или Скрам на больших масштабах), а также сам Agile-манифест.

В мире Agile не принято запираться в мастерской на три года, чтобы точить там что-то интересное. Очень уж велик риск, потратить море сил и времени на то, что никому не нужно или устарело.

Чтобы подобного избежать, применяется так называемый итеративно-инкрементальный подход, когда:

  • работа ведётся небольшими фиксированными отрезками времени, например, в одну, две или четыре недели,
  • и, главное, в конце каждого отрезка времени создаётся не просто какой-то промежуточный результат, а, пусть маленький, урезанный, куцый, но работоспособный вариант продукта , которым уже можно начать пользоваться .

В качестве самого простого примера такой рабочей модели можно представить себе стандартную для всех компьютеров программу «калькулятор», которая вначале позволяет только складывать два числа, потом мы добавляем туда вычитание, умножение, деление, трансцендентные числа, тригонометрические функции, - и так далее, в порядке частоты применения. В начале функционал невелик, но мы уже можем увидеть, как калькулятор выглядит, насколько удобно им пользоваться, и представить, как развивать его дальше. И, главное, часть клиентов (скажем, школьники начальных классов) уже могут начать им пользоваться.

Ещё одно преимущество такого подхода, помимо раннего выхода на рынок и внесения изменений на ранних стадиях работы, - это возможность более точно измерять прогресс. Мы не просто «сделали 15% всей работы», что довольно абстрактно. Мы «сделали 15% функционала», который уже работает.

Все процессные подходы в Agile имеют короткие циклы, будь то упомянутые ранее Scrum, Nexus, LeSS, SAFe или , плюс необходимость работы такими циклами упомянута и в самом манифесте Agile.

Активное, системное использование обратной связи

Этот пункт, на мой взгляд, самый важный для любого процесса, так как позволяет со временем, опираясь на опыт, корректировать свою работу, удаляя из процесса и создаваемого продукта ошибки и потери и добавляя что-то полезное.

В любой области деятельности человечества, связанной с созданием чего-то нового, вы найдёте подобную работу через эксперимент . Ракетостроение, самолетостроение, фармацевтика, физика, медицина, строительство, психология, экономика - любая область деятельности начиналась с экспериментов и вдумчивой обработки обратной связи от них.

Agile предлагает системное использование такого подхода везде: в создании продукта (мы выпускаем его на рынок, или показываем заказчику, или проводим испытания и используем обратную связь для его коррекции), в построении процессов (периодически мы «останавливаем» работу и подвергаем анализу сам процесс, чтобы улучшить его, избавиться от потерь и проблем), даже в построении структуры организации и «тонкой» настройки взаимоотношений в командах.

Примеры, опять-таки, есть везде: ретроспективные встречи в Scrum, Kanban, Nexus и LeSS, циклы I&A в SAFe, подход к созданию продуктов Design Thinking, и т.д.

Зачем давать больше полномочий, когда можно дать бумажку с инструкцией? Есть, как минимум, три причины это делать.

Во-первых, люди, занятые умственным трудом, не любят чувствовать себя мартышками (ну, или роботами), и отбирая у человека возможность принимать решения, мы отбираем у него сам по себе умственный труд. А это, безусловно, демотивирует.

Во-вторых, давая больше полномочий, мы даем больше ответственности, и люди вынуждены учиться принимать решения самостоятельно и, главное, нести за них ответственность. Это долго, сложно, но оно того стоит. Работа не остановится, если самоорганизованная команда столкнется с незнакомой, неизвестной ранее проблемой. Да и кто будет спорить, что на работе от зрелых и ответственных, взрослых людей больше пользы, чем от больших детей, неспособных думать самостоятельно?

В-третьих, это всё та же скорость. Если человек может сам, на своём месте, никого не спрашивая, решить какую-то проблему, это сокращает время принятия решений. Не надо больше отправлять вопрос «вверх» и ждать ответа от менеджмента. Это преимущество не так заметно, если у вас работает 3 человека, но если вас 30, или 300, или 3000… В больших организациях, построенных сугубо на иерархическом принятии решений, паралич воли может быть довольно частым явлением.

Популярные способы построения работы в Agile, особенно базирующиеся на фреймворке Scrum, предполагают систему самоорганизованных команд и поощряют лидерство на любых уровнях.

Зачем относиться к людям по-человечески? То есть, моральная сторона дела ясна, а какую пользу это принесёт владельцу предприятия?

Ответ довольно простой. Если создание того, что вы продаёте, не требует умственного труда, а только механический действий - можете не заморачиваться. Просто платите соразмерно сделанной работе, и всё. Но как только в дело вступает мозг работников - придётся считаться с принципами мотивации умственного труда. А они говорят, что для людей важны возможность самореализации, повышения своего мастерства, принесения чего-то ценного в мир, самостоятельности в решениях и ещё ряда факторов. И человек мотивированный (не путать с человеком простимулированным!) будет вкладываться в работу сильнее, и результат будет качественнее и быстрее. Да и в целом, приятная обстановка на работе добавляет желания туда приходить и работать - с этим тоже вряд ли кто поспорит.

И, что приятно, если копнуть в тот же Скрам, то окажется, что все ключевые факторы мотивации работника умственного и/или творческого труда в него уже включены. В каждой итерации («спринте») мы ставим цель, которой хотим достичь; нам даётся возможность решать, как именно достигать цели; в конце мы смотрим, насколько мы стали лучше (или хуже) работать, чем раньше; видим людей, которые заинтересованы в продукте, и их эмоции от знакомства с ним. Особенно хорошо, если эти эмоции положительные.

Вывод такой: счастливые люди лучше работают, а Agile-технологии помогают наладить процесс, в котором люди чувствуют себя счастливее. И первый пункт манифеста как раз об этом: люди и то, как они общаются, важнее всего остального.

Agile - это не конечное состояние, а образ мышления и жизни

Этот пункт о том, что применение Agile в целом - путь, а не цель. Нельзя «внедрить» Agile и расслабиться. Если вы выбираете этот путь, у вас всегда будет что-то ещё, что можно сделать лучше, какой-то ещё вызов, которому надо ответить, какая-то ещё проблема, которую надо решить, ещё одна высота, которую надо покорить… Это движение бесконечно, потому что нет идеального процесса или продукта, развитие и конкуренция не останавливаются никогда, как никогда не прекращается борьба за выживание в природе.

И если всё удалось: люди в компании понимают и разделяют ценности и принципы Agile и работают согласно им, - тогда менеджменту не придётся «тащить» на себе любые изменения или «пинать» работников, чтобы они начали что-то делать по-другому. Предприятие станет единым организмом, управление которым будет отнимать меньше сил и приносить больше удовольствия.
А там, где больше удовольствия от работы, и результат выше. Это касается не только специалистов, но и менеджмента, причём в ещё большей степени.

В современном менеджменте «гибкую» модель управления рассматривают в трёх разных контекстах, которые (каждый по-своему) и определяют, что такое Agile.

Три объёма значения Agile

В первом, более узком значении, этот термин стал с начала 2000-х использоваться в сфере разработки программного обеспечения, когда в американском штате Юта, на горном курорте, собрались отраслевые специалисты, чтобы обсудить методики и практики создания программных продуктов, востребованных конечным потребителем. Результатом той встречи стал Манифест (Agile Manifesto) разработки программных продуктов, с 12-ю принципами, которые, в первую очередь, касались узкой сферы деятельности авторов, но потенциально могли быть распространены и на некоторые другие бизнес-проекты.

Во втором, более широком, значении термина принципы Agile применяются к ведению почти любого бизнеса и в качестве составляющих используются, например, в концепции «бережливого стартапа» (Lean Startup). В этом значении под Agile-моделью (Agile Model) понимают следование гибкой методологии развития проекта, проходящей по характерной схеме в несколько шагов.

  1. Работа над проектом ведётся итерациями – короткими циклами (спринтами). (В случае с разработкой программного обеспечения продолжительность этих циклов составляет от 1 недели до 1 месяца).
  2. По завершении каждого цикла выходит продукт, который уже можно применять в бизнесе. Для программного обеспечения таким продуктом может стать приложение или только его часть, однако даже «сырой» софт уже можно и нужно пробовать в деле.
  3. Продукт проверяется заказчиком или пользователями, которые поддерживают с разработчиками постоянную обратную связь. Клиентоориентированный подход применяется в течение всего проекта (всех итераций).
  4. Любые замечания быстро включаются в доработку, а изменения, позволившие сразу по ходу подправить разработку продукта, – приветствуются, поскольку это позволяет не накапливать глобальные ошибки системы.

В третьем, ещё более широком значении, Agile – это часть модели управления, применяемого на заводах «Toyota» и теперь – одна из базовых составляющих менеджмента почти любого успешного производства. Основы Agile в этом контексте схожи с основами понимания технологии в других контекстах.

Быструю обратную связь в настройке конечного формата производства на заводах «Toyota» обеспечивал любой рабочий, который мог стать инициатором остановки конвейера и автором корректировок по донастройке производственного цикла. В масштабах всего производства Agile-трансформация может повлечь за собой переналадку производственной деятельности в целом, если продукт становится результатом живого отклика на текущие потребности клиента. Так, если фабрика выпускала пластиковые тазы, а обратная связь с клиентом демонстрирует потребность в вёдрах, то быстрая адаптация с параллельной корректировкой нюансов (формы ручки, величины, цвета) будет как раз в стиле Agile management (если соблюдены и остальные принципы).

Принципы Agile-управления

Agile в управлении проектами как модель управления бизнес-процессом применяется тысячами команд во всём мире, и везде присутствуют следующие отличительные черты этого подхода:

  1. Решающее значение для настройки продукта имеет потребитель и степень его вовлеченности в создание результата.
  2. Для принятия решения команды должны быть высокоэффективными и сплочёнными.
  3. Поэтапная и цикличная работа становится основой процесса. Проект делится на мелкие части, которые завершаются к определённому сроку до завершения проекта в целом.
  4. Фокус оценки результативности направлен на частые представления промежуточных состояний проекта.
  5. В работе коллектив опирается на закон Парето, по которому 20% усилий дают 80% эффективности, что позволяет не доводить каждый отдельный цикл до совершенства перед представлением результата потребителю. Продукт совершенствуется естественным образом с каждой новой итерацией.
  6. Предполагается обязательное завершение одного этапа перед переходом к следующему.

«Гибкий» подход стал базовым для целого ряда методологических практик, которые отличаются между собой, но включают идеи Agile: Scrum, Kanban, Lean, Crystal и др. Методология Scrum, например, практически всегда рассматриваются в связке с Agile как единая система управления проектами по разработке программного обеспечения.

Метод Scrum демонстрирует, как «гибкий подход» может быть применён на практике в конкретных операциях. Так, например, работа с требованиями по проекту реализуется с помощью четырёх «артефактов»:

  • Product backlog предполагает формирование списка требований, созданного по единому шаблону (User Story) и отсортированного по приоритетам. Если требований нет, проект завершается.
  • Sprint backlog – это требования ближайшего спринта (этапа), разделённые на задачи без возможности добавлять новые требования в течение спринта. Обязательство на ближайший этап, взятые командой с типом управления Agile, записываются на доске (т. н. Kanban).
  • Sprint Goal – общая цель спринта – ориентир при принятии альтернативных решений.
  • Sprint Burndown Chart – «диаграмма сгорания». Она показывает насколько продвинулась команда в течение этапа.

Формат Agile-управления проектами подходит не всем и не всегда. Государственные структуры, деятельность которых базируется на неизменном законодательстве и консервативна по своим целям и реализации, не нуждаются в такой оптимизации.

Характерные ошибки внедрения Agile и недостатки подхода

Тот же фактор, который считается в одних случаях сильной стороной подхода, в других может приводить к возникновению проблем. Так «гибкость» нередко становится причиной размывания фокуса. При отсутствии методологической основы возникает потеря ориентиров, и подмена первичного вторичным. Для предотвращения подобных «перекосов» используют готовые методологии или собственные разработки, более строго регламентирующие содержание и последовательность операций по ходу воплощения проекта. Тем не менее, и в этом случае в Agile-management возможны ошибки.

К распространённым ошибкам внедрения относятся следующие:

При всех сложностях внедрения гибкого подхода в целом он эффективнее традиционных «неповоротливых» производств, если речь идёт о быстром создании нового клиентоориентированного продукта. Пока традиционное производство вязнет в бюрократических проволочках, Agile-подход обеспечивает естественное движение сразу после запуска проекта.

18 Oct 2017

Если заглянуть в реальную российскую компанию старше 30 лет и больше чем с тысячью сотрудников и произнести слово Agile, то реакция будет как минимум настороженная. Люди там уже слышали истории похожие на "Как рассказать бабушке" или "Как рассказать дедушке" и посмотрели все выступления Грефа, получили с десяток предложений внедрить гибкость за неделю, кто-то из сотрудников даже поработал год со Scrum, но остается один вопрос:

"Что с этим нам делать то, у нас из программирования только сайт?"

В итоге примерно для 100% компаний Agile смахивает на шарлатанство.

Но вот парадокс - в мире 77% компаний*, использующих Agile в проектах, занимаются совсем не разработкой программного обеспечения.



*Из большого ежегодного опроса компаний от VersionOne

Вместо определения. Что сказать про Agile, когда собрались разные люди из разных отделов

Agile - это не метод разработки программного обеспечения. Википедийные определения плохо годятся для понимания, если ты не разработчик.
Это принципы организации проектной деятельности и применим он в любой области. На практике самое чувствительное отличие для людей - это уход от иерархии и исчезновение одного центра генерации точно описанных задач. Это командная работа с ролями, ответственностью за общий результат и плоской структурой взаимодействий.

Команда в игре "Что? Где? Когда?" существует по принципам Agile. Взаимодействиям отдана ключевая роль. Капитан выполняет роль заказчика продукта (верного ответа), 2-3 эрудита перебирают массивы информации, кто-то следит за временем, есть человек, который анализирует, задает вопросы и побуждает общение, любой может высказаться и привести к результату или все провалить, за пределами игры есть разбор полетов (ретроспектива).

Противовес Agile - это конвейерный (каскадный) метод с жесткой иерархией и точными задачами поставленными как можно ближе к SMART. По этим принципам в "Что? Где? Когда?" капитан должен был бы раздавать точные задачи - кому в каком направлении думать и пытаться собрать это в ответ. Каждый участник должен был бы соблюдать приличия и высказываться когда дойдет очередь. В случае провала нужно было бы кому-нибудь понизить мотивацию или уволить и принимать это решение будет капитан.

Главной причиной появления и развития Agile является то, что все больше проектов не имеют 100% понимания, что должно быть в конце. Расписать точные задачи попросту невозможно. И решили, что свободные взаимодействия важнее инструкций, а готовность к изменениям важнее планов.

Гибкие методологии - это ответ на неопределенность; до конца неизвестно, что нужно сделать и что должно получиться в результате. Казалось бы, а что непонятного в разработке, например, сайта или в строительстве дома или в приготовлении гамбургера в Макдональдсе? Эти проекты поставлены на поток, где неопределенность?

Но . Даже если вы веб-студия и для вас это тысячный сайт, для клиента это первый раз. И его желания останутся неопределенностью до самого конца. Многие студии делают 3-4 варианта главной страницы и закладывают неделю на непредвиденные доработки. У всех, кого я знаю, работа разбита на итерации, после каждого есть демонстрация и обсуждение. Общение с заказчиком важнее подписанного контракта.

В строительстве дома есть план-проект, расчет материалов и трудозатрат. Но почему-то сроки всегда затягиваются. Бывает, что фундамент плывет, или стяжка пересыхает, начинает что-нибудь трескаться или брус влажноват или кирпич слишком пористый или цемент привезли не той марки или клиент передумал и решил, что теперь это будет баня. Прораб - это человек оркестр, решает все, что всплывет, постоянно отступая от плана ради результата. Нормальный дом гораздо важнее описания.

Хорошо, в изготовлении гамбургера в Макдональдсе нет никакой неопределенности. Процесс отработан за 70 лет и воспроизведен в 125 странах. Да, это конвейер, куда лучше не влезать с гибкостью. Agile не применим в хорошо отлаженных годами процессах. Правда, открытие нового ресторана по очень точной франшизе - это всегда уникальный проект. Где к месту будет итеративный подход, сокращение итераций, распределение ролей, открытое взаимодействие, визуализация проекта на Agile-доске, ретроспектива, ежедневные планерки.

Итого ключевые ценности Agile (манифест):

  • свободное взаимодействие в команде
  • результативность проекта (классный продукт)
  • партнерское общение с клиентом
  • готовность к изменениям

Что такое команды с ролями?

В привычной команде есть две роли: Начальник и Подчиненный, один умный другой дурак. В Agile принципиально важны три: Заказчик продукта, Методист, Участник команды.

В упрощенной форме:
Заказчик - рассказывает какой продукт нужен, для чего он нужен, устраивает обсуждения вокруг запросов с рынка, принимает решения по приоритетам.
Методист - следит за тем, чтобы заказчик не превратился в начальника. Ну и еще за выполнением остальных практик, например, чтобы все задачи были с оценкой или чтобы оценки задач не превышали 80% от имеющегося времени, если есть такая договоренность.
Команда - оценивает, распределяет и реализует задачи. Всегда демонстрирует версию продукта, а не отдельные выполненные кусочки.

Если совсем упростить, то в Agile обязателен человек, который следит за тем, чтобы команда получала максимальное количество информации о требуемом продукте во всех деталях с разных сторон и принимала активное участие в обсуждении как реализовывать. Не получала поставленную задачу как директиву свыше, а описание и понимание того, что должно быть сделано для пользователя, когда продукт будет разработан.

Со стороны гибкая команда от привычной отличается именно наличием или отсутствием так называемого повествовательного диалога (narrative collaboration). Если идет обсуждение вопроса "Как реализовать продукт?" на всех уровнях, значит команда гибкая. Если ищут кто виноват, что не выполнен список конкретных задач, значит все как обычно.

Главный вопрос: "Как управлять ресурсами когда все так гибко?"

Все эти рассказы про ответственные команды и истории появления метода воспринимаются как полная фигня, если нет ответа на вопросы:
"А как точнее управлять ресурсами?", "Как раньше понять, что в проекте ресурсов стало не хватать для окончания?", "Мы всегда ставили и распределяли задачи по исполнителям и могли прогнозировать результат, а что теперь?". Что бы рассказать про Agile, можно раскрыть только этот вопрос.

Надо отметить, что вообще весь Agile сконструирован именно для решения вопроса с ресурсами "Как эффективно управлять ресурсами в проекте с непредсказуемостью" Методология бы не родилась, если главной задачей был бы комфорт и свобода людей в команде.

Есть несколько важных принципов и методов, явно направленных именно на прогнозирование ресурсов:

1. Наглядность необходимых ресурсов. Agile-доски неразрывно связаны с методологией. Это когда задачи распределены по колонкам, а колонки определяют этап находящихся в них задач. Это самый наглядный инструмент визуализации состояния проекта. В идеале, любому стороннему человеку должно быть понятно на какой стадии находится проект и сколько осталось до конца. Если всем вдруг станет очевидно, что не хватает ресурсов или надо сменить приоритеты, это произойдет само собой.
Вопросы предсказуемости результатов и управления приоритетами решаются именно за счет наглядности.

2. Приоритеты и бэклог . При планировании учитывается, что не все задачи удастся закрыть за выделенный отрезок времени. Всегда есть список того, что надо сделать обязательно и того, что сделать хорошо бы (это и есть бэклог). Приоритеты проставляет команда в обсуждении с внутренним заказчиком продукта. Если так случается, что остается время, решаются задачи второй степени важности, если не успевают закрыть даже задачи с отметкой Обязательно (Critical) команда напрягается дополнительно.

3. Короткие итерации (спринты). Этот подход, как никакой другой позволяет компаниям пробовать что-то из Agile. Руководство согласно на промежуточный результат через пару недель без того, чтобы влезать и всем проставлять задачи. Согласиться на такой режим работы на полгода было бы невозможно.
Спринт (итерация) - это отрезок времени в несколько недель. У нас чаще всего это 2 недели. Самое важное в спринте - это определение того, какой промежуточный результат должен быть получен. Этим результатом хорошо называть итерацию, например, "Выпуск досок с правами" или "Выпустить сайт на тест". Если работа идет по отрезкам времени, но каждый отрезок не приводит к какому-то конкретному результату, то это уже не итерационный подход.

4. Оценка задач в размерах футболок. Люди не слишком любят давать точные оценки задачам, но оценивать примерно, по шкале большая, средняя, маленькая для большинства нормально. Ниже самые популярные в мире способы оценки задач без высокой точности. С процентами по частоте использования.


Мы используем третий, но оценки бывают только 1h, 2h, 4h, 8h.

Смысл подхода в том, чтобы уйти от попытки ловить кого-то на неточных оценках своих работ. Они и так с самого начала примерны. Фокус на то, что бы за спринт каждый стремился набрать максимальное кол-во балов, которые примерно связаны со временем.

5. Burndown chart (график сгорания)
Очень простая вещь - это график с двумя линиями; первая - сколько времени сгорело и это всегда прямая, на второй - сколько задач в пересчете на ресурсы закрыто и тут возможны колебания. Фактически это графический ответ на вопрос идет ли команда по плану или отстает.


Здесь изложены только общие подходы без деталей, возможно, стоит написать отдельный материал с подробностями управления ресурсом. Но если резюмировать здесь в две строчки, то получится:

  • самая частая ошибка - попытка попадать в оценки очень точно, команда перестает работать на результат
  • самый успешный подход - заложить запас по времени, планировать на 80% ресурсов

Инсайд из самой большой, старой и известной seo-студии в России - они закладывают запас в ресурсах два раза, первый при обсуждении с клиентом, второй при внутреннем планировании.

Топ 5 самых популярных Agile-практик понятных всем

Еще раз подчеркну, Agile на базовом уровне применения - это просто. Нет никаких сверхсложных приемов, которые надо долго изучать. Ниже для примера приведено 5 самых популярных практик (по данным все того же опроса от VersionOne)


Все они применимы в проектах из любой области и достаточно просты для мгновенного использования. Все объединены общей идеей итерационного подхода.

1. Итерационное планирование - спринты (90% команд используют)
Работать небольшими забегами с промежуточным результатом - хорошая практика. Спринт - это несколько недель. Слишком короткие или слишком длинные отрезки - плохо. Одинаковый интервал на все случаи жизни тоже не годится. У спринта должна быть максимально точная цель, исходя из этого и определяется длительность.
Самый частый ошибкой является то, что команды привыкают просто расписывать задачи раз в две недели, теряются процессы постановки промежуточных целей и подведение итогов в конце. Работа сваливается в обычный поток задач с обновлением раз в спринт. Проблему должен решать методист.

2. Ежедневные планерки (88% команд используют)
Задача - чтобы каждый день команда подтверждала единое направление движение всех участников. По классическому описанию каждый в команде раскрывает три вопроса:

  • Что сделано к этому моменту из спринта?
  • Что планируется на сегодня?
  • Какие проблемы возникли или что мешает?

По нашей практике это быстро надоедает командам и становится рутиной или формальной отчетностью. Что помогает:
Менять время планерки - 6 мес. утром, 6 мес. вечером.
Каждый раз менять ведущего планерки, не должно быть лица перед которым отчитываются. Отличный вариант если ведущий разыгрывается жребием. Заказчик продукта, делиться историями о клиентах в начале планерки. Обсуждать общие темы и только потом переходить к вопросам. Не пускать на планерки никого кроме участников команды.

3. Ретроспективы (83% команд используют)
Совещание в конце итерации. Обсуждение, что получилось, а что не очень. Самая важная цель - сделать выводы о том, как меняться.
Заказчику продукта - о том как лучше показывать ожидания пользователей, методисту - о том, как побуждать диалог и выполнять договоренности выбранных подходов, команде - о том, как при оценках учитывать новые открывающиеся факторы. Как правило ретроспективы проходят весело - итерация-то закончилась, можно выдохнуть и обсудить итоги. Хорошая практика что-нибудь пить или есть в перерывах этого процесса.

4. Итерационные показы (81% команд используют)
Это демонстрация от команды раз в несколько итераций результатов проекта, как правило в виде выступления. Главный смысл в том, чтобы была "сессия" и ничего страшного, если это станет похоже на отчетность перед руководством. Главная трудность в том, чтобы собрался кто-то кроме команды, да еще и понимал смысл происходящего. По нашей практике приживается только при очень крутом руководстве.

5. Короткие итерации (71% команд используют)
Смысл в том, что нужно постоянно стараться сокращать цикл получения маленьких промежуточных результатов. Если этого не делать, циклы будут естественным образом расти или будет постоянными, независимо от промежуточных целей. Чем короче цикл, тем меньше ошибок при итерационном планировании. Это задача методиста, стоит вспоминать про это хотя бы раз в полгода.

Как понять ведется ли проект по Agile-методологии или еще нет?

Диаграмма того, сколько компаний меняют Agile под себя выглядит так:


Гибкость подхода распространяется и на сам подход. Это первое, что стоит узнать команде, если им предстоит стать гибче. Нельзя быть на 100% Agile, выполняя все предписания. Никто строго не соблюдает правила в чистом виде, на практике у каждой компании есть свои модификации.

Самые популярные методы из Agile внедряются легко, дают результаты и не перевернут компанию с ног на голову. Именно по этой причине 98% использующих что-то из Agile говорят об успешности подходов.


Если начать, например, с утренних планерок, то ничего страшного в команде не произойдет, но простой ежедневный диалог людей внутри проекта делает процесс гибче.

Комбинация гибкости и жесткости всегда индивидуальна и зависит от множества факторов: руководителя, сложности проекта, размера команды, бюджета и тд. Но если осмыслено внедрен хоть один подход, то эта компания работает по Agile-методологии и будет не лишним гордо сообщать об этом внутри коллектива.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

  • Введение
  • 1. Анализ подходов к управлению проектами на основе классической и гибкой методологии
    • 1.1 Введение в гибкие методологии управления проектами
    • 1.2 Критика и проблемы гибкого управления проектами
    • 1.3 История развития взглядов на гибкие методологии
    • 1.4 Гибкие методологии в сравнении с традиционным подходом к управлению проектами
    • 1.5 Ключевые факторы успеха IT проектов, использующих гибкие методологии
    • 1.6 Ситуационный подход в управлении проектами в сфере информационных технологий
    • 1.7 Общее описание ИТ проектов
    • 1.8 Особенности управления проектами в разных странах
    • 1.9 Этнокультурные особенности проектной деятельности в России
    • 1.10 Переход на agile с традиционного подхода к управлению проектами
    • Выводы по главе
  • 2. Эмпирическое исследование КФУ для IT проектов
    • 2.1 Методология исследования
    • 2.2 Исследовательские гипотезы
    • 2.3 Описание процесса проведения опроса
    • 2.4 Анализ результатов
      • 2.4.1 Демографические показатели респондентов
      • 2.4.2 Тест надёжности переменных модели
      • 2.4.3 Анализ корреляций независимых переменных с успешностью проекта
      • 2.4.4 Построение модели множественной линейной регрессии
    • 2.5 Интерпретация результатов
    • Выводы по главе
  • 3. Практические рекомендации
    • 3.1 Советы по переходу на agile методологию
    • 3.2 Рекомендации по проведению качественной ретроспективы
    • 3.3 Саморегулируемая команда как способ ускорить процесс принятия решений
    • 3.4 Ситуационный подход в практике управления проектами
    • Рекомендации для будущих исследований
    • Выводы по главе
  • Заключение
  • Список использованной литературы
  • Список иллюстраций
  • Приложение 1. Вопросник
  • Приложение 2. Диаграммы остатков регрессии
  • Приложение 3. Результаты опроса
  • Приложение 4.Расшифровка для результатов опроса

Введение

Сегодня мы живём в мире, в котором информация стала основным продуктом и ресурсом общества. Деятельность практически всех компаний так или иначе связана с её переработкой, хранением, производством и использованием. Таким образом, информационные технологии плотно вошли в нашу жизнь, стали её неотъемлемой частью. Информационное общество характеризуется колоссальной скоростью развития и изменения. Такого не наблюдалось ещё несколько десятилетий назад: инженер мог получить образование, и этих знаний ему хватало на всю жизнь. Сейчас же появилась необходимость не просто периодического повышения квалификации, а непрерывного обучения в течение всей жизни. Словом, темп изменений окружающей среды сильно возрос, поэтому появилась необходимость справляться с изменениями среды. Так в области разработки программного обеспечения (ПО) со временем появилась концепция гибкой разработки. Она позволяло адекватно справляться с изменениями среды и создавать продукт, необходимый заказчику.

Сейчас данная концепция значительно переросла рамки разработки ПО и стала, фактически, некоторой альтернативой традиционному подходу в управлении проектами во всех сферах. Но особенно она популярно всё же в сфере информационных технологий (IT), в силу динамичности этой области. Однако несмотря на растущую популярность и текущую скорость изменений в бизнес-среде, многие компании по-прежнему придерживаются традиционного подхода. Agile (гибкий) подход для них является, как правило, незнакомым, поэтому переход на новую методологию может вызывать сложности. В такой ситуации полезно иметь набор ключевых точек, на которые стоит обратить особое внимание. В литературе они называются ключевые факторы успеха (КФУ). В зарубежной литературе присутствует значительное число работ на эту тематику, однако в России данная область только начинает развиваться, поэтому работ на эту тему практически нет. В то время как социокультурные факторы, соответствующие разным странам, значительно влияют напроцесс управления. И стоит принимать это во внимание при работе с проектами.

Целью данной работы будет заполнить пробел в исследованиях: рассмотреть ключевые факторы успеха проектов в сфере IT, использующих agile методологии, в России и предоставить рекомендации по их практическому использованию

Для этого будет необходимо осуществить следующие задачи:

1. Идентифицировать вероятные КФУ с помощью анализа литературы.

2. Провести глубинные интервью с менеджерами для уточнения и дополнения КФУ.

3. Спроектировать и провести онлайн-анкетирование менеджеров проектов в IT, работающих с гибкими методологиями

4. Проанализировать результаты.

Объектом работы выступают ключевые факторы успеха проектов.

Предметом являются ключевые факторы успеха проекта в сфере IT, использующего гибкие методологии.

Для того чтобы сформировать рекомендации для менеджеров agile проектов, необходимо выявить факторы, которые оказывают наибольшее влияние на успех проекта. Важно сделать это именно опираясь на российских менеджеров, так как управление в разных странах отличается в силу социокультурных факторов. Поэтому необходимо осуществить сбор первичной информации: вторичная отсутствует.

Методом для сбора является опрос менеджеров проектов в IT относительно их проекта, выполненного с использованием гибких методологий. Формирование опроса проходило в 3 этапа:

1. Формирование первичного перечня КФУ на основе имеющейся литературы

2. Уточнение КФУ в ходе неструктурированного интервью с 3 менеджерами проектов

3. Составление опросника и пилотажное тестирование

Полученные данные проанализированы на предмет наличия связи между успешностью проекта и различными переменными. В качестве методов анализа использованы коэффициенты корреляции и регрессионный анализ, проведённые с использованием SPSS.

Результаты исследования будут полезны как менеджерам, уже работающим с agile методологиями, так и тем, кто только собирается применить их в одном из будущих проектов или внедрить в своей организации. В первом случае рекомендации, выработанные в работе, позволят диагностировать проблемы, если они имеются, и пересмотреть взгляд на то, какие аспекты деятельности требуют наибольшего внимания. Для новичков же будет полезно использовать рекомендации как стартовую точку и для правильно расстановки акцентов в будущем проекте.

Структурно работа разделена на 3 большие главы. Первая - теоретическая, представляет собой анализ существующей литературы по данной теме в основном из зарубежных источников. Наибольшее внимание было уделено статьям из International Journal of Project Management и специализированным журналам, касающимся разработки ПО. Вторая глава представляет собой подробное описание методологии исследования, анализу и интерпретации полученных выборочных данных. Третья глава представляет собой набор рекомендаций для практиков, основанных на результатах исследования.

Научная новизна работы обусловлена практически полным отсутствием опубликованных исследований касательно agile методологий управления проектами в России в целом. В то время как совершенно необходимо учитывать социокультурные факторы при управлении agile проектами. управленческий информационный линейный регрессия

1. Анализ подходов к управлению проектами на основе классической и гибкой методологии

1.1 Введение в гибкие методологии управления проектами

Методологии правления проектами в сфере ИТ можно глобально разделить на два подхода:

· Традиционный

· Гибкий (итеративный)

Традиционный - базируется на достаточно жёстком планировании проекта до запуска и минимальным вмешательствам после. При таком подходе каждая последующая фаза начинается после предыдущей: реализация после планирования и так далее. При этом возврата к более ранним фазам не предусмотрено, поэтому такой метод иногда называют водопадным. Традиционный подход соотносится с классическим стандартом управления проектами от PMI - PMBoK. В частности хорошо описывает процесс определение управления проектом:

Приложение знаний и навыков, инструментов и методов к работам проекта для удовлетворения требований, предъявляемых к проекту.

Гибкие методологии, в свою очередь, менее привязаны к планированию и предполагают совсем иной жизненный цикл - итерации. Такой подход позволяет работать более эффективно в условиях быстро меняющейся бизнес-среды. Главное отличие - взгляд на изменения на разных стадиях проекта. При традиционном подходе изменения на поздних этапах нежелательны и связаны с большими затратами. Гибкие методологии - поощряют изменения на всех этапах. Это делает их более конкурентоспособными в текущих реалиях.

На сегодняшний день гибкие методологии являются хорошей альтернативой традиционному подходу и широко применяются в различных высокотехнологичных сферах, особенно в сфере ИТ. Причиной является тот факт, традиционный подход испытывает значительные затруднения, когда требования к проекту могут поменяться практически на любой стадии, так как необходимо реагировать на стремительно изменяющуюся среду. Ещё более сложный случай - конечный результат продукта не совсем ясен, то есть необходимо разрабатывать, не зная до конца, что получится. Гибкие методологии в таких ситуациях выглядят более предпочтительно.

Практика использования методологий также подтверждает эти выводы: доля Agile проектов в общем массиве неуклонно растёт (с 2% в 2002 до 9% в 2010), в то время как традиционные подходы теряют популярность, что особенно заметно в области разработки приложений.

Управление проектами существует на различных уровнях иерархии. В представлении (Maylor, Brady, Cooke-Davies, & Hodgson, 2006) она выглядит следующим образом

Рисунок 1. Окружение проекта

Изначально данная схема была направлена на проекты по разработке программного обеспечения, однако примерно в таком же виде она существует и в других проектах в IT. При этом очевидно, что (Maylor, Brady, Cooke-Davies, & Hodgson, 2006) выделяют конкретные Agile методологии, как SCRUM и XP в качестве методологий уровня команды. Однако некоторые исследователи склонны смотреть на SCRUM как на более общую методологию, относящуюся и к уровню менеджера проекта в том числе (Barlow et al., 2011). Ряд исследователей также рассматривает Scrum в других сферах, отличных от IT. Данная методология демонстрирует неплохие результаты и в других областях, например, строительства (Owen, Koaskela, & Henrich, 2006).

1.2 Критика и проблемы гибкого управления проектами

Однако agile подход к управлению проектами имеют и определённые недостатки, отмеченные многими исследователями. В частности (Coplien & Harrison, 2004) отмечают, что многие менеджеры сегодня «словно лемминги» следуем за последними трендами, вместо того чтобы заботиться об использовании оптимального подхода. Кроме того (Coplien & Harrison, 2004) обеспокоены тем, что Agile отходит от принципов, заложенных в Manifesto. Всё чаще стремление направлено на сам факт применения agile подхода без осмысления лежащих в его основе принципов.

В качестве одного из основных рисков agile проекта (Boehm & Turner, 2003) выделил возможные ошибки при разработке, так как усложняется контроль со стороны из-за отсутствия документации.

Существует точка зрения, что в силу того, что для agile проекта требуется более подготовленная в техническом плане и достаточно самостоятельная команда, успех проекта во многом обеспечен именно этим фактом, а не применением какой-либо методологии (Cohen, Lindvall, & Costa, 2004). В таком случае большинство исследований, касающихся эффективности подхода становятся необъективными.

1.3 История развития взглядов на гибкие методологии

Agile методологии - целый набор различных методик: SCRUM, Xtreme programming, Lean и другие, но объединяет их соответствие 4 базовым принципам, описанным в Agile Manifesto в 2001 году:

· Люди и взаимодействие важнее процессов и инструментов

· Работающий продукт важнее исчерпывающей документации

· Сотрудничество с заказчиком важнее согласования условий контракта

· Готовность к изменениям важнее следования первоначальному плану

Тем не менее, Agile не появился в 2001 году в головах нескольких человек, на самом деле история его развития насчитывает несколько десятков, и Manifesto явился лишь закреплением основ.

Несовершенство существующего подхода осознавалось задолго до 2001 года, и предпринимались попытки применения новых подходов. Уже в 1970-1980 годах применялись итеративные и инкрементные методологии, которые имели серьёзные преимущества в скорости реализации проектов и их эффективности. Например, EVO, RAD, DSDM- всё это методологии очень близкие к идеям гибкого управления проектами, они появились и использовались задолго до манифеста. Многие даже имели определённый успех: в 1988 году компания представила свою методологию Rapid Iterative Production Prototyping (RIPP), благодаря которой им удалось значительно сократить время разработки программного обеспечения. Компания гарантировала клиентам готовый продукт в течение 90 дней или возврат денег.

Наиболее интересной частью статьи выглядит таблица сравнения принципов из Agile Manifesto с методологиями предыдущих подходов. Сравнительно новые только 2 пункта из 12 , а все остальные - уже были отмечены или даже применены в упомянутых выше методологиях. Другими словами, большинство принципов agile - результат нескольких десятилетий развития альтернативных подходов к реализации проектов.

Отличный обзор эмпирических статей на тему Agile методологий представили (Dybе & Dingsшyr, 2008). Были обнаружены 1996 работ, 36 из которых оказались эмпирическими и были отобраны для анализа. В ходе детального обзора и систематизации, авторы пришли к выводу, что существует нехватка качественных эмпирических исследований на эту тему.

1.4 Гибкие методологии в сравнении с традиционным подходом к управлению проектами

Несмотря на достаточно долгий период успешного применения в различных проектах, многие менеджеры до сих пор относятся скептически к agile методологии и предпочитают традиционные методы. Такая позиция частично обоснована: все проекты уникальны и требуют различного полхода. Этот аспект хорошо описан в статье (Fernandez & Fernandez, 2008). Ответ на вопрос кроется в ситуации применения. Авторы выделают 4 типа начальных условий проекта:

1. Цель и путь её достижения определены

2. Определённая цель, без пути достижения

3. Определённый путь, без определённой цели

4. Неопределённая цель и путь

В различных ситуациях более эффективным может оказаться традиционный подход, в других же - гибкий. В стандартном проекте с ясной и легко достижимой целью традиционный подход может оказаться эффективнее и проще, так как изменения в дальнейшем маловероятны. В ситуации, когда что-либо неизвестно, появляется неопределённость. Традиционный подход не очень эффективен в подобной ситуации: повышаются риски, так как стоимость изменения очень высока. В ситуации неопределённости цели, или пути, или всего вместе гибкие методологии проявляют себя лучше, так как поддерживают изменения на всех этапах и не требуют полного понимания конечного результата в самом начале. Команда вместе с заказчиком может прийти к нужному результату в процессе создания, что значительно снижает риск получения неактуального продукта. Авторы статьи также отмечают, что гибкие методологии помимо решения проблем предоставляют определённые требования к организации, менеджерам, командам. Agile предполагает решение многих задач в автономных командах, а значит, руководитель и организационная структура должны позволять это, не говоря уже об определённой зрелости самой команды.

1.5 Ключевые факторы успеха IT проектов, использующих гибкие методологии

Когда менеджер, который до этого придерживался традиционной методологии в своей работе, решает применить гибкий подход в следующем проекте, ключевой вопрос, который возникает - на какие факторы стоит ему и команде обратить внимание. Существует много аспектов, которые, безусловно, не могут быть опущены, но для эффективного применения новой методологии важно знать, на какие стоит сделать максимальный акцент. При этом в Agile Manifesto важные принципы наоборот описаны слишком абстрактно и не применимы непосредственно в работе. Для будущего применения нужны более конкретные рекомендации, поэтому уже существует значительный пласт работ, в которых описаны ключевые факторы успеха проектов.

Точек зрения на понятие успешности проекта много, однако наиболее известны и признаны в управлении проектами 3 показателя: стоимость, время, качество. Такой подход часто называют проектным треугольником и изображают в следующем виде:

Рисунок 2. Проектный треугольник

Подобная графическая интерпретация демонстрирует взаимосвязь этих компонентов и их взаимное влияние: попытки сократить время на реализацию проекта приводят к падению качества, либо увеличению стоимости и т.д.

Первым концепцию ключевого фактора успеха предложил (Daniel, 1961) в своей статье в Harvard Business Review «Management Information Crisis». Более подробно термин раскрыл (Rockart, 1979):

Ключевые факторы успеха - «несколько ключевых областей, в которых необходим положительный результат, для достижения успеха организации». Таким образом, это самые важные для менеджмента области, внимание к которым критически важно для успешной реализации проекта. Это те самые 20%, которые приносят 80% результата согласно принципу Парето.

Стоит отметить, что модель КФУ является сравнительно хорошей моделью, но она, как и любая другая модель, имеет некоторые недостатки и упрощения:

Однофакторность. Модель учитывает каждый фактор в отдельности, тогда как связь между факторами не менее важна (Nandhakumar, 1996)

Статичность. Модель предполагает, что внедрение или проект не изменяются со временем, при этом на практике на различных этапах тот или иной фактор может быть наиболее важен для успеха (Larsen & Myers, 1999).

Ключевые факторы успеха (КФУ) для управления проектами довольно хорошо освещены различными авторами. (Fortune & White, 2006) В своей статье проанализировали 63 публикации и выделили самые популярные КФУ. Оказалось, что у исследователей нет единогласия во мнениях: поддержка руководства, чёткие и реалистичные цели, детальный план - факторы, получившие наибольшее количество упоминаний, встречались все три вместе только в 17% работ.

В области IT проектов также есть определённый пласт работ по данной проблематике, однако и в данном случае консенсуса среди исследователей нет. (Misra, Kumar, & Kumar, 2009) В своей работе провели масштабное исследование ключевых факторов успеха в проектах, использующих гибкие методологии. Авторы акцентировали своё внимание на разработке программного обеспечения, но никаких существенных препятствий для распространения выводов на IT сферу в целом нет.

Помимо беспрецедентно большой выборки из 241 респондента, достоинством исследования является структура из 14 ключевых факторов успеха Agile проектов, которая была построена на основе анализа существующих работ и протестирована с помощью опроса.

(Misra, Kumar, & Kumar, 2009) Выделили следующие факторы как наиболее существенные:

1. Ориентация на потребителя

2. Время принятия решений

3. Распределённость команды (географическая)

4. Размер команды

5. Корпоративная культура

6. Планирование и контроль

7. Компетентность

8. Личные характеристики

9. Коммуникация и переговоры

10. Социально-культурные особенности

11. Знания и обучение

В других статьях на эту тему, как правило, выделяются примерно такие же факторы. Различия бывают в основном в формулировках и иерархии: некоторым факторам придают большее значение.

Основные противоречия у исследователей возникают в отношении 3 факторов:

· Распределённость команды

· Размер команды

· Знания и обучение

Высказываются различные точки зрения - (Dybе & Dingsшyr, 2008) отмечают, что важно не просто расположить всю команду вместе, но и покупателя тоже, так как это позволяет детально обсуждать все рабочие моменты. В свою очередь (Misra, Kumar, & Kumar, 2009), несмотря на включение этого фактора в теоретическую модель, не нашли практического подтверждения значимости для успеха проекта. Такой же результат получил (Livermore, 2008) в своём исследовании. Таким образом, стоит отметить, что расположение команды проекта в одном месте - аспект требующий дальнейшего изучения.

(Misra, Kumar, & Kumar, 2009) Не обнаружили и серьёзной корреляции успешности проекта и размера команды, хотя в литературе главенствует точка зрения, что Agile методологии были разработаны и применимы к небольшим командам.

(Livermore, 2008)Отметил, что Scrum, как одна из гибких методологий применим как к большим проектам (и, соответственно, командам), так и к крупным, в отличие от Extreme Programming и других.

Знаний и обучения команды также существуют противоречивые точки зрения: с одной стороны опытная команда показывает лучшие результаты (Wysocki, 2012), что довольно ожидаемо и подтверждается исследованиями. С другой стороны - обучение именно методологии не выглядит столь однозначно. (Livermore, 2008) обнаружил значительную корреляцию между успехом проектов и обучением, в то время как (Misra, Kumar, & Kumar, 2009) не нашли подтверждения этой позиции в своём эмпирическом исследовании. Стоит отметить, что выборки и в одном, и в другом случае были значимые статистически и обладали большим числом респондентов из разных областей (более 100 и более 200 соответственно)

1.6 Ситуационный подход в управлении проектами в сфере информационных технологий

С каждым годом увеличивается разнообразие проектов - по сферам бизнеса, масштабу и другим факторам. В ответ на это менеджеры разрабатывают новые методы управления этими проектами. Надёжный контроль возможен только тогда, когда управляющая система имеет разнообразие действий не ниже, чем разнообразие вероятных действий управляемой системы. Так звучит изложенный в более понятных терминах «Закон о необходимом разнообразии» сформулированный математиком Уильямом Эшби в книге «Введение в Кибернетику». В первоначальном варианте он был сформулирован для технических систем и звучал следующим образом: «Разнообразие исходов [ситуации], если оно минимально, может быть еще более уменьшено лишь за счет соответствующего увеличения разнообразия, которым располагает регулятор» (Эшби, 2015) в главе 11. Но этот же закон работает и для других систем, таких как организация или проект, впоследствии его даже стали называть «Первым законом управления». Таким образом, для эффективного управления необходимо увеличивать разнообразие возможных действий - использовать разные методологии и их комбинации.

Многие исследователи и практики до сих пор считают, что проекты похожим друг на друга и ими можно управлять одинаково (Shenhar, 2001). Однако всё большую популярность набирает ситуационный подход, согласно которому необходимо подбирать методологию под каждый проект индивидуально в зависимости от ряда факторов: условий внешней среды, характеристик организации и самого проекта. В условиях растущего количества альтернатив при выборе методологии перед менеджерами проектов стоит сложная задача выбора правильного варианта.

(Howell et al., 2010) в своей работе на основе анализа литературы предложили модель, позволяющую соотнести особенности проекта и наиболее эффективную методологию.

Рисунок 3. График Неопределённость - последствия

По горизонтальной оси представлена степень неопределённости, по вертикальной - значимость последствий. В эти 2 измерения включены все факторы, выделенные авторами при анализе литературы:

· Степень неопределённости включает неопределённость, сложность и срочность проекта

· Значимость последствий - критичность последствий и ответственность команды.

На графике у каждой методологии есть «зона комфорта», внутри которой она наиболее успешно применяется. Например, для Agile это проекты любого уровня неопределённости, не несущие серьёзных последствий, т.е. провал или успех которых не поставят под угрозу существование компании. В случае пересечения зон, рекомендуется применять методологию, которая проще и дешевле в применении.

На практике руководители не используют одну и ту же методологию в чистом виде - чаще это комбинация двух подходов. Определённую пользу для проекта может принести тот или иной инструмент, если применить его в правильных условиях.

Рассмотрением такого гибридного подхода занялись (Baird & Riggins, 2012) статьи «Planning and sprinting: Use of a hybrid project management methodology within a CIS capstone course». В качестве проектных команд у исследователей выступали группы студентов, выполнявших определённый проект. Этот факт, конечно, накладывает некоторые ограничения на применение результатов: переносить прямо в сферу бизнеса можно с трудом.

Гибридный подход авторов заключался в следующем: проект выполняет короткими итерациями со спринт бэклогом и презентацией полученной работы преподавателям после каждого спринта. Отличие от Scrum в данном случае заключалось в первом спринте: студенты вместо попыток создания продукта сразу, с нуля в ходе первой итерации производили план - представление дальнейшей работы. По замыслу исследователей такой подход должен был помочь студентам на первых этапах, не теряя преимуществ scrum и возможность беспрепятственных даже поздних изменений.

Результаты исследования показали, что и преподаватели (условно представлявшие собой клиентов) и участники команд остались довольны процессом реализации и конечным продуктом. Исследователи продемонстрировали, как можно решить некоторые проблемы гибкого управления проектами, например, одну из наиболее важных - сложность с долгосрочным планированием. В Scrum планирование производится в основном на текущий спринт, а не на долгосрочный период. Эту проблему частично помогло решить изменение цели первого спринта на производство плана. Хотя исследователи отметили небольшое снижение мотивации из-за этого процесса, польза планирования перевешивает этот фактор.

1.7 Общее описание ИТ проектов

В первую очередь стоит определить, что включает в себя понятие IT. IT - information technology принято называть всё, что связано с обработкой, хранением и использованием информации, однако в последнее время, в связи с развитием компьютерной техники и интернета, IT в первую очередь связывают именно с ними. В данной работе под IT проектом будет пониматься проекты в области разработки программного обеспечения, Информационной безопасности, корпоративных систем.

IT, на сегодняшний день, - одна из наиболее динамично развивающихся сфер. Компании не могут обойтись без различных систем (системы безопасности, CRM, ERP систем) и серверов, поддерживающих бизнес, так и без сайтов и страничек в социальных сетях. На сегодняшний день значительное количество проектов в сфере IT завершаются с превышением бюджета, сроков, либо оборачиваются полной неудачей. Согласно отчёту CHAOS Summary 2010 (“CHAOS Summary 2010,”[Электронный ресурс] 2010) только 37% проектов завершаются успешно. Ещё 42% испытывают затруднения по сроках, бюджету или качеству, а оставшиеся 21% - считаются полностью проваленными. Хотя наблюдается определённая положительная тенденция, серьёзных улучшениях пока не приходится. 37% довольно малая часть от общего количества проектов. Данный отчёт в основном акцентируется на проектах по разработке программного обеспечения, однако похожая ситуация наблюдается и с другими проектами.

Одной из отличительных характеристик, помимо быстрого развития и изменения, является степень критичности последствий. Для IT проектов разнится значительно больше, чем в других сферах: проект доступа к системам государственной статистики и разработка системы управления полётами имеют совсем разные последствия ошибки при реализации. В строительстве, например, интересные с точки зрения управления проекты, как правило, являются критичными и несут серьёзные последствия, что могут разорить компанию.

1.8 Особенности управления проектами в разных странах

На сегодняшний день достаточно большое влияние уделяется социокультурным факторам, влияющим на управление организацией или проектом. Понятие национальной экономической культуры как совокупности норм и ценностей в сфере экономической деятельности является одним из ключевых в рамках научной дисциплины «Организационное поведение».

Наиболее популярную типологию ценностей организации представил Г Хофштед: в его терминологии представлено 5 индексов, которые зависят от национальной культуры.

· Индивидуализм - коллективизм

· Дистанция власти

· Избегание неопределённости

· Феминность - маскулинность

· Ориентация на долгосрочную

Первоначально было выделено 4 измерения, последнее - Ориентация на долгосрочную перспективу, было добавлено в последующих работах. Данные для анализа культурных ценностей были получены авторов во многом случайно, когда он работал психологом в крупной межнациональной корпорации - IBM, и занимался там исследованием. За время проведения с 1967 по 1971 было проанализировано более 116000 сотрудников из множества стран.

Рассмотрим подробнее каждое культурное измерение и его влияние на управление проектами.

Индивидуализм - коллективизм. В странах с преобладающей культурой индивидуализма общество даёт индивиду значительно больше свободы, меньше связывает его с окружающими: он заботится только о себе и, возможно, ближайших членах семьи. В более коллективистских странах люди ближе друг к другу и ощущают себя включёнными в группу. Они разделяют групповые интересы и мнения, а группа в некоторой степени защищает их, даёт поддержку в беде. Есть сильная зависимость между душевым ВВП и степенью индивидуализма: индивидуалистские страны, как правило, богаче. Управление проектами - идея появившаяся в индивидуалистских странах. В более коллективистских странах, гибкие структуры и временный характер проектов ставят людей в положение, когда они не привязаны к какой-то определённой группе и испытывают отчуждённость. Это непривычная для них ситуация. Для того чтобы избежать подобной ситуации (Hofstede, 1983) предлагает больше внимания уделять отношениям людей в проекте. Лучше использовать сложившиеся команды или формировать их из людей одной группы. Стоит также учитывать при планировании сроков время на установление отношений в команде.

Дистанция власти. Следующее измерение связано с понятием неравенства. Люди неравны от природы в силу физических и интеллектуальных различий. Некоторые страны дают этому неравенству усилиться (высокий уровень дистанции власти), некоторые наоборот - стараются его сократить (низкий уровень).

Избегание неопределённости. В некоторых странах людей настраивают на то, что неопределённости не нужно бояться, её нужно принять. Они легче идут на риск, более спокойно относятся к поведению и мнениям, отличным от их собственного. Эти страны имеют низкий уровень избегания неопределённости. В противоположность им, страны с высоким уровнем, стараются «совладать» с будущим. А так как будущее непредсказуемо, жители этих стран стараются создать институты для обеспечения безопасности и уменьшения риска. Это могут быть технологии, законы, религии (в том числе и наука, в некотором смысле).

По двум измерениям - Дистанции власти и Принятию неопределённости, страны были расположены в плоскости.

Рисунок 4. Распределение стран по кластерам, в зависимости от культурных особенностей

Горизонтальная ось - индекс дистанции власти, вертикальная ось - индекс принятия неопределённости. Страны разбились на несколько кластеров. Правый верхний угол соответствует модели «семьи» - высокая дистанция власти, низкий индекс принятия неопределённости. Правый нижний угол - модель «пирамиды» высокий индекс дистанции власти и принятия неопределённости. Левый нижний- «хорошо смазанная машина», низкий индекс дистанции власти и высокий принятия неопределённости. Левый верхний угол - «деревенский рынок», низкие индексы дистанции власти и принятия неопределённости. Управление проектами предполагает модель «деревенского рынка», когда иерархия не столь важна (их может быть две - проектная и функциональная), важно не бояться неопределённости и уметь решать конфликты с помощью переговоров (Hofstede, 1983). Для других типов культур необходимо приспосабливать управление для достижения лучшего результата.

Маскулинность и феменинность. Страны с высоким уровнем разделения ролей по половому признаку (например, учитель - женская работа, водитель - мужская) называют маскулинными, а с низким - феменинными. С точки зрения Хофштеда, это измерение не связано существенно с управлением проектами.

В этих терминах Российской культуре соответствует:

· Индивидуализм

· Высокая дистанция власти

· Высокая степень избегания неопределённости

· Феминность

· Ориентация на краткосрочную перспективу

Различия в национальной культуре накладывают определённые ограничения на применение теорий и методологий, написанных для организаций с принципиально другой культурой. Этот фактор отмечен учёными и сейчас активно ведутся исследования в данном направлении.

В Своде Знаний по управлению проектами PMBoK: PMI культура отмечена как один из важных факторов среды организации. «В свете глобализации понимание влияния культур критически важно» Культура становится критическим фактором в определении успеха проекта». PMBOK. Некоторые исследователи также отмечают, что одно из предположений PMBOK: в управлении проектами существует неизменная часть и вариативная часть, на которую факторы национальной культуры оказывают прямое влияние. Особенно это актуально для проектов, в которые вовлечена мультикультурная команда, либо географически распределённая по разным местам. В Российских условиях - самая большая в мире и мультинациональная страна, это довольно часто встречающаяся ситуация, поэтому эта тема особенно актуальная для российских менеджеров проектов.

1.9 Этнокультурные особенности проектной деятельности в России

Развитие данной темы в сфере управления проектами в России пока на начальной стадии, однако начинают появляться новые научные труды, например, (Кожевникова, 2013) в работе «Этнокультурные факторы проектной деятельности в России: проблемы и инструменты» представила исследование влияния этнокультурных факторов. В ходе опроса менеджеров проектов из различных компаний (от крупных строительных до небольших ИТ и консалтинговых) были выявлены основные проблемные области управления проектами: управление сроками, качеством, персоналом и содержанием.

Сегодня огромное количество данных собирается о людях из разных стран, в том числе достаточно данных об этнокультурных характеристиках. В частности The World Values Survey (www.worldvaluessurvey.org) - глобальная сеть учёных-социологов, занимающаяся изучением изменения в ценностных установках, а также их влиянием на социальную, политическую и другие сферы жизни. На основе данных с этого портала построена, а также собственного исследования менеджеров, (Кожевникова, 2013) была составлена таблица ценностных ориентиров россиян по сравнению с американцами.

Таблица 1Сравнение россиян с жителями США.

Оценка проявления у россиян (по сравнению с американцами)

Ориентация на результат

Меньше ориентированы на результат, хотя сознают необходимость его достижения

Работа среди жизненных ценностей

Инструментальная ценность работы (работа как достижение посторонних целей, а не самореализации), как следствие, вторичность работы по отношению к личной жизни

Отношение к вознаграждению

Более чувствительны к материальным ценностям и вознаграждению

Формализм и требования

Признают менее формальный подход, при этом привыкли к давлению на работе

Инициатива и достижения

В меньшей степени готовы проявлять инициативу и не ориентируются на достижения

Доверие и толерантность

Обладают меньшим уровнем доверия и толерантности

Составление подобных таблиц помогает наглядно показать различия в ценностных установках американцев (на которых во многом основаны теории менеджмента и управления проектами) и россиян. Становится очевидна разница, которая не является сверхсерьёзной, но способна оказать влияние на процесс управления.

Пункты «Формализм и требования», «Инициатива и достижения», «Доверие и толерантность» представляют непосредственный интерес для практиков гибких методологий управления проектами в IT и других сферах. Тот факт, что россияне «признают менее формальный подход», является позитивным моментом, так как Agile практики основаны на менее формальной и более личной (не стоит воспринимать абсолютно) коммуникации, предпочитая неформальные планы и непосредственное общение между членами команды. Напротив, относительно низкий уровень доверия и толерантности, а также низкое желание проявлять инициативу и слабая ориентация на достижение являются негативными факторами. Основой практически каждой гибкой методологии управления проектами является слаженная команда, обладающая должной степенью самостоятельности. Вполне очевидно, что низкая степень доверия и желания проявлять инициативу негативным образом сказываются на способностях команды.

Эти факты показывают необходимость учета этнокультурных факторов в управлении проектами. Не стоит воспринимать их как черты, присущие каждому человеку из России, и ставящие под опасность применения Agile методологий. Менеджеру просто необходимо осознавать их наличие и стараться преодолеть слабые места и извлечь дополнительную пользу из сильных.

1.10 Переход на agile с традиционного подхода к управлению проектами

Внедрение новой методологии - сложный процесс, который нередко сопровождается различными проблемами, такими как неготовность персонала, сопротивление сотрудников и другие. Как отмечено выше, идентифицированные КФУ представляют собой черты организации, в которой гибкие методологии полностью внедрились в культуру и рабочий процесс. В противном случае, добиться успеха крайне сложно. Поэтому одной из главных задач менеджера проектами внедрить методологию в команде и организации.

В теории управления проектами значительное место занимает оценка зрелости компании, а также построение корпоративной системы управления проектами. Основная идея заключается в том, что организация движется к полноценному внедрению управления проектами постепенно, так как реализация многих инструментов невозможно, если организация ещё к этому не готова. Схожий подход стоит применять и к гибким методологиям. Невозможно мгновенно перестроить сотрудников и команды, чтобы они соответствовали agile подходу. Организации и командам необходимо время для постепенного понимания не только определённых процедур и процессов, протекающих в проекте, использующем гибкий подход, но и фундаментальных принципов. Организация может начать использовать определённую методологию, однако это не означает, что она внедрена: интегрирована в систему ценностей и убеждений, рабочих практик персонала.

Сложность перехода на новую методологию варьируется от организации к организации и зависит от множества факторов. Менеджер должен уделить особенное внимание обучению команды новым методикам, донесению ценности новой методологии до команды, ресурсной поддержке внедрения, апробации нового подхода (Fernandes, Ward, & Araъjo, 2015).

Важным аспектом при внедрении являются также способности персонала. (Cockburn, 2002) отмечал, что различия людей делают их более или менее приспособленными для определённого типа работы. (Boehm & Turner, 2003) развили классифицию, выделив 5 типов сотрудников:

3 - способны к переосмыслению метода, нарушению его правил для успешного применения в совершенно новой, непредсказуемой ситуации

2 - Способны к приспособлению метода к текущей ситуации

1 А - После обучения способны к использованию различных методов, предполагающих самостоятельный выбор. С опытом могут перейти в категорию 2.

1 В - После обучения способны выполнять стандартные процедуры

1 - Могут обладать техническими способностями, но не способны или не желают выполнения совместной работы, не разделяют общие методы.

Для успешного внедрения гибких методологий необходимо достаточноеколичество сотрудников 2 и 3 типа. Если в организации значительная доля негибких сотрудников 1В, внедрение agile подхода рискованно. Стоит рассмотреть плановый, либо гибридный подход, который предполагает более основательное и формализованное планирование. Стоит также отметить, что данный подход даже более соответствует российской организационной культуре (Кожевникова, 2013).

Выводы по главе .

Гибкие методологии являются одной из главных альтернатив традиционному подходу к управлению проектами. Особенно эффективны они в условиях постоянно меняющихся условий среды, а значит - и требований к продукту. Подобная ситуация особенно характерна для сферы IT. Модель КФУ является хорошим способом показать факторы, которым менеджеру стоит уделить наибольшее внимание. В зарубежной литературе на данную тему нет единогласия: исследователи выделяют разные факторы в качестве ключевых для успех проекта. В России же подобных исследований практически нет. В то время как между странами существуют объективные различия в социокультурных факторах. Они не позволяют с большой долей вероятности проецировать выводы зарубежных исследований на российские компании.

2. Эмпирическое исследование ключевых факторов успеха для IT проектов

2.1 Методология исследования

Гибкие методологии управления проектами, базирующиеся на создании бизнес-ценности для заказчика в процессе постепенной итеративной разработки продукта прочно вошли в проекты в сфере IT. Они доказали свою эффективность в условиях неопределённости, которая сопровождает бизнес нашего времени. Однако вопрос применения agile на практике до сих пор вызывает споры среди теоретиков и практиков. В англоязычной литературе достаточно статей относительно ключевых факторов успеха agile проекта, но сложно сказать, что они единогласно выделяют какие-либо показатели (Fortune & White, 2006). Более того, в этих работах исследуются респонденты из разных стран, в то время как каждая страна имеет свои особенности в управлении проектами (Hofstede, 1983). Подобных работ о российских проектах крайне мало. Закрыть этот пробел - основная цель исследования.

Проведённое исследование можно разбить на 4 этапа:

· Подготовительный этап

· Этап сбора информации

· Этап анализа полученной информации

На подготовительном этапе был осуществлён первичный анализ проблемной ситуации: проведён обзор российской и зарубежной литературы по данной теме и проведены неструктурированные интервью с 3 менеджерами проектов в области IT, имевшими опыт работы с Agile. Результатом данного этапа явилась формулировка гипотез исследования и составление вопросника для дистанционного сбора информации.

Сбор информации на втором этапе исследования осуществлялся с помощью дистанционного опроса профессионалов из сферы IT через интернет. Для этого опросник, созданный на предыдущем этапе был размещён на тематических форумах и группах в социальных сетях с использованием сервиса Google Docs.

Анализ полученной информации был осуществлён с помощью SPSS. Особое внимание было уделено анализу корреляций и построению регрессионных моделей.

2.2 Исследовательские гипотезы

На основе результатов предыдущих исследований были выдвинуты следующие гипотезы:

Таблица 2. Исследовательские гипотезы

Переменная

Связь

Удовлетворённость заказчиков

Связана с успехом

Взаимодействие с заказчиками

Связана с успехом

Время на принятие решений

Связана с успехом

Расположение команды

Не связана с успехом

Размер команды

Связана с успехом

Корпоративная культура

Связана с успехом

Планирование

Связана с успехом

Контроль

Связана с успехом

Не связана с успехом

Личностные характеристики

Связана с успехом

Коммуникация

Не связана с успехом

Контакт с руководством

Связана с успехом

Использование специального ПО

Не связана с успехом

Видение у руководства

Не связана с успехом

Понимание роли

Связана с успехом

2.3 Описание процесса проведения опроса

Опрос - основной метод сбора информации в исследовании. Основой для вопросника послужила методика, применённая в статье (Misra, Kumar, & Kumar, 2009). Оригинальный опросник был переведён на русский язык и впоследствии модифицирован. После анализа предварительных интервью с менеджерами были добавлены несколько вопросов:

· Команда проекта и руководство компании регулярно обмениваются информацией о ходе реализации проекта

· Мы используем специальное ПО для удобства управления и коммуникации внутри команды

· У команды и руководства имелось чёткое видение, какого результата проект должен достичь

· Каждый член команды хорошо осознаёт свою роль и функции внутри проекта

Данные темы не были затронуты в оригинальном опросе, но были упомянуты как критичные для успеха проекта опрошенными менеджерами.

Часть вопросов, была исключена из методики после обсуждения в ходе интервью с менеджерами и в ходе пилотажа исследования силами студентов НИУ ВШЭ. В частности переменная «Социокультурные факторы» не имеет смысла в контексте данного исследования, так как исследование проводится в рамках одной страны - России, поэтому факторы предопределены. В исследовании (Misra, Kumar, & Kumar, 2009) данная переменная отвечает за различия между странами, в которых осуществляют деятельность респонденты, что в данном случае некорректно.

После окончательной проверки опрос был размещён на сервисе Google Docs, а затем опубликован на тематических форумах и группах в социальных сетях:

· http://www.cyberforum.ru/

· http://programmersforum.ru/

· http://www.pmprofy.ru/

· http://www.microsoftproject.ru/

· http://www.pmi.ru/forum/

· https://www.facebook.com/

· https://www.linkedin.com/

Всего получено 17 ответов. Достаточное разнообразие было достигнуто как по опыту респондентов, так и по размерам организации.

Выдвижение исследовательских гипотез

2.4 Анализ результатов

Подход к опросу был полностью количественным, если не считать демографических вопросов. Были применены различные статистические методы для анализа данных закрытых вопросов. Основная цель исследования отношения между переменными: 15 независимыми (некоторые включали более 1 вопроса) и 1 зависимой - успешностью проекта. Были рассчитаны коэффициенты корреляции Пирсона для каждой независимой переменной, а также построена регрессионная модель.

2.4.1 Демографические показатели респондентов

В ходе исследования также была собрана дополнительная информация о респондентах. Большинство респондентов представляют компании в отраслях, связанных с компьютерами (software, hardware и т.п.) (76%), остальные отрасли представляют по 1 респонденту (6%) - телекоммуникации, консалтинг, продажи и финансы.

Значительно большее разнообразие имеется по размерам представленных организаций:

Таблица 3. Описательная статистика - количество работников в организации

Можно сказать, что представлены как совсем небольшие организации в 10-20 человек, так и средние и крупные компании.

Большинство респондентов представляют команды в 5-10 человек (41,2%) или 11-20 человек (41,2%), остальные размеры команды представлены небольшим количеством респондентов (по 5,9%). Стоит отметить довольно ровную выборку: примерно 50% респондентов представляют маленькие команды (до 10 человек) и 50% команды более 10 человек.

Самый важный момент в демографической части опроса - опыт работы с Agile методологиями:

Таблица 4. Описательная статистика- опыт работы с использованием гибких методологий

Выборка довольно ровная: присутствуют респонденты с различным опытом работы с agile методологиями. Некоторое преобладание респондентов с опытом до 3 лёт, вероятно, обуславливается тем фактом, что agile подход в России только начинает набирать популярность.

2.4.2 Тест надёжности переменных модели

Анализ валидности был проведён для переменных, составленных из нескольких показателей. В качестве способа определения был выбран коэффициент Альфа Кронбаха. Данный показатель оценивает внутреннюю согласованность переменных и измеряется в значениях от 0 до 1, где 0 - полностью не согласованы, 1 - полностью согласованы. Таким образом, чем выше значение, тем лучше для исследования. Существуют различные точки зрения на порог отсечения, но наиболее популярное пороговое значение - 0,7.В таблице представлены результаты для составных переменных:

Таблица 5. Анализ валидности переменных

Как видно, для всех переменных значения коэффициента выше пороговых, поэтому можно сделать вывод о надёжности данных составных переменных.

2.4.3 Анализ корреляций независимых переменных с успешностью проекта

Основная концепция исследования - анализ взаимосвязи между 15 независимыми переменными (представляющими критические факторы успеха) и 1 зависимой - успешностью проекта. Одним из основных инструментов является коэффициент корреляции Пирсона. Для данного исследования уровень значимости - 95%. Результаты проведённого анализа представлены в таблице.

Таблица 6. Корреляция переменных

Переменная

Коэффициент корреляции Пирсона

Значимость

Удовлетворённость заказчиков

Взаимодействие с заказчиками

Время на принятие решений

Расположение команды

Размер команды

Корпоративная культура

Планирование

Контроль

Техническая компетентность команды

Личностные характеристики

Коммуникация

Контакт с руководством

Использование специального ПО

Видение у руководства

Понимание роли

По результатам анализа, только 3 независимые переменные обнаружили статистически значимую связь с успешностью проекта: Ориентация на удовлетворённость потребителя, Время на принятие решений, Контроль. Данные результаты согласуются с выводами исследования (Misra, Kumar, & Kumar, 2009). Самую сильную взаимосвязь с успешностью проекта.

Другие показатели не обнаружили статистически значимой взаимосвязи, что частично можно связать с ограниченностью выборки.

2.4.4 Построение модели множественной линейной регрессии

...

Подобные документы

    Сущность и функции корпоративной системы управления проектами (КСУП), ее элементы и предъявляемые к ней требования. Базовые методологии и процессы управления проектами. Характеристика основных ролей в контексте КСУП, этапы ее разработки и внедрения.

    контрольная работа , добавлен 13.06.2013

    Сущность понятия "проект". Связь методологии управления проектами с другими управленческими дисциплинами. Разница между менеджером и владельцем. Источники успеха руководителя. Рычаги управления проектами. Жизненный цикл и фазы инвестиционного проекта.

    презентация , добавлен 21.11.2011

    Использование методологии управления проектами в качестве механизма реализации инновационных инвестиций. Синергия проектного, программно-целевого и портфельного управления. Модель информационно-аналитической системы управления лечебным учреждением.

    курсовая работа , добавлен 07.07.2015

    Анализ существующих информационных технологий в области управления проектами. Разработка методики внедрения в работу образовательного учреждения программного комплекса управления проектами Microsoft Project и оценка эффективности его использования.

    курсовая работа , добавлен 14.01.2014

    Характеристика этапов развития управления проектами в России. Понятие, роль и актуальность проектного управления. Основные формы планирования и контроля текущей деятельности фирмы. Особенности управления проектами в фирмах-партнерах "1С:Франчайзи".

    курсовая работа , добавлен 23.10.2015

    Понятие управления проектами как важной части функционирования любого предприятия. Внедрение информационных систем. Стандарты по управлению проектами. Интеграция проекта и управление его содержанием. Особенности управления временем и стоимостью.

    практическая работа , добавлен 07.04.2015

    Управление проектами в рыночных условиях, особенности управления ими в России. Управление эффективностью, рентабельностью и продолжительностью работы проекта. Деятельность людей в проектах. Факторы и правила достижения успеха в управлении проектами.

    курсовая работа , добавлен 25.03.2008

    Понятие, состав и виды проектов. Этапы управления проектами на предприятии. Организационно-экономическая характеристика ТОО "Казцинктех". Анализ экономических показателей работы предприятия. Основные проблемы в управления проектами и пути их решения.

    дипломная работа , добавлен 22.05.2012

    Проект и его характеристика. Управление проектом как одна из самых сложных и трудоемких задач управленческой деятельности. Виды организационных структур управления проектами. Анализ организационной структуры управления проектами в ООО "Ай-Ти Сервис".

    дипломная работа , добавлен 18.02.2013

    Понятие и структура корпоративной системы управления проектами. Основные методы диагностики уровня зрелости управления проектами. Инициация и планирование, финансирование проектов. Управление программами, рисками, коммуникациями и портфелем предприятия.

Доктор Ройс создал так называемую водопадную модель разработки программных продуктов. Она быстро завоевала популярность на Западе, и некоторое время назад по этой модели работало подавляющее большинство компаний-разработчиков. Что она собой представляет? Разработка продукта проходит через ряд этапов:
  • сбор требований;
  • их анализ;
  • создание архитектуры;
  • создание дизайна системы;
  • кодирование;
  • тестирование;
  • выкладка;
  • эксплуатация.
В идеальном мире мы прошли бы по этим уровням сверху вниз, как течет водопад, и в конце у нас получилась бы хорошая система. В чем заключалось решение доктора Ройса? Он предложил писать много документации, обрабатывать риски, повторять по несколько раз какие-то этапы. В итоге получилась тяжеловесная водопадная модель. Вся индустрия коммерческого софта сформировалась в 1990-х годах. И если в Европе и США существовали тяжелые методологии, то у нас не было никаких. Собиралась группа людей, которые просто пытались сделать хороший софт. Обе проблемы - отсутствие методологии у нас и тяжеловесные схемы на Западе - хорошо решает Agile.

Для чего нужна методология гибкой разработки?

Итак, для чего же применяется методология Agile?
  • Ускорение вывода продукта на рынок . Если вы хотите что-то сделать быстрее, нужно делать это в соответствии с Agile. Очень простой пример. Есть две компании, у них примерно одинаковый бизнес. Одна пишет ТЗ, затем проектирует систему и рисует дизайн - это водопадная модель, на разработку которой может уйти несколько месяцев. Во второй компании, работающей по Agile, к этому времени может быть уже запущен сайт, выпущено ПО, она начнет зарабатывать деньги и захватывать рынок, что самое главное.
  • Управление изменениями в приоритетах . Это, пожалуй, весьма болезненная проблема практически для всех компаний. Если вы делаете проект, который длится хотя бы несколько месяцев, то у вас обязательно поменяются требования. Конечно, если это не софт, например, для спутника или марсохода. Хотя даже спутникам и марсоходам обычно заливают свежую версию софта, когда они прилетают в точку назначения. Если говорить про коммерческую разработку, то проблема в том, что мы, программисты, аналитики и дизайнеры, никогда не знаем, что нужно не только заказчику, который нам платит, но и пользователям. Обычно все подходят к вопросу так: пока пользователь не попробует функционал сайта или приложения, вы не знаете, нужен он или нет.
  • Улучшение взаимодействия между IT и бизнесом . Это головная боль, особенно для крупных компаний, ведь у бизнеса периодически меняются требования, каждый говорит на своем языке. В результате стороны друг друга не понимают.
Ответом на все эти вызовы явился Манифест гибкой разработки ПО.

Манифест гибкой разработки

Он состоит из нескольких частей. Первая часть называется «Ценности» (Values). Это четыре «взвешивания»:
  • Если вы хотите построить гибкий процесс, вам нужно взаимодействовать и общаться между собой. В чем это выражается - рассмотрим ниже на примере Scrum. При этом вы можете (и обязательно будете) использовать какие-то инструменты и процессы, например, трекеры - JIRA, Redmine и т.д. Но ваша работа должна опираться на различные митинги, встречи и взаимодействие, а не на настройки трекеров или TFS (если говорить про Microsoft стэк).
  • Работающий продукт, который мы делаем, намного важнее, чем документация по нему. Выше был приведен пример с двумя компаниями: у одной имеется готовый продукт, который можно дать пользователям, заказчику, захватив рынок; а вторая пишет ТЗ, рисует макеты и т.д. Вся эта документация, которую пользователь не может применить по причине не готовности продукта, не приносит ценности этому пользователю. Если мы научимся работать, минимизируя эти шаги, либо делая их небольшими кусочками, то у нас получится более гибкий процесс.
  • Сотрудничество и взаимодействие с заказчиком важнее жестких контрактных ограничений. Обычно подписывается договор, в котором указано, что к конкретной дате за определенную сумму разработчик обязуется выполнить оговоренный объем работ. Естественно, к договору прикладывается ТЗ. То есть фиксируется время, объем работ и сроки. Это называется Fixed Price. Такой подход не очень хорош, если вы хотите работать на долгосрочную перспективу и быть гибкими. В этом случае правильнее выстраивать партнерские отношения с заказчиком. Если говорить про контрактные оформления, то обычно это выливается в контракты по схеме «время - материалы», когда разработчику просто оплачивается потраченное время. Самое главное, что здесь начинается поиск партнерства и ситуации Win-Win, когда побеждает и заказчик, и его подрядчик.
  • Готовность к изменениям во взвешивании со следованием первоначальному плану.
В Agile есть план, оценки и прогнозы. Но если у вас есть какой-то первоначальный план для годового проекта, а вы через три месяца уже предоставили какую-то версию продукта, пользователи его пощупали, вы сняли метрики, посмотрели, что и как они используют, узнали что-то новое, то после этого первоначальный план можно почти полностью поменять.

Приведу свежий пример. Мы выкатили небольшую фичу на HeadHunter, когда ваши навыки может подтверждать любой - поставил вам плюсик, и появится надпись, что столько-то человек подтвердило ваш навык. У меня Scrum подтвердило 18 человек. Мы специально запустили это в очень простом виде, чтобы посмотреть, как к этому отнесутся пользователи. Мы исходили из логики, что будет взаимодействие а-ля LinkedIn или Хабр, где пользователи друг друга плюсуют. Сняли статистику, и оказалось, что у нас эти плюсики ставят, вероятно, после собеседований HR. То есть дальше мы можем развивать эту фичу в сторону HR, либо как-то ее модифицировать, чтобы она была более полезна соискателям. Таким образом, в Agile существует четыре ценности:

  • люди и взаимодействие между ними;
  • рабочий продукт;
  • сотрудничество и выстраивание партнерских отношений с заказчиком;
  • готовность к изменениям.

12 принципов Agile

Ценности влекут за собой 12 принципов Agile:
  1. Наивысшая ценность - это удовлетворение потребностей заказчика благодаря регулярной и максимально ранней поставке ценного для него ПО. Если заказчик хочет получить от нас большого слона, но мы можем дать ему часть этого слона не через год, а через три месяца, потом еще через три месяца еще одну часть, а затее ежемесячно выдавать кусочки, то чем чаще мы это будем делать и чем раньше, тем лучше.
  2. Мы всегда готовы изменять требования, даже на поздних стадиях проекта, если узнаем что-то новое. Таким образом, мы создаем бизнесу или внешнему заказчику конкурентное преимущество. Допустим, работают две компании: одна написала ТЗ и за год сделала продукт, а мы сделали концепцию продукта (неважно, в каком виде) и постепенно его выкатываем и раскатываем. Тогда наш продукт будет больше соответствовать требованиям заказчиков, пользователей и рынка в целом.
  3. При использовании Agile работающий продукт выпускают максимально часто. В манифесте прописаны сроки - от пары недель до пары месяцев. На самом деле это неделя/месяц, если вы используете Scrum. В России чаще всего каждые две недели выпускается что-то новое. А если делают какой-то веб-проект, то обычно используют одну из вариаций Kanban, значит, релизы можно делать каждый день. В HeadHunter обычно ежедневно выходит несколько релизов, что создает большие проблемы для наших конкурентов. Это могут быть правки багов, но мы умеем добавлять что-то ценное для наших пользователей.
  4. Бизнес обязательно должен работать вместе с программистами, помогать им понять специфику данного рынка. Например, программисты в HeadHunter должны понимать, как работает HR, и как соискатели ищут работу. Если вы работаете в банке, то вам требуется понимание принципа работы банка в целом и очень подробные сведения о той сфере, за которую вы отвечаете. Наиболее частой проблемой, по моему опыту, является недоступность бизнеса - когда разработчик не может получить у сотрудника нужную информацию. При использовании Agile важно избегать возникновения подобных ситуаций.
  5. Команда - один из краеугольных камней Agile. Наилучших результатов достигает команда замотивированных профессионалов. Есть гениальное замечание о том, что эффективность Scrum зависит от руководителя. В Agile руководитель прежде всего должен создавать условия для команды и обеспечивать всестороннюю поддержку, проводить коучинг, следить за атмосферой в коллективе.
  6. Есть много исследований, которые показывают, что лучшее общение - лицом к лицу. Причем желательно, чтобы было какое-то средство визуализации, на котором можно писать: лист бумаги, доска со стикерами и т.д. Самый простой и эффективный способ узнать требования клиента, заказчика или пользователя - поговорить с ними.
  7. Работающий продукт. Про него повторяться не буду. Степень готовности проекта должна измеряться не словами, о том, что ТЗ уже написано и 50% макетов нарисовано, а количеством функционала, выпущенного в production.
  8. В Agile важен ритм, постоянные улучшения. Бизнес и программисты всегда должны иметь возможность делать процесс устойчивым, постоянно его улучшать.
  9. Про этот пункт менеджеры обычно не любят говорить разработчикам, но Agile вообще не будет работать, если вы написали быдло-код. У вас должна быть хорошая гибкая архитектура, в которую можно добавлять разные элементы и при необходимости легко их изменять. И если команда не будет уделять максимум внимания техническому качеству (писать хороший код, использовать инженерные практики, автоматизировать процессы), то никакого Agile у вас не будет.
  10. Простота. Она проявляется в технической составляющей, в дизайне. Это один из принципов экстремального программирования. Простота очень важна также с точки зрения выпуска продукта: когда вы хотите «нарезать» того «слона», лучше начать с простой части.
  11. Менеджер (руководитель, Scrum-коуч, Agile-коуч) в команде меняет свою роль: он не столько занимается организацией процесса, сколько учит команду, поэтому команда должна быть самоорганизованной. Есть специальные стратегии, как из группы людей сделать самоорганизованную команду.
  12. Команда должна постоянно анализировать свою работу, процессы: что получилось, как они этого добились, и постоянно улучшать организацию работ.
В качестве итога можно сказать, что Agile - это серия подходов к разработке программных продуктов путем непрерывной и быстрой поставки ценного рабочего функционала самоорганизованной командой профессионалов в сотрудничестве с заказчиком. Это не каноническое определение, а мое собственное понимание Agile.

Итак, у нас получается пирамида, состоящая из четырех ценностей, на которых выстроено 12 принципов. Теперь появляются конкретные практики.

Практики

Одна из ценностей Agile гласит: мы должны выстраивать рабочий процесс, налаживая взаимодействие и коммуникации между людьми. Это выливается в практические шаги. Например, в утренние стендапы, когда команда устно синхронизирует свою деятельность на предстоящий день. Можно вместо стендапов каждому писать отчет о проделанном вчера, но это уже будет не Agile, потому что возникает поток малозначимой документации. Какие же практики чаще всего используются в компаниях, практикующих гибкую разработку?
  1. На первом месте стендапы . В России, даже если компания полностью зафейлила внедрение, использование и адаптацию Agile, обычно все равно остаются стендапы. Если у вас не получается их использовать, значит, у вас совсем не организованная команда. Практика простая: каждый день в определенное время команда собирается и синхронизирует свою деятельность.
  2. На втором месте планирование итераций , когда команда планирует объем работ на ближайшую итерацию. Это к вопросу о том, что в Agile нет планирования. Если у нас итерация идет две недели, то мы пытаемся сделать план, декомпозицию, может быть, разбить бизнес-задачи на задачи технические.
  3. Unit-тестирование - одна из самых простых инженерных практик, которую можно достаточно быстро начать использовать. При наличии проблем с качеством порядка 60-70% багов можно отловить unit-тестированием.
  4. Планирование релизов . Здесь мы уже планируем большими кусками - что и когда выпустим. Если речь идет о Scrum, то измеряем большими мазками, в спринтах.
Давайте посмотрим, как можно графически представить итеративность выполнения работ.

Нам надо дойти из точки А в точку Б. «Дойти» - означает «получить обратную связь». Допустим, у меня есть GPS, я могу дойти до какой-то точки и свериться, правильно ли я дошел. Водопадная модель - фактически, один большой шаг. То есть я куда-то пришел, выпустил на рынок продукт, и только после этого могу понять, то ли я сделал. Итеративная модель - это серия шагов. Я делаю первый шаг, снимаю метрики, что у меня используется в продукте, затем корректирую дальнейшие шаги. Пусть я приду не в точку Б, но окажусь в ее окрестностях.

При коммерческой разработке у нас постоянно меняются условия: выходят новые законы, изменяются бизнес-требования, конкуренты вдруг выпускают что-то, что мы должны сделать лучше, чем они. В итоге получается, что мы из точки А должны дойти не в точку Б, а в точку В. Итеративная модель подразумевает, что после выпуска первого релиза мы снимаем метрики, что-то переделываем, делаем следующий релиз, и т.д. И на каком-то этапе понимаем, что конкурент выпустил какую-то фичу, и нам нужно идти не туда. В этот момент мы можем остановиться, принять другие требования и начать двигаться в точку В. При высокой изменчивости условий в процессе создания продукта вы все время будете узнавать что-то новое. И в этом одно из преимуществ итеративной модели.

Еще важный момент: когда менеджеры (и даже разработчики) не очень глубоко погружены в техническую часть, им кажется, что можно итеративно сделать программу, собрать по кусочкам, как паззл. Это заблуждение. Разработчик должен представлять целиком и в деталях каждый элемент картины, и начать его делать за пять шагов. При этом надо иметь в виду, что условия могут поменяться. Это называется инкрементальным подходом («инкремент» - добавление чего-то).

Чтобы работать итеративно и инкрементально, нужно действовать немного иначе. У разработчика в голове должна быть какая-то концепция, которую он постепенно прорабатывает.

Если вы работаете по «водопаду», то обычно у вас фиксировано содержание проекта. Вам говорят: «Хочу, чтобы вы сделали это. Я точно знаю, чего хочу я и мои пользователи. Оцените, сколько человек вам для этого нужно и сколько времени на это уйдет». В Agile мы действуем по-другому: у нас есть команда и фиксированные отрезки времени (я говорю про Scrum), например, двухнедельные итерации. Исходя из этого, мы планируем объем работ, который мы можем выполнить за это время.

Если взять классический подход и спросить: «Вы сделали этот проект успешно или нет? Как это понять?». Я должен его сделать вовремя, не превысив бюджет, и полностью сделать содержание. Если мы смотрим с позиции Agile, то наш проект тем успешнее, чем больше мы поставили ценностей заказчику.

Scrum

У Хенрика Книберга есть такая метафора - Agile-зонтик. Это те методологии, которые являются гибкими. Самая большая - Scrum, экстремальное программирование (XP), DSDM, Crystal, FDD, Kanban. Более половины компаний, применяющих Agile, используют Scrum. На втором месте комбинация Scrum и XP, когда берутся управленческие практики из Scrum и добавляются инженерные. Отдельно отмечу, что комбинация Scrum и Kanban используется примерно в 8% компаний. Сейчас это один из трендов, мода. Название Scrum пришло из регби и переводится как «схватка». Проще говоря, при возникновении спорной ситуации команды выстраиваются, вбрасывается мячик, и нужно друг друга перетолкать. К разработке продукции этот термин впервые применили в 1980-х годах два японца - Хиротака Такэути и Икудзиро Нонака. Это хорошие исследователи в области менеджмента. В частности, они написали документ «The New New Product Development Game». Здесь употребление слова «new» 2 раза не является ошибкой. Просто название переводится как «Новая игра для разработки новых продуктов». Что сделали эти два японца? Они проанализировали, как различные компании создают свои продукты. Причем даже не ПО, а всевозможную технику и электронику. Авторы разделили выявленные подходы на три типа.

  • Первый тип (A): у нас есть фаза разработки, все жестко, последовательно и хорошо.
  • Второй тип (B): связи пересекаются, есть возможность получить обратную связь. Я запрограммировал что-то, программирую еще, отдаю тестировщику, он дает свои комментарии, я успеваю их обработать до завершения своей работы.
  • Третий тип: каждая фаза пересекается более чем с одной другой фазой. Я программирую еще что-то, а мои первые задачи тестируются, выкладываются в production, с них снимаются метрики, я могу внести изменения.

Тип C двое японцев сравнили с ситуацией в регби. Почему? Смысл игры в том, чтобы взять мяч и донести его до линии поля противника, преодолевая сопротивление. Но в регби нельзя кидать мяч вперед. Когда ты бежишь и понимаешь, что сейчас тебя положат наземь, то мяч можно отдать назад члену своей команды. Он его ловит и бежит дальше. Если не может преодолеть сопротивление, то бежит назад.

Современный Scrum создан двумя айтишниками - Кеном Швабером и Джефом Сазерлендом. На официальном сайте www.scrumguides.org вы можете ознакомиться с официальным описанием Scrum. Так выглядит общая схема Scrum:

Итак, мы хотим делать какой-то продукт. Он разрезан на отдельные кусочки, которые называются бэклогом (backlog) продукта. Это требование. То есть у нас нет технического задания или какого-то обширного документа, который все заранее описывает. Обычно чем важнее какие-то требования, тем качественнее они разбиты и описаны. Этим занимается владелец продукта (product owner).

Среднестатистическая команда состоит из семи человек (плюс-минус два человека). Если сильно меньше, то, скорее всего, в команде не хватает каких-то специалистов, потому что подразумевается, что Scrum-команда может самостоятельно сделать из бэклога готовый продукт с новой функциональностью. Например, в команде может не быть фронтэнд-программиста. Если вы используете Scrum и проект подразумевает фронтэнд-разработку, то этого специалиста нужно включить в команду.

Компоненты Scrum


Роли
Scrum-команда состоит из команды разработки, владельца продукта и Scrum-мастера.

  • Почему мы говорим, что Scrum - это гибкий Agile-фреймворк? Потому что он напрямую реализует ценности и принципы, описанные в начале публикации. Команда в Scrum должна быть самоорганизующейся, а Scrum-мастер помогает ей такой стать, учит, как можно быстрее и качественнее из элементов бэклога создать инкремент продукта - новую версию софта. Scrum-мастер отвечает за то, чтобы все процессы работали, чтобы участники понимали, зачем и как это делается.
  • Владелец продукта, product manager - человек, ответственный за максимизацию ценности продукта, он отвечает за продукт (например, Стив Джобс).
  • Команда разработки должна состоять из мотивированных профессионалов, которые могут в течение каждого спринта делать поставку, то есть на основании требований создавать готовый продукт.

Процессы

  • Ежедневный скрам - это планерка, на которой члены команды рассказывают, что сделано, с какими проблемами столкнулись, что планируется сделать в ближайшее время, чтобы каждый понимал, кто и что делает.
  • Спринт - итерация с фиксированным сроком, то есть в Scrum должен быть ритм.
  • Планирование спринта. Перед началом спринта все собираются и определяют, что нужно сделать в течение спринта и в каком виде.
  • Обзор спринта или демонстрация: все собираются и демонстрируют, что нового в инкременте продукта, смотрят, фиксируют замечания, может быть, меняют ближайшие планы.
  • Ретроспектива: все собираются и думают, что можно улучшить в следующем спринте. Например, было много багов, пользователи недовольны. Давайте попробуем в следующем спринте использовать модульное тестирование. Пробуем, на следующей ретроспективе смотрим, помогло или нет, придумываем что-то еще.

Бэклог спринта - верхняя часть бэклога. Количество элементов обычно определяется скоростью команды на мероприятии, которое называется «планирование спринта», и проводится перед началом самого этапа спринта. Спринт длится 1-4 недели (чаще всего 2 недели). Чем быстрее и дешевле можно релизить, тем меньше продолжительность данного этапа.

Каждый день команда проводит 15-минутный стендап, Scrum-митинг, на котором все члены команды синхронизируют свои действия. Зачастую эти встречи называют просто «скрамами».

После завершения спринта проводится демонстрация - «Обзор», смысл которой заключается в том, что команда показывает сделанную работу владельцу продукта или кому-то еще. Затем проводится ретроспектива, на которой команда обсуждает, что получилось, а что нет, происходит разбор рабочих процессов, атмосферы в коллективе, предпринимаются попытки что-то улучшить. После этого запускается следующий спринт. В итоге работу Scrum-команды можно представить как цепочку множества спринтов.

Артефакты
Это могут быть карточки на доске с кратким описанием, что собой представляет конкретный функционал. При этом содержание карточки может представлять собой обсуждения с владельцем продукта. Обычно это выливается в тикеты в трекере, который вы используйте - JIRA, Redmine и т.д.

  • Бэклог продукта - это все тикеты, карточки или иные требования в виде элементов бэклога, которые есть в вашем продукте.
  • Бэклог спринта - самые ценные и приоритетные требования.

Примеры Scrum-практик: оценки

Здесь не будет канонического/кошерного/ванильного Scrum"а, который описан Швабером и Сазерлендом, и про который можно почитать здесь: www.scrumguides.org . Расскажу о реальных практиках, используемых командами. Есть тяжеловесные, якобы точные методы все «правильно» посчитать и сделать. Но практически все большие проекты выбиваются из сроков. И это касается не только IT. Например, был случай, когда аэропорт не могли запустить в эксплуатацию из-за того, что не был готов софт, отвечающий за автоматическое распределение багажа. Если вы используете гибкие методологии, а также то, о чем я сейчас расскажу, то можете спокойно запускать проекты, без геройства. Один из наших больших проектов, который закончился в сентябре, фактически был готов на production за две недели до официального запуска. Я много наблюдал, как команда, тимлиды и менеджеры пытаются предсказать, когда у них будет готов проект. Это примерно то же самое, что подойти к команде и попросить назвать случайное число.

Agile и Scrum предлагают использовать такую практику: делать относительные оценки, то есть «измерять в попугаях». Это значит, что я оцениваю время, которое у меня уйдет на решение задачи, и сколько она займет попугаев. Их обычно называют story point. Эти story point лучше не привязывать ни к каким временным промежуткам. Каким образом делать такую оценку, почему она называется относительной? Обычно берут какую-то задачу, небольшую, стандартную и понятную всем, и объявляют ее мерой, эталоном - она занимает 1 попугай, 1 story point. Берется следующая задача, сравнивается с первой - она оказывается в 2 раза больше. Сколько она занимает? 2 story point. И таким образом мы раскладываем все задачи. В итоге мы не оцениваем каждую задачу по времени, а сравниваем их между собой. Если где-то ошибаемся, то это нормально. Главное, чтобы во всех задачах ошибались одинаково. Оценка делается командой и в рамках команды.

Что мы можем сделать после этого? Например, запустить двухнедельный спринт и взять верхние задачи без каких-то оценок. Когда спринт закончится, на выходе получим инкремент продукта, в который будет включено какое-то количество задач. Посчитаем, сколько story point мы сделали, и на следующий спринт просто можем планировать такое же количество story point. Подобная оценка получается относительной и эмпирической. Мы не предполагаем, как любят делать управленцы, что программист Вася работает 8 часов и с одинаковой эффективностью, а реально измеряем, сколько команда может проживать story point за спринт. Шкала оценок обычно подбирается так, чтобы различать задачи разных классов.

Если приглядеться, то похоже на числа Фибоначчи, либо на степени двойки. При этом оцениваются обычно действительно большие задачи, которые дальше разбиваются на более мелкие. Для формирования оценок обычно используется покер-планирование. Это модификация метода Delphi. Каждому члену команды дается колода карточек с числами от 0 до 100. Есть еще карточка с надписью «Я не понимаю, что это за задача» и карточка с кофе («Давайте сделаем перерыв, я уже замучился заниматься этой оценкой»). После этого берем задачу номер такой-то, читаем и обсуждаем, что она собой представляет: «Пользователь вводит логин-пароль для того, чтобы авторизоваться на сайте». Обсуждаем, как эта авторизация происходит, где мы храним пользователей. Затем каждый член команды рубашкой вверх кладет карту с оценкой, которую считает нужной. При этом разные члены команды друг на друга никак не влияют, потому что обычно в команде есть тимлид, ведущий, старший разработчик, на которого равняется большинство. После этого происходит вскрытие карт и обсуждение.

Согласно методу Delphi, обсуждение происходит между теми, кто поставил наибольшую и наименьшую оценки. Поставивший наибольшую обычно видит какие-то риски, которые не заметили другие члены команды. Он скажет: «Вы знаете, в эту базу, где у нас хранятся логины и пароли, мы давно не заходили. Там надо что-то отрефакторить, добавить колонку, применить другой хэш» и т.д. А человек, поставивший наименьшую оценку, либо не понимает задачу, либо видит способ сделать быстрее, либо уже делал что-то подобное. После этого происходит второй этап обсуждения: опять все кладут карточки рубашками вверх, потом вскрывают их. Обычно оценки более-менее сглаживаются. Снова проходит этап обсуждения, приходят к консенсусу. В результате записывается в трекер, в тикет-систему, либо прямо на карточку, что у нас эта задача на 3 story point.

Почему это очень хороший Agile-подход? Мы беседовали, обсуждали содержание задачи, основывали наши действия на взаимодействии людей, а не на каких-то формальных процессах. Если кому-то интересны процессные вещи - обратитесь к методу оценки Кокома. Чем еще хорош данный метод? Здесь получается некая командная ответственность за размер задачи. Все берут на себя ответственность за то, что задача действительно такого «размера». Если же вы будете измерять трудоемкость задач, скажем, в днях, то будут ситуации, когда кто-то в команде оценит ее в 8 дней и она попадет к нему, то он ее и будет делать 8 дней.

Что делать в том случае, если заказчик хочет понять, сколько времени займет реализация проекта и просит сразу дать ему оценку? Идеальный вариант - работать с заказчиком по системе «время - материалы». Если заказчик новый, то можно один проект сделать по Fixed Price, убедиться, что заказчик адекватный, и дальше придерживаться системы «время - материалы». Если заказчик не соглашается сразу на данную систему, то можно ее скорректировать: например, если вы заканчиваете проект к определенной дате, то получаете какой-то бонус. На эту тему в сети тоже есть презентации.

Примеры Scrum-практик: скорость команды

Мы берем каждый спринт, измеряем, сколько story point сделали. И если нам надо спланировать девятый спринт, то просто берем среднее значение из предыдущих спринтов. Это называется «принцип вчерашней погоды». Здесь важно то, что мы набираем наиболее важные или ценные задачи исходя из скорости команды.

Если какая-то задача не помещается по размеру, то ее можно разбить на более мелкие, либо пометить, что она не войдет, либо отказаться от ее решения. Надо понимать, что скорость не будет равномерной. Люди работают с переменной интенсивностью, кто-то заболевает, кто-то работает медленнее из-за проблем дома, кому-то надо срочно пообщаться в соцсети, кто-то взял отпуск. Всегда нужно прямо и однозначно говорить владельцу продукта: «У нас есть задачи A, B, C, мы их точно успеем сделать, они попадают в нашу самую низкую скорость. Есть также задача D, которую мы, скорее всего, успеем сделать. Но есть и задача F, которая может выпасть». Кажется, что это неточность, и владелец скажет: «Вы что? Надо все успеть». На самом деле, когда вы ему говорите точно, что самые важные задачи будут сделаны, то это увеличивает доверие между вами и владельцем продукта или заказчиком, и он для каждого спринта сможет выбирать самые важные задачи и гарантированно их получать.

Примеры Scrum-практик: путевой контроль

Как во время спринта контролировать, что у нас все идет хорошо? Мы спланировали спринт и начали его реализацию. Для контроля используется диаграмма сгорания Burn Down Charts.

По горизонтали отмечаем дни - это двухнедельный спринт, 10 рабочих дней. По вертикали с одной стороны отложены story point, с другой - истории пользователей или элементы бэклога. Если бы мы с вами были роботами, а задачи маленькими и разбитыми на кусочки, то мы шли бы по пунктирной линии - это линия идеального Burn Down Charts. Что эти линии означают? Верхняя - сколько мы сделали историй пользователей, нижняя - количество story point. Такие графики автоматически строятся во многих системах для трекинга задач.

Как их читать? Если ваш график находится над линией идеального Burn Down, то вы отстаете, медленно работаете. Тогда к концу спринта будет не ноль задачек или story point, а где-то 20-25. Можно в Excel построить тренд или регрессию и посмотреть, сколько у вас получится задач с такой скоростью - очень просто и наглядно. Если команда видит, что она идет поверх идеального Burn Down, то надо принимать меры. На практике обычно получается вот так.

Идут небольшие отставания, но это у хорошей команды. Другой вариант встречается реже, когда Burn Down ниже диагональной линии. Это означает, что вы идете с опережением, то есть, скорее всего, вы просто взяли мало задач.

Очевидно, что надо увеличить объем работ. В крайнем случае, здесь можно еще снять задачки, но это повод обсудить на ретроспективе, почему у вас так получилось. Этот график - артефакт, который можно в конце двухнедельной итерации проанализировать и сделать выводы.

Примеры Scrum-практик: доски задач

Обычно в Scrum используют доски задач, хотя они не являются обязательным элементом. Команда распределяет задачи по отдельным этапам и размещает на доске в виде отдельных карточек. Есть электронные реализации досок задач, плагины для JIRA и т.д. Задачи упорядочиваются по степени важности. Когда команда собирается с утра, обновляются статусы задач, их переносят на другие этапы, смотрят, есть ли где-то затыки.

Примеры Scrum-практик: обзор спринта

На этой встрече по мере возможности участвуют все заинтересованные стороны: разработчики, пользователи, служба поддержки, системные администраторы и т.д. Обзор спринта нужен для того, чтобы запустить цикл обратной связи. Вы показываете владельцу продукта разработанный инкремент. Он смотрит, делает замечания, вносит предложения, отдает их вам обратно в бэклог. Вы берете в работу, создаете новый инкремент, через одну-четыре недели показываете и снова получаете дополнительные изменения в требованиях. То есть запускаете цикл, который в итоге приведет вас к продукту, который хочет получить его владелец.

Примеры Scrum-практик: ретроспектива

Ретроспектива нужна для постоянных улучшений. Гуру менеджмента Эдвард Деминг когда-то сказал, что совершенствоваться необязательно, выживание - дело добровольное. Ретроспектива - как раз тот этап, на котором вы можете заняться совершенствованием. Как это происходит? Вся команда собирается и обсуждает все ступени до самой ретроспективы. Обычно это длится от часа до четырех, может длиться даже день. Если вы посмотрите олдскульные книжки, там есть ретроспектива даже на несколько дней.

Начинается ретроспектива с открытия. Обычно она занимает 5% времени. Задача - растормошить всех присутствующих на ретроспективе, потому что очень часто в командах, особенно айтишных, присутствуют не очень общительные люди, но порой имеющие блестящие мысли. Задача ведущего заключается в том, чтобы разговорить этих людей. Второй этап - сбор данных, он занимает до половины времени. Команда ищет какие-то факты. Их можно вспомнить, достать из трекера, распечатать. Также можно собрать статистику по багам, кто репортил, каков их статус - вариантов множество. После сбора фактов начинается мозговой штурм: нужно понять, в чем проблема, проникнуть в суть, сгенерить идеи, которые помогут ее решить. На это уходит до трети времени. Например, если у нас много мелких багов, возникающих не на уровне интеграции системы, а в коде разработчиков, то можно предложить использовать модульное тестирование. Если у нас очень плохое качество, как его улучшить? Можно попробовать парное программирование, какие-то инструменты, которые делают автоматизированную проверку кода, еще что-то. Обычно набирается 5-10 идей. Далее нужно воплотить эти идеи в жизнь. Мы не можем сразу внедрить code review, разработать какие-то инструменты. Поэтому выбирается максимум одна-две идеи, реализацию которых надо запланировать на следующий спринт. После этого благодарим всех и закрываем ретроспективу. А еще через две недели можно оценить, получилось у нас это или нет, изучить другие проблемы.

На ретроспективе можно также понять моральный дух команды - для этого тоже есть инструменты. Можно просто начертить временную линию спринта, чтобы каждый член команды вспомнил, что происходило в этот день, наклеил стикер с фактом «закончил разрабатывать задачу», «исправлял быдло-код», «применил новую технологию Machine learning». После этого по каждому факту можно внизу нарисовать, насколько этот факт был для человека интересным, или, наоборот, отстойным. После этого построить медиану, которая отразит состояние и динамику морального духа команды.

Есть такое понятие, как «Цикл Деминга». Он состоит из четырех этапов: Plan - Do - Check (Study) - Act.

  • Планирование (Plan).
  • Реализация (Do).
  • Проверка (изучение) (Check (Study)).
  • Изменение (Act).
В ходе ретроспективы можно создать план, что вы будете дальше изменять. Скажем, внедряем unit-тестирование - как внедряем, какой инструмент используем, какое покрытие кода тестами хотим получить. Потом наступает этап реализации (это обычно спринт, если мы говорим про Scrum), когда мы воплощаем решение в жизнь. На следующей ретроспективе можем проверить, действительно ли нам удалось достичь нужной степени покрытия. Можем посмотреть, убавилось ли у нас количество багов в тех местах, которые мы покрыли тестами.

После этого можем вносить изменения: например, хотели сделать покрытие 50% - сделали, количество багов уменьшилось, но они еще остались - давайте поднимем до 70%. Или сделали 70%, цикл прокрутили второй раз, проверяем - улучшилось. Давайте сделаем 90%. Еще раз прокрутили: количество багов не уменьшилось, а затрат на написание и поддержку тестов получается много. Давайте сделаем более слабую границу. Благодаря этому циклу команда постепенно улучшает какую-то часть процессов. Самый простой вариант ретроспективы - Real-Time Board Service.

Команда вешает стикеры, что ей понравилось, что нет, а что нужно улучшить. Здесь могут быть как мысли вслух: «Все сделали. Это очень круто», «Самостоятельная команда», «Команда маленькая - не нравится», так и технические вещи. На основе этого можно выдвинуть идеи и некоторые из них отобрать на реализацию.

Напоследок о Scrum

Надо сказать, что Scrum, как и все гибкие методологии, лучше работает в командах, которые сидят в одной комнате. Тем не менее в сети можно найти сотни презентаций о том, как применять гибкие методологии в распределенных командах, когда люди работают на удаленке. Здесь идея такая: вместо реального общения максимально использовать программные и аппаратные инструменты. Что обычно используют? Во-первых, общий трекер, что-то типа JIRA. Это действительно помогает. Популярны программистские чаты, например, HipChat. Для общения - Skype, Hangout. Главное, чтобы была видеосвязь, и чтобы можно было демонстрировать экраны своих компьютеров.

Kanban

Это вторая по популярности методика. Ряд компаний работают одновременно по Scrum и Kanban, получается Scrumban. Наверное, это один из будущих трендов. Историческая справка: Kanban появился в Японии. Этим словом называлась бумажка с пул-запросом на какие-то действия. Например, мне нужна какая-то деталь, на нее делается отдельный канбан. Но в IT это все-таки применяется немножко в другом виде.

Ценности и принципы

В айтишном виде Kanban появился в 2010 г., то есть это достаточно свежая, хорошо описанная методология. Ее автор - Дэвид Андерсон. В следующем году, скорее всего, выйдет обновленная версия методологии. Если Scrum подразумевает жестко предписанные процессы, которые должны сломать то, что было в организации до этого, то есть «Так, все мы теперь работаем по спринтам, с утра приходим, стендапимся, в конце спринта показываем демонстрацию», то Kanban подразумевает более эволюционные изменения.
  • Начинаем с того, что есть сейчас, и дальше путем эволюции и постепенных изменений делаем из этого непонятного хаоса четко настроенную Kanban-систему. При этом стараемся только эволюционно изменять роли, зоны ответственности и обязанности. Поощряем инициативные действия на всех уровнях организации. Главная практика - визуализация, обычно в виде доски. Работа каждого члена команды должна быть визуализирована, видна всем.
  • Количество работы в каждом процессе ограничивается. То есть в работе одновременно может быть не более какого-то количества задач. Это нужно для исключения мультитаскинга, который убивает эффективность. К тому же это дает определенные инструменты управления потоком задач.
  • Все правила должны быть явными. Необходимо дать определение завершенности. Например, задача выполнена, если написан код, есть unit-тесты с покрытием 70%, и т.д.
  • Необходимо делать улучшения с помощью постоянных экспериментов, используя модели и научный подход, в том числе цикл Деминга.

Визуализация

Обычно используется та же самая доска, что и в Scrum. Самый простой вариант - прото-Kanban. Поток задач разбивается на отдельные этапы. Что-то находится в плане, что-то в аналитике, что-то в разработке, что-то в тестировании, что-то мы уже сделали. При этом реализуется принцип ограничения количества одновременно находящихся в работе задач - WIP (Work in Progress). Есть формула Литтла, которая связывает скорость прохождения задачи в такой системе и количество одновременных задач. Чем меньше WIP, тем быстрее задачи проходят цепочку. Допустим, у нас завал в тестировании, а разработчик сделал следующую задачу. Он видит, что у тестировщиков проблема. Тогда разработчик помогает им что-то сделать, или они идут к руководителю и говорят: «Нам нужен еще тестировщик».

Обычно команда начинает с большого ограничения задач в работе, например, не более двух задач на человека. Если у меня один тестировщик - две задачи для разработки, если четыре тестировщика - восемь задач. Постепенно общее количество задач уменьшается, скорость работы возрастает. И доска уже выглядит примерно так.

Здесь есть те же самые WIP, внизу - критерии готовности (Definition of Done). Столбец делят на две части: «в работе» и «выполненное». Иногда доску делят на дорожки и размещают WIP по горизонтали. Это уже более продвинутая, полноценная Kanban-система. Каждая дорожка соответствует определенному классу обслуживания. Например, есть горячие задачи, когда к вам прибегает начальник и говорит: «Надо сделать это быстрее». Это отдельный класс обслуживания, под него стоит забронировать WIP.

Как и в Scrum, здесь тоже можно создавать диаграммы. Обычно их называют «Диаграммы кумулятивного потока». По горизонтали отмечено время, по вертикали - количество задач. Разными цветами показаны разные этапы. Я упоминал, что улучшение нужно осуществлять на основе цифр, используя научный подход. Эти цифры можно извлечь из диаграмм. Самые важные из них - WIP, то есть количество задач за исключением запланированных и выполненных. Мы его должны сокращать.

Вторые важные критерии - Cycle Time и Lead Time. Определения бывают разными, нужно очень внимательно смотреть. Эти два числа показывают, насколько быстро задачи проходят через вашу Kanban-систему.

В данном случае Lead Time включает в себя ожидание, то есть как воспринимают вашу Kanban-систему заказчики. Cycle Time - насколько быстро задача проходит через Kanban-систему без ожидания, в общем бэклоге. Оба параметра нужно уменьшать, тогда ваша система будет работать быстрее.

Итог

Kanban очень хорошо приживается в компаниях с корпоративной командной культурой, когда есть какая-то иерархия. Scrum удобен для команд, которые уже хорошо общаются, в компаниях с плоской структурой, где мало начальников.
  • «Scrum и XP: заметки с передовой». Автор - Хенрик Книберг, Agile-коуч из компании Spotify. Книга полностью бесплатна и на русском языке. Ее минус - она очень старая. Ее большой плюс - в ней разобрано много инструментов, приведены конкретные ситуации в виде диалогов. Книгу очень любят практики, и для многих, в том числе для меня, это была первая книжка на тему Scrum и Agile. Также в ней описаны элементы экстремального программирования.
  • «Scrum и Kanban: выжимаем максимум». Тоже на русском и бесплатная. Можно сказать, что это книга про Scrumban.
  • На мой взгляд, лучшей книжкой по Scrum является «Scrum: гибкая разработка ПО» Майка Кона. В ней очень подробно расписано, как внедрить Scrum, кем должны стать менеджеры, архитекторы. Самая подробная книга на эту тему.
  • И такая каноническая книга по Kanban Дэвида Андерсона - «Kanban: Successful Evolutionary Change for Your Technology Business». В следующем году выйдет обновленная версия.
  • Моя книга «








2024 © voenkvm.ru.