Настанет день, вероятно, не за горами, когда какой-нибудь бедняга-программист сделает какую-нибудь глупость, и умрут десятки тысяч людей… и [политики мира] покажут на нас пальцем и зададут вопрос. «Как вы могли допустить это?»

– Дядя Боб

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

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

Я посмотрел запись выступления Роберта К. Мартина (известного в техническом сообществе как дядя Боб) об ожиданиях профессионализма от разработчика. Он ссылается на недостатки компаний и агентств, включая космический шаттл Челленджер, который взорвался через несколько секунд после запуска, из-за безответственного проектирования. Чему он нас научил, чему то, что когда что-то неладно, то не просто стоять в стороне. Наоборот, мы должны выйти за рамки нашего служебного долга.

Я был очарован тем, как дядя Боб бросает нам вызов быть лучше, заставляя нас заботиться не только о себе — вплоть до готовности потерять работу. И, становясь разработчиками с такой убежденностью, мы должны быть этичными и честными; мы должны недвусмысленно «взять на себя ответственность за знание».

На протяжении всего выступления дядя Боб позиционирует себя как вашего личного технического директора в гипотетическом мире и говорит о профессионализме как о наборе стандартов. Среди случайных уроков о гравитации и GPS-приемниках он выделяет основные ожидания от вас (его сотрудников), которые я тематически сгруппировал. В то время как некоторые из них могут быть здравыми, некоторые из его идей также являются чисто радикальными — например, переосмысление QA не как внутреннего ручного тестирования, а как упреждающий инструмент для обеспечения качества кода. Я считаю, что самые простые уроки здравого смысла — это те, которые нужно часто повторять.

Мы изобрели программное обеспечение, чтобы мы могли легко изменять поведение машин… Я ожидаю, что вы адаптируетесь к изменениям.

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

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

Стабильная производительность. Дядя Боб предупреждает программистов, чтобы они не ускорялись в начале проекта, а затем замедлялись из-за накопления беспорядочного кода. Скорее, мы должны постоянно улучшаться и становиться лучше с течением времени. На самом деле мы должны становиться быстрее.

Будьте командой. Что бы ни случилось с вашими товарищами по команде, вы должны быть в состоянии прикрыть друг друга в любой момент. Единственный способ сделать это — работать вместе с помощью парного программирования и взаимодействия друг с другом. Делитесь знаниями об исходном коде и наборах тестов друг друга.

Будьте честны и откровенны в том, что вы знаете и чего не знаете. Одна из вещей, над которой я работаю, согласно моему ретроспективному сообщению в блоге, заключается в том, чтобы лучше планировать сроки. Дядя Боб говорит, что честная оценка — это не дата. Он призывает вас описать форму вашей неуверенности. Один из способов сделать это — предоставить три даты: одну для наилучшего сценария, одну для номинального случая и одну для наихудшего случая.

Всегда учитесь, настойчиво. Что меня привлекло в индустрии высоких технологий, так это ее динамичный характер. Помимо 40 часов работы, дядя Боб говорит, что нам нужно 20 часов собственного времени, чтобы учиться и быть достойными разработчиками программного обеспечения. Мы должны постоянно читать, посещать конференции, вести блог, посещать занятия и экспериментировать в свободное время. Дядя Боб сравнивает разработчиков с другими профессионалами, такими как юристы или врачи, и рассказывает о том, как мы обычно поддерживаем их персонажей на высоком уровне. Мы должны сделать то же самое с собой и другими разработчиками.

Обучать друг друга и быть наставником. Дядя Боб понимает ограничения новичков в отрасли и подчеркивает важность обучения. Почти у всех есть консенсус относительно наставничества, но я думаю, что немногие компании поощряют обучение через наставничество (официально или нет). Я также считаю, что наставничество имеет решающее значение для разнообразия и отличной рабочей культуры. Это один из величайших активов 8-го Света, и я надеюсь, что однажды я смогу стать наставником.