Фазы разработки
Специфика разработки программного обеспечения заключается в выделении нескольких однотипных видов деятельности команды: анализ, проектирование, кодирование, тестирование и т.д. В каждом виде деятельности участвуют свои, знакомые с ним, специалисты и формируют проектные документы или другие артефакты, которые будут использованы в других видах деятельности.
Таким образом, каждый вид деятельности зависит от другого и реализация некоторой функциональности подразумевает под собой последовательное выполнение каждого вида деятельности. Другими словами, некоторый функционал проходит по нескольким фазам (или этапам) разработки.
В зависимости от разновидности процесса разработки фазы могут покрывать как весь функционал системы (водопадная модель), так и отдельного пожелания (Agile).

