Коротко о методологиях разработки
Waterfall ( водопад, она же каскадная разработка ) - процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки.
- Все требования должны быть определены и детально описаны до начала разработки;
- Проекты легко контролируются, отслеживаются ресурсы, риски, время;
- Качество имеет первоочередной приоритет по сравнению со стоимостью и временем.
- Дорого и медленно;
- Чувствителен к изменениям;
- Мало возможностей для конечного пользователя повлиять на цели проекта и требования к продукту;
Agile ( проворный, итеративная разработка ) - сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся одну-две недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре, и включает все задачи, необходимые для выдачи мини-прироста по функциональности.
- Использование временные рамки(time boxes);
- Конечный пользователь вовлечен в процесс с самого начала;
- Быстрое получение первой/пробной версии продукта для тестирования;
- Легко воспринимаются корректировки и изменения в процессе разработки.
- Риск никогда не достигнуть закрытия/завершения проекта.
- Небольшой или средний проект, относительно короткий по времени;
- Технические требования приемлемые, коллериются с технологиями, которые собираются быть использованными для разработки.
Наиболее популярные методолгии итеративной разработки:
- SCRUM — это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные и небольшие по времени итерации, называемые спринтами (sprints), предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет.
- KANBAN - визуализация разработки, разделяя на задачи и использование отметок о положение задачи в разработке.