В современном мире создание программ, которые служат для удобного и быстрого решения всевозможных профессиональных и персональных задач, – это всегда бизнес.
И рост, и расширение этого бизнеса напрямую зависят от привлечения новых клиентов, поддержки существующих и удовлетворения их часто меняющихся высоких запросов. То есть ответственный производитель должен гарантировать своевременное и непрерывное предоставление работоспособного ПО, которое будет подстраиваться под потребности конкретных клиентов, соответствовать мировым тенденциям по набору и объему реализуемых функций, а также по стоимости этого ПО для клиентов.
С другой стороны, разработка ПО – это взаимодействие команды разработчиков и тестировщиков, их руководителей, заказчиков и конечных пользователей.
И, если крупная корпорация работает на собственном капитале, то сроки выпуска продукта не так критичны (неделя плюс, неделя минус для них не существенны). В отличие от них для относительно небольших компаний, которые работают на заемном капитале, сроки поставки готового ПО имеют особую важность. Ибо прибыль возможна только в результате продаж продукции, а кредитные обязательства компании перед заимодателем никто не отменял.
Значит, для финансового успеха нужно организовать процесс разработки так, чтобы минимальными усилиями в сжатые сроки добиться выпуска и поставки требуемого конкурентоспособного продукта [1].
Соответственно руководство компаний разработчиков ПО сталкивается с необходимостью максимально эффективно организовать процесс своей внутренней работы.
В настоящее время существует достаточно большой выбор методологий, подходящих для внедрения в самые разноплановые проекты разработки ПО. Многие из них достаточно давно и широко используются в мировой практике, получили большое развитие и популярность.
Предлагаю ознакомиться с наиболее распространенными методологиями и выбрать наиболее подходящую для организации и управления конкретным разрабатываемым программным проектом. При этом грамотный и внимательный руководитель проекта разработки ПО скорее всего будет брать за основу наиболее интересные, на его взгляд, ключевые особенности той или иной стандартной, общепризнанной методологии и дополнит ее собственными методами, полученными в результате личного профессионального опыта. Итак, начнем.
Основные принципы гибких методологий (Agile)
В последние годы широкой популярностью пользуются именно гибкие методологии разработки ПО. Их общая концепция – эффективная и вместе с тем достаточно демократическая организация взаимодействия небольших групп разработчиков и минимизация рисков за счет развития проекта на базе серии коротких циклов (итераций).
Вот 12 основополагающих принципов, входящих в так называемый Манифест гибкой методологии разработки ПО [2]. Перечислим их кратко.
- Первоочередной целью команды разработчиков является удовлетворение требований заказчика, для чего предусматривается ранняя и непрерывная поставка работоспособного ПО.
- И такое работоспособное ПО необходимо выпускать достаточно часто (от интервала в неделю до раза в несколько месяцев). При этом наиболее предпочтительными являются самые короткие интервалы.
- На протяжении всего проекта взаимодействие разработчиков и представителей заказчика должно быть постоянным, для согласования меняющихся требований и уточнения деталей.
Статью целиком читайте в журнале «Системный администратор», №1-2 за 2015 г. на страницах 82-85.
PDF-версию данного номера можно приобрести в нашем магазине.
- Вумек Джеймс П., Джонс Даниел Т. Бережливое производство. Как избавиться от потерь и добиться процветания вашей компании. – М.: «Альпина Паблишер», 2011. – 487 с.
- Криспин Л., Грегори Дж. Гибкое тестирование. Практическое руководство для тестировщиков ПО и гибких команд. – «Вильямс», 2010. – 464 с.
- Вольфсон Б. Гибкое управление проектами и продуктами. – «Питер», 2015. – 144 с.
- Ключевые слова: методологии разработки ПО, гибкие методологии, Agile, Scrum, Extreme Programming, Crystal Clear, FDD, RUP, Kanban.