Если вернуться к термину кризис и программной инженерии, как ответу на этот кризис, то пожалуй, той временной точкой в которой произошло появление этих терминов, является конец 60‑х годов, точнее говоря это 68 год, когда состоялась историческая конференция НАТО, в немецком городе с трудно произносимым названием Гармиш-Партенкирхен, где собственно и произошло становление программной инженерии, как научно-технологической дисциплины. И где собственно и было сформулировано понятие кризиса, как противоречие, которое возникает между сложными системами, которые необходимо разработать и теми отношениями разработчиков и заказчиков, тем качествам программного продукта, которое появляется на выходе. Человеком, который придумал этот термин, является, по-видимому, Фридрих или Фриц Бауэр из Мюнхена, который представлял Германию на этой конференции, и который собственно впервые, по-видимому, употребил термин кризис. Мы будем говорить об этом более подробно дальнейшем. А пока отметим, что прежде всего было заявлено впервые, что кризис разработки как таковой, существует и было предложено подходить к этому кризису разработки примерно с той же точки зрения, как мы подходим к разработке материальных продуктов. Нельзя ли попробовать, возник вопрос, разрабатывать программные продукты с применение примерно такого же технологического процесса, как мы проектируем систему высокой сложности, скажем в архитектуре при строительстве зданий или как мы строим мосты. Ответ был, что в полной мере это сделать нельзя, но основные принципы, которые применимы в строительстве, применимы в возведении зданий, в архитектуре, применимы для решения вот таких сложных комплексных задач, где работает несколько команд разработчиков и их работу необходимо координировать между собой, как во времени так и в пространстве, что бы, скажем, две стороны моста, если строить его с разных берегов реки, в итоге сошлись в одну точку необходимо. Именно для этого необходима программная инженерия, как дисциплина, которая призвана обеспечить разработку систем, программных систем высокой сложности и с должным уровнем качества. Под качеством может пониматься целый ряд атрибутов. Естественно нужно уложиться в сроки, обеспечить необходимые функции. Ну, а с точки зрения качества это надежность, это безопасность, это сопровождаемость, это эргономичность и целый ряд других характеристик, которые называются атрибутами качества. При этом с точки зрения корпоративных программных систем имеет смысл говорить о построении достаточно сложных и достаточно больших программных систем. Это не индивидуальные программы, которые поддерживают, скажем, разработку и координацию различного вида ресурсов, таких как людские ресурсы, финансовые ресурсы, специфичные ресурсы, скажем, нефтегазовые ресурсы, документы и т.д. И координировать их интегрированное взаимодействие. Вот для решения этих проблем и возникла дисциплина программной инженерии, как ответ кризису.