Agile. Практическое руководство
Шрифт:
Глоссарий. Содержит перечень терминов, которые используются в Руководстве, и их определения.
2. Введение в agile
2.1 Поддающиеся определению работы в сравнении с работами с высокой неопределенностью
Характер работ по проекту меняется в диапазоне от поддающихся определению работ до работ с высокой неопределенностью. Для проектов с поддающимися определению работами характерны четкие процедуры, которые на практике доказали свою успешность при осуществлении аналогичных проектов в прошлом. Производство автомобиля, электроприбора или строительство дома после завершения этапа проектирования являются примерами поддающихся определению работ. Связанные
Новый проект, разрешение проблем и работы, которые ранее никогда не производились, требуют предварительного исследования. В совместной работе и разрешении проблем для выработки решения требуется участие экспертов по предметным областям. В качестве людей, которым приходится иметь дело с работами с высокой неопределенностью, можно назвать, например, инженеров программных систем, разработчиков, врачей, учителей, юристов и многих технических специалистов, которые решают возникающие проблемы. Поскольку многие поддающиеся определению работы автоматизированы, командам проектов поручают больше работ по проектам, связанным с высокой степенью неопределенности, где требуется использовать методы, описанные в настоящем Руководстве.
Проекты с высокой неопределенностью характеризуются высокими темпами изменений, сложностью и уровнем риска. В случае применения традиционных предиктивных подходов, которые предназначены для предварительного определения практически всех требований и осуществления управления изменениями с помощью процесса запросов на изменения, указанные особенности могут привести к возникновению проблем. Вместо этого были созданы подходы Agile для выяснения реализуемости требований в рамках коротких циклов и быстрой адаптации по результатам оценок и обратной связи.
2.2 Agile-манифест и образ мышления agile
Ведущие эксперты отрасли разработки ПО оформили движение agile еще в 2001 г., когда был опубликован Agile-манифест разработки программного обеспечения (Manifesto for Agile Software Development) (см. рис. 2–1).
Рис. 2–1. Четыре ценности Agile-манифеста
Двенадцать уточняющих принципов, которые вытекают из этих ценностей, представлены на рис. 2–2.
Рис. 2–2. Двенадцать принципов, вытекающих из Agile-манифеста
Хотя эти принципы впервые возникли в отрасли разработки ПО, за прошедшее время они нашли применение во многих других отраслях.
Это сочетание образа мышления, ценностей и принципов и составляет подход agile. Различные варианты подходов agile, которые применяются в настоящее время, имеют общие корни с образом мышления, ценностями и принципами agile. Эта взаимосвязь показана на рис. 2–3.
Рис. 2–3. Взаимосвязь между ценностями, принципами и общепринятыми практиками Agile-манифеста
Как следует из рис. 2–3, созданная на основе идей Ахмеда Сидки (Ahmed Sidky) модель формулирует agile как образ мышления, определяемый на основе ценностей Agile-манифеста, основанный на принципах Agile-манифеста и получивший применение в разнообразных практиках. Стоит заметить, что, хотя понятие agile стало входить в общее употребление после публикации Agile-манифеста, те подходы и методы, которыми пользуются команды проектов сегодня, применялись за много лет, а в некоторых случаях – даже десятилетий до его публикации.
Подходы agile и методы agile являются обобщающими понятиями, которые описывают различные фреймворки и методы. На рис. 2–4 понятие agile
показано в контексте и наглядно представлено как общий термин, относящийся к любому типу подхода, метода, фреймфорка, методики или практики, в которых применяются ценности и принципы Agile-манифеста. На рис. 2–4 agile и метод «канбан» также представлены как подсистемы, формирующие суть бережливого подхода. Это объясняется тем, что они являются получившими собственные названия примерами бережливого мышления, где применяются общие концепции бережливого подхода, такие как: «основное внимание на ценности», «партии малого размера» и «устранение потерь».Является ли agile подходом, методом, практикой, методикой или фреймворком? В зависимости от конкретной ситуации может использоваться любое из этих понятий. В настоящем Руководстве используется понятие «подход», за исключением случаев, когда использование другого понятия очевидно является более правильным.
Рис. 2–4. Agile – объединяющее понятие для многих подходов
В общем, существует две стратегии применения ценностей и принципов agile. Первая состоит в принятии формального подхода agile, который разработан специально и практически подтвержден для достижения желаемых результатов. Затем необходимо уделить время, чтобы изучить и понять подходы agile, прежде чем изменять или адаптировать их. Преждевременная или необдуманная адаптация может свести к минимуму результаты применения этого подхода и, соответственно, ограничить выгоды от них. (См. в приложении X2 о соображениях по адаптации).
Вторая стратегия состоит во внесении изменений в практики проекта таким образом, чтобы это соответствовало контексту проекта, в целях обеспечения прогресса по главной ценности или принципу. Следует использовать временные рамки для создания свойств или использовать специальные методы для их итеративного уточнения. Следует рассмотреть возможность разделения одного большого проекта на несколько релизов, если это поможет в осуществлении проекта в конкретном контексте. Необходимо внести изменения, которые помогут в успешной реализации проекта; при этом не требуется, чтобы эти изменения были частью формальных практик организации. Конечная цель состоит не в том, чтобы быть agile, только лишь ради этого, а в том, чтобы обеспечить непрерывную поставку ценности заказчикам и добиться лучших конечных результатов для бизнеса.
2.3 Бережливый подход и метод «канбан»
Взаимосвязь между бережливым мышлением, подходом agile и методом «канбан» можно представить себе, например, если рассматривать agile и метод «канбан» как производные бережливого мышления. Другими словами, бережливое мышление включает более широкий набор характеристик, имеющий общие свойства с подходом agile и методом «канбан».
Эти общие свойства весьма схожи и сосредоточены на поставке ценности, уважении к людям, сокращении потерь, обеспечении прозрачности, адаптации к изменениям и непрерывном совершенствовании. В некоторых случаях команда проекта может счесть полезным объединить вместе различные методы: все то, что может принести пользу организации или команде, следует сделать, независимо от его природы. Цель состоит в том, чтобы получить наилучший конечный результат, независимо от применяемого подхода.
Метод «канбан» разработан на основе оригинальной системы бережливого производства и используется в частности в сфере умственного труда. Он появился в середине 2000-х гг. в качестве альтернативы методам agile, которые в то время преобладали.
Метод «канбан» является менее директивным в сравнении с некоторыми подходами agile, и менее «дезорганизующим», поскольку является оригинальным подходом, основанным на принципе «начинай прямо там, где находишься». Командам проектов сравнительно просто начать применять метод «канбан» и затем перейти к более прогрессивным подходам agile, если они сочтут это необходимым или целесообразным. Более подробно метод «канбан» описан в приложении А3, содержащем обзор фреймворков подхода agile и бережливого подхода.