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