Программист - профессионал
(В оригинале - The Professional Programmer)
Кто же это – программист-профессионал?
Единственная характерная особенность программиста-профессионала – это личная ответственность. Профессионал сам ответственен за свою карьеру, планирование, соблюдение сроков, ошибки и квалификацию. Профессионал не перекладывает ответственность на других.
Если вы профессионал, вы ответственны за свою карьеру. Вы ответственны за обучение себя. Вы ответственны за то, чтобы идти в ногу со временем и технологиями. Слишком много программистов думают, что обучение – это забота работодателя. Увы, это совсем не так. Вы думаете, врачи так делают? Или адвокаты? Нет, они совершенствуются в свое личное время и за свои личные средства. Они тратят значительную часть своего личного времени на чтение тематических журналов. Они идут в ногу со временем. И вы должны делать также. Отношения между вами и вашем работодателем четко прописаны в контракте. Кратко – они вам платят, вы делаете свою работу хорошо.
Профессионалы отвечают за свой код. Они не выпускают код до тех пор, пока он не работает. Только подумайте об этом. Как вы можете считать себя профессионалом, если вы собираетесь выпустить код, в котором не уверены? Профессионалы ожидают, что тестеры не найдут ошибок вообще, потому что они сами очень хорошо протестировали код перед помещением. Конечно же, тестеры что-то найдут, ведь никто не совершенен. Но профессиональное стремление – делать так, чтобы им было нечего находить.
Профессионалы работают в команде. Они берут ответственность за результат всей команды, а не только за свою часть. Они помогают друг другу, обучают друг друга и обучаются друг у друга, и прикрывают друг друга в случае чего. Если у кого-то в команде проблемы, остальные приходят на помощь, зная, что в следующий раз на его месте могут оказаться они сами.
Профессионалы не приемлют длинных списков ошибок. Огромный список ошибок – это трагедия беспомощности. Действительно, в большинстве проектов необходимость системы трекинга ошибок – симптом небрежности. Только очень большие проекты должны иметь столь большие списки ошибок, что без автоматизации никак не обойтись.
Профессионалы не создают хаоса. Они гордятся своей квалификацией. Они поддерживают код чистым, хорошо структурированным и легко читаемым. Они следуют стандартам и общепринятым практикам. Они никогда не суетятся. Представьте, что вы в состоянии клинической смерти парите над своим телом, над которым работает кардиохирург. У хирурга очень жесткое ограничение времени – он должен успеть все сделать до того, как насос системы жизнеобеспечения не повредит вам слишком много клеток крови. Как бы вы хотели, чтобы он действовал? Хотели бы вы, чтобы он вел себя как типичный разработчик, суетясь и сея хаос? Хотели бы вы услышать «Я исправлю это в следующий раз»? Или бы вы хотели, чтобы он был сдержанным и спокойно делал свою работу как можно лучше? Вы предпочтете хаос или профессионализм?
Профессионалы ответственны. Они отвечают за свою карьеру. Они отвечают за свой код. Они отвечают за уровень своей квалификации. Они не нарушают своих принципов под давлением дедлайна. И даже наоборот – под сильным давлением они лишь еще сильнее придерживаются правил, зная, что именно так – правильно.
Автор оригинала - Uncle Bob