Съдържание на статията
Agile – ключът към управлението на проекти в динамична среда
2 стр. - Практиките
3 стр. - Extreme programming (XP)
4 стр. - Scrum
5 стр.- Feature-Driven Development
6 стр.- Crystal
7 стр. - Dynamic System Development Methodology
8 стр. - Заключение
Всички страници

Практиките

Вместо единен процес Agile методологиите са комбинация от отделни методики, наричани „практики“, които могат да се комбинират произволно.

Практиката е начин на решаване на конкретен аспект от даден технически или организационен проблем. Практиката има три компонента:

  • как да идентифицираме и опишем проблема
  • стратегии как да решим проблема
  • метод да проверим дали решението е добро

Въпреки абстрактната формулировка, добре описаните и усвоени практики са чисто практическо оръжие за ежедневна употреба.

Различаваме четири типа практики:

  • технологични - свързани с процеса на разработване на продукта: например архитектурни шаблони, test-driven development, domain models...
  • социални - свързани с работната среда, взаимодействието на участниците в проекта и споделянето на отговорностите: например самоорганизиращ се екип, споделена отговорност, обща стая, бяла дъска...
  • организационни - свързани с организацията на работния процес: например ежедневни срещи, работа по двойки, user stories, backlog...
  • процесни - характеризиращи процеса на разработка - например къси итерации, постоянна интеграция, приоритизация на разработката от клиента, принцип „MoSCoW“...

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

Публикувани са огромен брой практики от всеки вид (често авторите самохвално ги наричат „best practices“). Някои от тях се комбинират добре, други – не толкова. Големият избор е едновременно и полезен, и вреден – не е лесно да комбинираме „нашата“ селекция от практики. За щастие съществуват над 10 „преконфигурирани“ Agile методологии, чиито автори обикновено са най-изявените пропагандатори на Agile.

Интересно е, че различните методологии се изграждат върху различни ключови ценности, например качествен продукт, максимално ценен продукт, размер на екипа, минимизация на рисковете, критичност на проекта, възможност за мащабиране и т.н.

Повечето методологии не са пълни – те обхващат само някои аспекти на цялостния процес, оставяйки възможност за свободно допълване на липсващите части с практики по избор. Всички обаче имат някои общи черти:

  • разработването се прави на къси итерации
  • клиентът итеративно получава работещи версии на системата
  • качеството е приоритет номер едно
  • обикновено целият екип е събран на едно място – в една зала, за улесняване на неформалната комуникация
  • информацията за развитието на проекта е на общодостъпно място – на стената в работната зала
  • постоянно взаимодействие с клиента и постоянен поток на информация към и от него
  • промяната дори и на работеща подсистема се възприема като нещо нормално

Ще опишем накратко най-популярните Agile методологии и най-характерните практики в тях.