Почему проекты умирают. Архитектура

Еще одна штука, которая очень сильно влияет на успешность проекта - это архитектура.

Пожалуй, это самый загадочный артефакт, который должен быть порожден в ходе проектирования системы.

То,  что архитектруа должна быть, не вызывает сомнений ни у кого. Когда стартуется проект, ничто так часто не упоминается, как архитектура. И именно ее все хотят получить как можно скорее.

Дальше происходит магия. Когда начинаешь пинать разработку с вопросом "ну что, давайте уже с архитектурой определяться", тебе отвечают - "рано, рано, мы еще не все для себя поняли". А через пару недель на тот же вопрос ты слышишь уже другой ответ: "да уже поздно, понакодили, много менять, пусть так будет, потом разберемся".

Как понять, где эта тонкая грань между рано и поздно - лично я не знаю. Но некоторые наблюдения за таинством рождения архитектуры позволяют сделать ряд выводов, которые могут быть полезны при формировании команды.

Но сначала скажу, что под архитектурой я понимаю артефакт, описывающий структуру системы, ее компоненты и логику их взаимодействия как между собой, так и с окружающим миром. Есть артефакт - есть архитектура. Нет артефакта - нет архитектуры.

А теперь выводы:
  • Архитектура - это артефакт. Архитектура не бывает в голове. В голове могут быть только мысли и знания. Есть схема и описание - есть архитектура. Нет схемы и описания - нет архитектуры.
  • Даже самый способный и грамотный разработчик не способен спроектировать архитектуру, если он не обладает навыками и инструментами ее проектирования. Он способен "накидать". Что-то про три кубика "уровень данных - уровень логики - уровень интерфейсов". Что-то накидать - это не про спроектировать. Это про неспособность спроектировать.
  • Блестяще знает платформы, библиотеки, еще чего-то там и умеет проектировать архитектуры - это две очень большие разницы. См. предыдущий пункт.
  • Сильный системный аналитик проектирует архитектуру лучше сильного разработчика.
  • Схема развертывания и архитектура - это разные вещи.
  • Система - это не только софт, это до хрена всего. И это до хрена всего тоже является частью ее архитектуры. Поэтому у архитектора должно быть понимание, что такое система, что такое корпоративная архитектура, как его архитектура вшивается в корпоративную и что должно быть в его архитектуру включено, чтобы все сшилось. Он должен обладать кругозором.

Я хотел было закончить тем, что из разработчика архитектор выходит с трудом по той причине, что у разработчика есть определенная неприязнь к практике документирования, без которой создать архитектуру невозможно. Но причина не только в этом.

Основная причина, не позволяющая сильному разработчику стать архитектором - это зашоренность. Почему-то люди не могут увидеть ничего, кроме софта, не способны подняться выше и посмотреть на строящийся город с высоты. Умение взлететь в людях либо убивается, либо они сами в себе на протяжении карьеры убивают. Поэтому им нравится вылизывать до совершенства какие-то кирпичики, порой не осознавая, что город, который они строят - по большему счету дерьмо, которое не выдержит и пары заходов на масштабирование.

И вывод: растите архитекторов в девелоперах с самого раннего возраста. Им всем это пойдет только на пользу. Видеть больше и понимать, что делаешь, пока никому лишним не было.

Популярные сообщения из этого блога

Карта компетенции аналитика

Оценка эффективности работы аналитика – а чем он занимается и чего можно померить?

Оценка эффективности работы руководителя проектов