Понятие о базовом наборе ценностей методологии Agile

Содержание:

Agile методология появилась в 2001 году, когда впервые был провозглашен манифест гибкого программного обеспечения. Этот манифест был построен на 12 принципах. До этого программисты пробовали создать что-то наподобие, но Agile объединила все эти попытки и связала едиными ценностями.

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

Сегодня разберем эти двенадцать принципов и посмотрим, действительны ли они в наше время.

12 принципов, поделенных на идеи

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

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

Внимание! Опытные программисты говорят, что обозначение Agile может быть неправильным изначально, хоть и принято за устоявшееся выражение метода разработки программного обеспечения. Скорее всего, разработчики того времени имели в виду слово Adaptive, то есть адаптивная методология создания программного обеспечения. И сейчас, когда подразумевают подходы, основанные на этой методологии, говорят «адаптивные или гибкие способы».

К таким адаптивным способам разработки ПО относят:

  • Scrum. Это минимальный набор мероприятий, посредством которых за небольшой период времени программное обеспечение в готовом виде поставляется конечному потребителю;
  • eXtreme Programming. Этот метод заключает в себе одновременное написание кода одним программистом и его проверку другим;
  • Crystal. Это метод, где синтаксис написания кода максимально упрощен, поэтому и называется «кристальный»;
  • Feature Driven Development. Это объединение признанных способов разработки программного обеспечения. В этом методе за основу программист берет функциональность. Программное обеспечение должно поставляться систематически в указанные сроки.

На самом деле способов очень много. Чтобы перечислить все, понадобится написать несколько статей. Поэтому остановимся только на некоторых из них и рассмотрим более подробно чуть позже.

Понятие о базовом наборе ценностей методологии Agile

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

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

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

Методики адаптивной разработки

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

Начнем с первого — Scrum.

Scrum

Этот способ управления применяют в таких компаниях, как Микрософт, Яху, Сименс. Он представляет собой игру в регби или американский футбол. В работе по этому методу важны слаженность команды, быстрые перехваты без задержек на месте.

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

  1. Находят владельца продукта. Только он может сказать, для чего предназначено ПО и какова его конечная цель.
  2. Собирают команду из десяти человек. Каждый из них должен обладать узкоспециализированными навыками для проработки мельчайших деталей.
  3. Выбирают скрам-мастера. Этот человек будет следить за тем, как разрабатывается программное обеспечение, и выявлять проблемные участки. Затем он выносит их на общее собрание, где проблема решается совместными усилиями.
  4. Вместе команда составляет бэклог программного обеспечения. Методика требует расставить приоритеты в порядке важности. Главную роль играет владелец ПО, так как он собирает все пожелания.
  5. Составляют спринты, или отрезки времени, которые будут даны на разработку каждого этапа ПО. Важно придерживаться этих отрезков и не выходить за их рамки.
  6. Ежедневно проводят собрания. Это пятнадцатиминутные митапы, во время которых спрашивают, что разработчик сделал вчера, что делает сегодня. И главный вопрос: что мешает выполнить задачу.
  7. Когда готовы определенные части, необходимо внимательно просматривать каждый их элемент. Для этого дополнительно привлекают стейкхолдеров.
  8. Проводят ретроспективу, т. е. обсуждают возникшую проблему и решают ее после каждого прошедшего отрезка времени. Если производятся изменения, то они внедряются прямо с начала следующего спринта.

Давайте посмотрим на четыре главных компонента в Скраме:

  1. Бэклог продукта — это список требований к программному обеспечению.
  2. Бэклог спринта. Это задание, которое нужно сделать в ближайший отрезок времени.
  3. Гол спринт. На английском будет звучать как Goal Sprint. В переводе означает «цель данного отрезка времени».
  4. Спринт берндаун чарт. Этот компонент обозначает диаграмму. Она может меняться по мере исполнения тех или иных задач. По ней определяют, как работает команда.

Теперь рассмотрим агрессивную методику разработки программного обеспечения.

Экстрим программинг

Создатель подобного метода программирования — Кент Бэк. Такой способ помогает справиться с постоянно изменяющимися требованиями к ПО. Также он значительно повышает качество разрабатываемого ПО.

Этот метод работает за счет внедрения следующих процессов:

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

Есть еще способ под названием «Кристал Методология». Давайте посмотрим, что она собой представляет.

Понятие о базовом наборе ценностей методологии Agile

Кристалл

Эта методология работы по проектам малоизвестна на отечественном рынке разработки ПО. Пользуются ею в основном на Западе.

Вот принципы, которыми руководствуются менеджеры при отправке проекта в работу:

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

Еще один способ — Dynamic Software Development.

Dynamic Software Development

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

В результате были выведены основные принципы этого метода:

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

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

Отличия FDD от DSDD

FDD отличают следующие моменты:

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

Из каких этапов состоит этот метод:

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

Затем цикл повторяется.

Есть еще один интересный метод создания проекта разработки программного обеспечения. Называется он Kanban.

Канбан

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

Процедура работ состоит из следующих этапов:

  • в очереди;
  • в работу;
  • анализ;
  • проектирование;
  • дизайн;
  • разработка;
  • тестирование;
  • готово.

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

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

Понятие о базовом наборе ценностей методологии Agile

Чем отличаются друг от друга две методики — Канбан и Скрам:

  • в Канбане нет совещаний, а в Скраме есть;
  • в Канбане нужна отправная точка, а в Скраме нет;
  • в Канбане работают только узкоспециализированные разработчики, а в Скраме может участвовать кроссфункциональная команда;
  • в Канбане проводятся последовательные перемены, в Скраме все меняют радикально.

Что лучше: Канбан или Скрам, и по какой методике действовать вашей команде — решать только вам. В теории все это знать, конечно же, хорошо, но нужна и практика. Опытные разработчики советуют практиковаться без опасений, что что-то может навредить проекту.

Поэтому некоторые программисты объединяют две или три методики в одну, тем самым выигрывая и время, и ресурсы. Например, из Скрам могут взять спринты, а из Канбан — концентрацию продолжительности этапа.

Важно! Работа по Agile не подходит для аутсорса, когда все разработчики взаимодействуют друг с другом онлайн.

Заключение

Теперь вы имеете представление о ценностях Agile и о том, как их применять на практике. Чтобы углубиться в эту тематику, пройдите курсы программирования от DevEducation.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!