Должности “архитектор ПО” в 70-х не было. Возможно, потому что про архитектуру ПО никто не парился, писали софт как могли. Возможно, потому что называться “архитектором” не имея лицензии в некоторых странах незаконно (Калифорния, Австралия).
Но настоящие архитекторы встречались. Например, Кристофер Александер (да, фамилия Александер). Человек уникальный потому что не только построил несколько сотен зданий, но и обучил целое поколение айтишников. Из его идей возникли шаблоны проектирования ПО и гибкие методологии разработки.
В его The Timeless Way of Building (1979) было два необычных для того времени посыла (это сегодня они понятные и привычные):
-
Если строишь дом на века, нужно пользоваться хорошими шаблонами и избегать плохих. Например, в правильно спроектированном доме должно быть “солнечное место” (шаблон такой). Если солнечного места нет, будет грустно. Солнечное место можно сделать с помощью разных инструментов вроде высоких окон и поворота дома относительно сторон света. Солнечное место отлично сочетается с широкими подоконниками, на которых можно сидеть. В общем, основные шаблоны проектирования зданий, про которые должен знать архитектор, Александер выделил и описал. Если хочется знать, как должна выглядеть лестница или главный вход здания, рекомендую.
-
Если строишь дом на века, нужно вписать его в окружающую природу. Сделать так, чтобы дом стал логичным продолжением его окружения. Эта идея не новая, она бродила в умах архитекторов ещё в 1920-е годы. На картинке ниже пример, называется Дом над водопадом. Можно сказать, идеал архитектуры.
У ранних computer scientist-ов работы Александера были одним из немногих источников вдохновения. Студенты-компьютерщики читали их в обязательном порядке. Два посыла, обозначенных выше, глубоко закрутило в водовороте времени и они вынырнули только к 2000 году. Мы к ним ещё вернёмся.
Не затянуло в водоворот времени только то, что к разработке ПО имеет смысл относиться как к строительству домов. Так оно и повелось на несколько десятков лет, пока термин “архитектура ПО” не решили полноценно определить. Я не говорю, что плохо строить ПО как дома. Иногда такой взгляд на разработку заходит идеально, но чаще нет.
(В продолжении будут интересные особенности постройки домов…)