ЗМІСТ
Сторінка 1 з 5
По-друге, ітеративний (конструювання, випробування, успіх, невдача, повторне створення) - це запорука успішної розробки продукту, особливо в умовах конкуренції, що посилюється. Крім "досить докладних" вимог до продукту повинен існувати певний досвід його використання (який з'являється, наприклад, коли замовник випробує прототип), після чого до первинних вимог додаються нові, засновані саме на досвіді використання.
Зараз досить багато різних методологій розробки ПЗ взяли на озброєння ітеративний підхід. Втім, більшість з них випускає з виду такі важливі фактори як невпорядкованість і непередбачуваність складних умов роботи (висока швидкість, великий обсяг змін). Незважаючи на використання ітерацій, в іншому все базові положення цих методологій залишаються детерминистическими. Можна сказати, що в цілому вони нагадують кілька коротких "водоспадних" циклів, пов'язаних між собою.
Однак темп розвитку технологій і бізнесу все прискорюється, і статичні способи управління стають непридатними. Старий світ був світом оптимізації, де правили ефективність, передбачуваність і контроль. Новий світ - це світ адаптації, в якому головне місце відводиться змінам, імпровізації і нових ідей. Така дихотомія - оптимізація проти адаптації - дозволяє нам ясно уявити собі майбутнє управління програмними розробками.
Пам'ятайте серію карикатур про Ділберта? Так ось, на одній з них його колега Уоллі скаржиться на те, що ніяк не може вплинути на результат робіт. Однак він знаходить розраду в "гордості за процес". "Все що я роблю - безглуздо, - говорить Уоллі, - але я дуже пишаюся тим, ЯК я це роблю". Можливо, настав час подивитися на ці речі по-новому? Вже пора ставити результат вище процесу, розуміння вище документації, співпраця вище управління і адаптацію вище оптимізації.
Adaptive Software Development (ASD) - одна з нових методологій, які з'явилися як альтернатива традиційним, орієнтованим на процес, методам управління розробкою ПЗ. ASD, Extreme Programming (XP), Lean Development, SCRUM і сімейство методологій Crystal, звичайно, багато в чому відрізняються один від одного, проте у них всіх є одна спільна риса - на чільне місце в них ставиться людський фактор, рельзультати роботи і мінімізація самого процесу при максимальному збільшенні взаємодії між людьми. Всі ці методології були розроблені виходячи з об'єктивних реалій сучасного високотехнологічного бізнесу, який відрізняється величезною швидкістю розвитку і високою мінливістю.
Чим би ви не керували - тестуванням, командою розробників або всім проектом в цілому, настав час переглянути ті цінності і положення, які лежать в основі процесу керівництва. Практики ASD базуються на принципі безперервної адаптації, завдяки якій виникає інша філософія і інший життєвий цикл проекту, коли постійні зміни стають нормою.
У ASD звичайний статичний життєвий цикл Plan-Design-Build (Планування - Проектування - Конструювання) замінений на динамічний - Speculate-Collaborate-Learn (Обдумування - Взаємодія - Навчання).
Цей цикл має на меті безперервне навчання. Він пов'язаний з постійними змінами, повторними оцінками, спробами передбачити невідоме на поточний момент майбутнє проекту і вимагає тісної взаємодії між розробниками, тестувальниками і замовниками. (Зверніть увагу, що весь цей цикл не завжди є правильне коло. Навіть при итеративном процесі можна іноді відхилятися в сторону, щоб вивчити недосліджені досі області).
Методологія ASD побудована на концептуальних засадах теорії складних адаптивних систем. Вона розрахована на використання в екстремальних проектах, в яких превалюють швидкий темп розробок, непередбачуваність і часті зміни. Є проекти, які не можуть вважатися екстремальними. проте для всіх інших ASD підходить набагато краще, ніж будь-який традиційний підхід до розробки ПЗ. В кінці цієї статті ви знайдете посилання на більш докладний виклад теорії адаптивних систем.)