воскресенье, 11 февраля 2018 г.

Agile методология

Agile технология разработки в настоящее время рассматривается как панацея против медленных и дорогостоящих, и в особенности рискованных реализаций ПО.
Подобная мода докатилась и до ERP.

Но почему Agile?
Чем уже не устраивает каскадная модель (waterfall model)?

Определение из Википедии

Каскадная модель (англ. waterfall model, иногда переводят как модель «Водопад») — модель процесса разработки программного обеспечения, в которой процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки.

Гибкая методология разработки (англ. Agile software development, agile-методы) — серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля. Существует несколько методик, относящихся к классу гибких методологий разработки, в частности экстремальное программирование, DSDM, Scrum, FDD.

Итеративный подход (англ. iteration - «повторение») в разработке программного обеспечения — это выполнение работ параллельно с непрерывным анализом полученных результатов и корректировкой предыдущих этапов работы. Проект при этом подходе в каждой фазе развития проходит повторяющийся цикл PDCA: Планирование — Реализация — Проверка — Оценка, то есть Plan-Do-Check-Act.

В чем разница между Agile и Waterfall?

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

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

Однако, нет преобладающего преимущества гибкой методологии над каскадной (waterfall model) моделью и наоборот во всех случаях.
А именно.

1. Рассмотрим три параметра: скорость изменений, масштаб и эффективность организации. 1.1. Если организация ценит скорость больше, нежели масштаб и эффективность, то гибкая (agile) методология - наиболее подходящий инструмент в этом случае. В частности, стартапы, быстро растущие организации могут получить достаточные преимущества применения гибкой методологии.
1.2. Если значение имеют масштаб и эффективность, то большими преимущества обладает каскадная модель (waterfall model). Организации, достигшие определенного уровня размера, масштаба и предсказуемости рабочих процесс получают выигрыш в применении каскадной модели за счет четкого определения решения на всех уровня, сверху в вниз и снизу вверх. В самом деле, если значение имеет эффективности и масштабирование роста, то развертывание по частям (что предполагает гибкая методология) девальвируют преимущества, даруемые масштабом и эффективностью.

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

3. Централизованная или децентрализованная организация?


Централизованные организации по определению централизации стремятся использовать стандартные модели бизнес-процессов во всех бизнес-единицах. Системный дизайн каскадной модели (waterfall model) подходит для поддержки и развертывания стандартных моделей и централизации.
Децентрализованные организации, используя независимость операционной деятельности, с готовностью используют гибкую методологию, не находя полезного в структурированных и последовательных методологиях разработки ПО.



4. Насколько обширна в организации цифровая трансформация?
В случае масштабной цифровой трансформации большое значение имеет кросс-функциональная интеграция, которая, в свою очередь, требует тщательного планирования. При этом именно планирование имеет решающее значение для исключения ошибок на стадиях развертывания и эксплуатации решений. И в этом случае, каскадная модель (waterfall model) незаменима.
А вот если бизнес-инициатива имеет ограниченный характер, в особенности, носит поисковый или экспериментальный характер, то незаменимой становится гибкая (agile) методология. Учитывая, как непросто проводить инновации, быстрые победы, генерируемые в рамках гибкой методологии, могут оказать решающее значение для преодоления сопротивления изменениям.


5. Точка зрения на сопротивление изменениям - другой аргумент, который может заставить отказаться от применения гибкой методологии. Если организации терпима к частым или постоянным изменениям, то итеративный подход гибкой методологии не будет мощным раздражителем, если вписан в привычный темп перемен. Если же организация "устала от перемен", то придется использовать каскадную модель (waterfall model), невзирая даже на противопоказания.



Вывод.

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

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

* * *
В заметке широко (но не в буквальном переводе) использовали материал
Waterfall vs. Agile: Which is Right for Your Digital Transformation
By Eric Kimberling

* * *
Дополнительный материал
https://www.mckinsey.com/ (McKinsey&Company)
Agile with a capital ‘A’: A guide to the principles and pitfalls of agile development

Цитата из дискуссии

Glossary of agile terminology
User story: A functional increments of work to do be done on a project, as divvied up by a team.
Epic: A large user story.
Scrum: A process framework used to manage product development and other knowledge work.
Timebox: A previously agreed upon period of time during which a person or a team works steadily toward completion of some goal.

Комментариев нет:

Отправить комментарий