Развитие инструментальных средств

Несмотря на развитие инструментальных средств до середины 70-х годов не наблюдалось роста производительности труда программистов. Более того, из-за ужесточения требований и нелинейного роста сложности ПО при увеличении его размеров производительность труда даже уменьшилась. Постоянно срывались сроки разработки, ПО становилось дороже, его качество — непредсказуемым. Самое неприятное — не срабатывали испытанные методы выправления ситуации, такие, как предоставление дополнительных человеческих и материальных ресурсов. Возникшее положение, прекрасно описанное Бруксом, получило название «кризиса ПО».

Понимание ситуации того времени имеет непосредственную практическую ценность, так как именно оно (понимание) обеспечило выход из кризиса. Ведь сейчас используются в основном те же языки и системы программирования, далеко не везде доступны самые передовые операционные системы, самые реляционные СУБД и развитые технологические программы. Несмотря на это, уже близок к завершению этап посткризисного экстенсивного развития ПО, в некоторых странах начинается этап интенсивного развития ПО, благополучно продолжается процесс создания и внедрения языков IV поколения. Дело в том, что кризисом называют не просто трудное положение, а непонятную и неуправляемую ситуацию. Положение не считается кризисным, если понятны причины трудностей, видны рычаги управления ситуацией и известна их эффективность. Новый этап развития был подготовлен открытиями 70-х годов в области технологии программирования и может датироваться 1976 г. — публикацией работы Боэма «Программная инженерия», в которой вводится понятие жизненного цикла ПО и указывается, что основные затраты приходятся не на отладку программ, не на их разработку, а на сопровождение. Этап еще не завершился, поэтому его различные аспекты будут более подробно рассмотрены далее.