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

Dynamic System Development Methodology (DSDM)

DSDM е методология, развита през 90-те години в Англия. Тя предлага развита структура от управленски практики. Заедно с това е независима от прилаганите практики за разработка и контрол. Това е единствената Agile методология, която се развива от отделен консорциум като цялостна управленска методология.

Ключовият момент в DSDM е приемането, че проектите са с фиксиран срок и бюджет. Така единствената променлива величина остава обемът на работата. Разработката се провежда така, че да се максимизира текущата полза за клиента. Това е фокусът на тази методология.

Специфичните използвани практики са следните:

Приоритизация на изискванията по принципа MoSCoW. Това съкращение означава Must-Should-Could-Would изисквания. Всички изисквания се класифицират в една от четирите категории:
  • Must - задължителни за реализация
  • Should - изисквания, които не са критични за работата на системата, но са много полезни
  • Could - тука попадат изискванията, които на жаргон наричаме "глезотии"
  • Would - идеи за бъдещи разширения.

Класификацията се извършва от клиента - той решава кое колко е важно. Интензивно се използва принципа на Парето (правилото 80/20) във вида "20% от функционалността покрива 80% от нуждите на клиента".

Timeboxing

Този общ термин за срока на итерацията тука има допълнително значение. За всяка итерация времето и бюджетът са фиксирани. Така единствената променлива остава обемът работа. За итерацията се избира група от функционалности, които де се реализират. Те се подреждат по MoSCoW принципа. Абсолютно задължително е всички задължителни ("Must") изисквания да са изпълнени, както и повечето от групата "Should". От там нататък до края на итерацията се изпълняват по-малоценните изисквания (тъй като срокът и бюджетът са фиксирани). По такъв начин на всяка итерация се гарантира, че за срока и парите си клиентът получава най-полезната за него функционалност (тъй като той задава приоритетите). Това е интересен начин да се елиминира понятието закъснение на проекта.

Прототипи

Практически всяка итерация се състои от създаване и оценка на прототипи на системата.

Workshops

Всеки прототип преминава през оценка и дискусия на работна среща (workshop), на която присъстват както разработчиците, така и различни представители на клиента.

Всеки DSDM проект преминава през три фази:

  • предварителен (pre-project)
  • жизнен цикъл (life cycle)
  • финален (post-project).

Предварителната фаза е организационна: идентифицира се проектът, целите, какви проблеми трябва да се решат, екипът, финансирането и т.н. Финалната фаза включва внедряване, обучение и последваща поддръжка. В тези фази няма никаква специфика. Жизненият цикъл на проекта е подчинен на главното предположение на метода: срокът и бюджетът са фиксирани, променливи са спецификациите.

Жизненият цикъл включва:
  • Етап "Оценка на изпълнимостта (feasibility study)": изпълнимост, полезност, рискове
  • Етап "Бизнес планиране (Business study)": приоритизация на функционалностите (метод MoSCoW)
  • Общо планиране на системата, планиране на етапите, допълнителни рискове и т.н.
  • Цикъл от итерации - всяка итерация има строго определена продължителност - timebox.
Итерацията включва:
  • Определяне на изискванията за итерацията и тяхната категоризация по принципа MoSCoW
  • Функционален модел (Functional model iteration)
  • Дизайн и реализация (Design and build iteration) - преминава се през създаване на няколко прототипа (мини итерации), реализиращи исканата функционалност и техните оценки и модификации. Всеки прототип е преминава през дизайн, кодиране, тестване и обсъждане (workshop) заедно с клиента. Всеки следващ прототип включва нови функционалности и коригира вече направените, в съответствие с изводите от обсъждането.
  • Внедряване (Implementation) - окончателният прототип се кодира и тества "официално" и се пуска в експлоатация.

DSDM е изцяло изградена от практики за управление на проекта. Тя не дефинира и не ограничава използването на практики от останалите типове. Всяка организация може да избере собствен набор от инструменти, например backlog и "правостоящи срещи" от Scrum, програмиране по двойки от XP и т.н.
Ремонтът на вече реализирани функционалности не е повод за безпокойство. Приема се, че "нищо не може да бъде направена перфектно от първия път".
DSDM е най-формалната и „най-церемониалната“ методология от семейството на Agile. Това я прави най-предпочитаният кандидат когато формалната страна е от значение, например при държавни и държавно-финансирани проекти.

Жизненият цикъл на проекта според DSDM

  • Оценка на изпълнимостта
  • Бизнес планиране
  • Итерация на функционалния модел Планиране, Идентифициране на функционален прототип, Разглеждане на прототипа, Създаване на функционален прототип
  • Имплементация – Внедряване, Обучение на потребителите, Одобрение от потребителите, Преглед за нови бизнес потребности
  • Итерация на дизайн и реализация - Планиране, Идентифициране на функционален прототип, Разглеждане на прототипа, Създаване на функционален прототип