Agile — различия между версиями

Строка 38: Строка 38:
  
 
Постоянное самосовершенствование является одним из ключевых факторов достижения цели проекта.
 
Постоянное самосовершенствование является одним из ключевых факторов достижения цели проекта.
 +
 +
 +
== Роли ==
 +
Ответственность за результат делится между тремя ролями:
 +
* '''Владелец продукта'''
 +
** определяет проектные цели,
 +
** разрабатывает оптимальный график при заданных проектных параметрах,
 +
** адаптирует процесс выполнения проекта к изменившимся требованиям,
 +
** устанавливает приоритеты в характеристиках продукта
 +
* '''Scrum мастер'''
 +
** устанавливает приоритеты в выполнении задач командой проекта,
 +
** устраняет возникающие затруднения, препятствующие выполнению задач
 +
* '''Члены команды'''
 +
** выполняют большинство поставленных задач,
 +
** осуществляют ежедневный менеджмент,
 +
** создают отчеты о ходе выполнения проекта,
 +
** контролируют качество продукта
  
  

Версия 17:30, 27 апреля 2016

Agile (на русский обычно не переводится, хотя иногда говорят о “гибких методах”) — серия подходов к разработке программного обеспечения, ориентированных на использование интерактивной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля.

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


Agile-манифест разработки ПО

Мы постоянно открываем для себя более совершенные методы разработки программного обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря проделанной работе мы смогли осознать, что:

  1. Люди и взаимодействие важнее процессов и инструментов
  2. Работающий продукт важнее исчерпывающей документации
  3. Сотрудничество с заказчиком важнее согласования условий контракта
  4. Готовность к изменениям важнее следования первоначальному плану

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


Основополагающие принципы Agile-манифеста

  1. Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения.
  2. Изменение требований приветствуется, даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.
  3. Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев.
  4. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.
  5. Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.
  6. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.
  7. Работающий продукт — основной показатель прогресса.
  8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.
  9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.
  10. Простота — искусство минимизации лишней работы — крайне необходима.
  11. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.
  12. Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы.

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

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

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

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

Постоянное самосовершенствование является одним из ключевых факторов достижения цели проекта.


Роли

Ответственность за результат делится между тремя ролями:

  • Владелец продукта
    • определяет проектные цели,
    • разрабатывает оптимальный график при заданных проектных параметрах,
    • адаптирует процесс выполнения проекта к изменившимся требованиям,
    • устанавливает приоритеты в характеристиках продукта
  • Scrum мастер
    • устанавливает приоритеты в выполнении задач командой проекта,
    • устраняет возникающие затруднения, препятствующие выполнению задач
  • Члены команды
    • выполняют большинство поставленных задач,
    • осуществляют ежедневный менеджмент,
    • создают отчеты о ходе выполнения проекта,
    • контролируют качество продукта


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

  • Feature Driven Development (FDD), 1997 г.
  • Dynamic Systems Development Method (DSDM), 1994 г.
  • Crystal Methods, 1992 г.
  • XP (Extreme programming), 1995 г.
  • Scrum, 1995 г.


Ссылки

Примеры внедрения agile и других гибких методов в системной инженерии: