Современный тренд в разработке программного обеспечения – растущая сложность. Аналитики говорят, что из-за всё более высокой сложности разработки ПО повышается порог вхождения в профессию. Из-за высокого порога возникла парадоксальная ситуация, когда разработчиками люди становятся не благодаря своим знаниям и навыкам, а по случайности[3]
Процесс разработки программного обеспечения (англ.software development process) — это процесс, посредством которого потребности пользователей преобразуются в программный продукт (the process by which user needs are translated into a software product). Процесс разработки программного обеспечения является составной частью программной инженерии и описывается в стандарте ISO 24765:2010[4].
Существует несколько моделей процесса разработки ПО:
каскадная модель (англ.waterfall model), другие названия: водопадная, последовательная;
Соммервилл, И. Инженерия программного обеспечения = Software Engineering : [пер. с англ.]. — 6-е изд. — М. : Вильямс, 2002. — 642 с. — ISBN 5-8459-0330-0.
Гринфилд, Дж. Фабрики разработки программ (Software Factories): потоковая сборка типовых приложений, моделирование, структуры и инструменты = Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools : [пер. с англ.] / Дж. Гринфилд, К. Шорт, С. Кук … [и др.]. — М. : Диалектика, 2006. — 592 с. — ISBN 978-5-8459-1181-0.
↑Программная инженерия — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765-2010 Systems and software engineering — Vocabulary)