Вспомним, каковы были главные ожидания от так называемого по окончании двух знаменитых конференций научного комитета НАТО (в Гармише, Германия, с 7 по 11 октября 1968 г., и в Риме, в Италии, октябрь 27-31, 1969), разработка программного обеспечения, что на французском языке переводится как «génie software».
Программная инженерия — это наука инженера, которая интересуется научными процессами создания и сопровождения программного обеспечения, и, конечно же, самой «материей» этого построения: прежде всего самими программами, файлами и базами данных, конфигурационными скриптами. необходимая для запуска программы, затем все, что вокруг нее крутится (уточнение потребностей и требований будущих пользователей, техническое задание на дизайн, тесты, документация для сопровождающих, техподдержки и пользователей и т. д.). Цель разработки программного обеспечения — максимально увеличить срок службы и качество программного обеспечения при минимальных затратах и времени. Его объект — та часть информации, которую мы можем компьютеризировать, помня, что слово «компьютер» — это слияние двух слов:
✓ Производительность лежит в основе внедрения информационных технологий и, следовательно, деятельности компьютерных инженеров, отсюда два взаимодополняющих аспекта:
– увеличить количество инженеров, способных создавать программы, или даже разрешить простым пользователям самим создавать нужные им программы с помощью таких инструментов, как электронные таблицы, появившиеся вместе с микрокомпьютерами в 1980-х годах;
– повысить производительность программистов и групп, выполняющих программы, за счет набора методов, инструментов, простоты использования, ноу-хау, образующих единое целое.
Под современным понятием программного обеспечения, можно считать и бизнес сайт. Но, в период зарождения направление разработки ПО, ещё не ставилась цель коммерциализации.
Параллельно с проблемой инструмента, начавшейся в 1960-х годах, очень быстро привился проблемный проект, который интересовался эффективностью совместной работы команд для производства программного обеспечения, размер которого значительно превышает тот, который была бы в состоянии сделать небольшая группа программистов, даже очень одаренных. В этом случае именно организация, метод, архитектура, общие ценности обеспечат эффективность.
Эти две проблемы дополняют друг друга. Это уже позволяет говорить о том, что инструмент, создающий трудности в общении внутри команд, — это инструмент, которого следует избегать. И наоборот, метод, который предполагает инструменты, которых не существует, или инструменты, стоимость владения которыми разрушает экономическую прибыльность проекта, не будет иметь шансов на выживание в нашем социально-экономическом мире, где вы должны быть лучшими с экономической точки зрения. Именно тонкий динамический баланс между этими двумя вопросами позволяет развивать информационные и коммуникационные технологии.
Мы можем проанализировать краткую историю разработки программного обеспечения, руководствуясь этой двойной проблемой:
– история инструментов, которые, несомненно, позволили повысить производительность труда программистов;
– история методов, которые позволили постоянно растущим группам программистов работать вместе, но с ограничением, которое, по-видимому, составляет от восьмисот до тысячи человек в одном проекте (случай компьютерных операционных систем, которые и по сей день остаются самые сложные программы из когда-либо созданных).
|