Ведущій программист. Кто он?

Ведущій программист — человѣк, на шаг отстающій от архитектора. Он может не только писать код, но писать его структурированно, идеологически вѣрно. Если результат работы программиста — правильно работающая программа, то результат дѣятельности ведущаго программиста — правильно работающій код. Послѣднее часто не понимают, но ещё чаще совершенно этим пренебрегают.

«Правильно работающая программа» и «Правильно работающій код». В чём разница? Если смотрѣть со стороны конечнаго пользователя, то внешне разницы нѣт — сотрудник в потѣ лица стучит по клавишам, программа делает то, что должна. Однако если смотрѣть со стороны разработчиков, то разница есть и разница немалая.

Если раньше я эту разницу понимал, но не мог объяснить и подкрепить примѣром, то мѣсяц назад я получил ЭТО! Цѣнный опыт, ценный примѣр того, как важен ведущий программист при разработке проекта.

Руководитель проекта в виду загрузки иных сотрудников (отпуском) подключил меня на проект, который вот-вот завершится и надо совсѣм немного додѣлать. Формулировка предельно проста: «Вот спецификація, вот этот пункт надо сдѣлать, как дѣлать — смотри и используй готовый код». Если причуды постановки заданія уже давно перестали удивлять своим разнообразіем, то слова «используй написанное» предстали в совершенно неожиданном смыслѣ.
Когда я открыл проект, передо мной предстал код, писанный программистом, который вряд ли собирается стать кѣм-то большим в этом направленіи. Программа работает, претензій как-бы нѣт. Однако «использованіе готоваго кода» свелось не к его вызову, а к его списыванію и правкѣ под свою задачу.

Довольно глупо и непрофессионально только придя на проект заявить о том, что надо бы переписать всѣ и вся за мѣсяц до срока и несмотря на то, что всё так-то работает. Плюсом и моя роль на проекте значилась «простым» программистом, а не ведущим — наклепал (именно так), провѣрил, сдал — свободен! Но не тут-то было! Всякій проект живёт и мѣняется до дня подписанія актов (а часто и послѣ) и приходится вносить измѣнения в (простите) ЭТО… Вот и получается, что программа работает правильно, а вод сам код не работает правильно, не исполнен необходимый уровень абстракціи, код нагромождается на код. Это как в автомобиле сдѣлать по двигателю на каждое колесо: оно, конечно, круто, но дюже накладно по ресурсам и поддержкѣ, необоснованно тяжело сопровождать и дорабатывать такой код.

Немного поразмыслив, хотѣлось бы выдѣлить несколько ключевых моментов для ведущаго программиста:

  • Ведущій программист — архитектор кода. Его основная задача — выстроить вѣрную абстракцѣю кода и слѣдить, чтобы код, написанный остальными, разрабатывался в рамках этой схемы. Он должен появляться на проектѣ до того, как кто-то начал писать код.
  • В кодѣ ведущаго программиста пытаются понять не «как он работает», а «как его использовать».
  • Ведущій программист пишет код так, чтобы пришедшій на его мѣсто сѣл и продолжил писать с минимальной раскачкой.
  • Код ведущаго программиста не нуждается в излишних комментаріях, ибо сам по себѣ является описаніем логики работы.

Пока, пожалуй, это всё.


Добавить комментарий