[Перевод] Где-то в дороге мы забыли о мастерстве программирования

497cdf24042a291a47d796567bb72102.jpg

«Поставляй!»

«Мы теперь Agile, детка. Двигайся быстро и ломай вещи!»

«Мы оцениваем наших инженеров по тому влиянию, которое они оказывают!»

Где-то по пути, в разгар agilification программного обеспечения или золотой лихорадки зарплат инженеров-программистов, мы забыли о мастерстве.

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

Не поймите меня неправильно, есть участки хорошего кода. Отдельные примеры настоящей заботы и мастерства. Но, по большому счету, то, что я вижу сейчас, — это люди, пытающиеся как можно быстрее выпустить продукт, не обращая внимания на бремя сопровождения через 1, 2, 5, 10 лет.

Так что же происходит? Я не знаю точно, но вот мои основные теории.

Извращенные стимулы, связанные с «влиянием»

В больших технологиях принято учитывать «влияние» при оценке работы инженера и принятии решений о продвижении. К сожалению, «влияние» почти всегда измеряется тем, какие функции вы поставили, а не тем, как ваш код повлиял на долгосрочную работоспособность кодовой базы.

Если вы стремитесь продвинуться по карьерной лестнице и хотите, чтобы вам платили больше денег (в этом нет ничего плохого), то вполне логично, что вы будете поставлять больше функций — даже если код, который вы поставляете, менее качественный.

Давление бэклога

Я не обвиняю гибкую методологию. Но я отчасти виню Agile™. Сейчас, вы, вероятнее чем когда либо, находитесь в среде Agile™, где вас перегружают задачами. Стоит ли вам сосредоточиться на улучшении качества функции, над которой вы работаете? Или вам следует заняться другими 17 задачами, которые у вас есть в этом спринте?

Более высокопоставленные инженеры могут отмахнуться и сказать: «Мне нужно потратить больше времени, чтобы сделать это правильно». Но джуниор и мидл разработчики? Они должны идти в ногу со временем, чтобы их не считали «медлительными».

Более низкие ставки

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

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

Никто больше не фокусируется на мастерстве

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

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

© Habrahabr.ru