Что такое методология?

Мы можем найти множество методологий в разработке программного обеспечения. Но что это такое и почему это важно? По сути, методология разработки программного обеспечения (также известная как жизненный цикл разработки программного обеспечения или SDLC) представляет собой методы и передовые методы разделения работ на несколько этапов, чтобы можно было улучшить дизайн, управление проектами и управление продуктом.

А как насчет Agile?

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

Значит, Agile — это хорошо, верно?

Короче говоря, да. Но есть масса факторов, определяющих выбор методологии разработки. Почему? Мы знаем, что Agile — это новый способ разработки, так зачем нам вообще рассматривать традиционные? Ответ заключается в том, что у самой Agile есть своя обратная сторона. Например, в Agile не хватает важной документации, и проект часто сбивается с курса. Так почему же я использую методологию Agile? Прежде всего, нам нужно взглянуть на манифест Agile.

Манифесты Agile

Значения

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

Принципы

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

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

СКРУМ?

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

События

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

Роли

  • Владелец продукта — представитель заинтересованных сторон и клиентов
  • Команды разработки — группа специалистов по разработке, обычно состоящая из программистов, дизайнеров и всех, кто нужен
  • Мастер SCRUM — эксперт SCRUM, который гарантирует, что разработка соответствует ценностям SCRUM.

Артефакты

  • Бэклог продукта — ранние требования к продукту. Эти требования могут меняться в зависимости от потребностей клиента и обычно комментируются в обзоре спринта.
  • Бэклог Спринта — состоит из элементов Бэклога Продукта, который будет завершен в СПРИНТЕ.

Мой опыт

В настоящее время, когда глобальная пандемия распространяется по всему миру, мы вынуждены работать удаленно. Итак, как мы можем внедрить SCRUM, не встречаясь лицом к лицу?

Спринт
Мы проводим наш Спринт продолжительностью 2 недели, и каждое общение осуществляется с использованием социальных сетей.

Планирование спринта
Планирование спринта осуществляется удаленно с помощью видеоконференции с владельцем продукта и скрам-мастером.

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

Обзор спринта
Обзор спринта проводится во время видеоконференции. Все, кто имеет отношение к проекту, включены в конференцию, включая заинтересованные стороны.

Ретроспектива спринта
Мы проводим ретроспективу спринта с видеоконференцией между всеми разработчиками и скрам-мастером. Мы также пользуемся бесплатным ретроспективным сервисом от metroretro.io.

Ссылки

https://zenkit.com/en/blog/agile-methodology-an-overview/

https://www.smartsheet.com/comprehensive-guide-values-principles-agile-manifesto