Как программисты, мы все должны быть знакомы с концепцией объектно-ориентированного программирования. На случай, если вы новичок в этом, вот очень краткое изложение того, что это такое: прежде чем начинать что-либо (анализ, проектирование или программирование), вы должны привыкнуть смотреть на все как на объект. Объект имеет набор описывающих его атрибутов и ряд методов, которые он может выполнять. Хитрость мастерства заключается в том, чтобы определить, что идентифицирует объект и что объект хорошо делает. Это очень краткое объяснение, но я предполагаю, что этого должно быть достаточно, чтобы помочь вам понять это. Если нет, я рекомендую прочитать об этом еще немного, прежде чем продолжить.

Agile относится к методологии разработки программного обеспечения, появившейся после печально известной методологии водопада. Общие идеи Agile Software Development выражены в Манифесте Agile Software Development (доступен здесь: https://agilemanifesto.org/)

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

Эта методология возникла в 1990-х годах благодаря двум важным событиям. Первой была «новая» парадигма объектно-ориентированного программирования, которая заменила старое процедурное программирование в качестве излюбленной парадигмы. Вторым был рост Интернета. Это привело к быстрому изменению требований, что привело к увеличению жизненного цикла сортировщика, что было несовместимо с традиционными методами разработки программного обеспечения.

Существуют различные версии Agile-методологии, но, как упоминалось ранее, все они разделяют одну и ту же философию, изложенную в Манифесте гибкой разработки программного обеспечения. Вот некоторые из версий Agile:

СКРАМ

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

Каждый спринт состоит из 3 основных частей:

  • Приоритеты планирования
  • Решить, какие пользовательские истории могут быть достигнуты
  • Ежедневные встречи для информирования об обновлениях

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

Экстремальное программирование

В Extreme Programming мы намерены улучшить качество программного обеспечения. Приветствуются частые выпуски в короткие циклы разработки. Мы используем контрольные точки, которые позволяют нам лучше понять, когда добавлять новые требования клиентов.

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

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