На моём пути в программировании я встречал множество странных противников и странных товарищей по команде. Мне довелось повстречать как минимум пять разных «воинов кода». Некоторые из этих талантливых товарищей помогали продвигать разработку вперёд, а другие, казалось, мешали всем моим планам.
Однако всем им найдётся место в «пантеоне» разработки программного обеспечения. Если вы не сможете скоординировать эти разные стили программистов, то обнаружите, что ваш проект занимает слишком много времени, недостаточно стабилен или содержит код, который трудно читать.
Тип быстрого исправления
Чёрт побери, код не идеален, но главное, чтобы он работал!
Такой человек — основа вашей компании. Когда что-то идёт не так, он быстро это латает и в некоторой степени гарантирует, что это больше не сломается. Конечно, его не волнует, как это работает, насколько это удобно или другие мелочи, но он решит проблему вместо того, чтобы нести кучу чепухи и тратить время. Лучший способ использовать такого сотрудника: дать ему задачу для решения, а затем уйти.
Исправил!
Тип перфекциониста с ОКР
Что вы хотите сделать с моим кодом?!
Такому программисту плевать на ваши сроки и бюджет; по сравнению с элегантностью кода это мелочи. Когда вы наконец получите готовый результат, вам не нужно делать ничего, кроме как закоммитить этот идеальный код, сияющий славой чести. Это чрезвычайно эффективно, потому что всё, что вы сделаете, лишь разрушит совершенство кода. Только они имеют право его изменять.
Я недостоин.
Тип антипрограммиста
Я программист, но я не пишу код, чёрт побери!
В их мире есть только одна истина: писать код — плохо. Если вам приходится его писать, значит, вы уже встали на неверный путь. Кто-то другой уже сделал работу, так что просто используйте его код. Они расскажут вам, насколько быстра на самом деле такая разработка, хотя иногда они тратят столько же или даже больше времени, чем другие программисты, но когда вы наконец получите результат, то обнаружите, что это всего лишь 20 строк кода — лаконичных и читаемых. Возможно, он недостаточно быстр, недостаточно эффективен или несовместим с будущими версиями, но это минимальный объём работы.
Что ты, чёрт возьми, делаешь!
Тип дилетанта
Что ещё вам нужно? Оно ведь уже работает, разве нет?
Такой человек совершенно не заботится о качестве кода; он считает, что это чья-то чужая работа. Он быстро выполняет поставленную задачу. Вам может не нравиться, как он работает, и другие программисты ненавидят таких людей, но руководители и клиенты его любят. Он принесёт вам много боли в вашей будущей работе. И всё же он всегда умудряется закончить вовремя, и вы не можете его отругать (как бы сильно ни хотели).
С этой стороны уже всё готово!
Тип теоретика
Ладно, это сработает, но на самом деле есть вариант получше.
Этот парень больше интересуется вариантами, чем тем, что нужно сделать. Он тратит 80% времени, уставившись в компьютер и размышляя о способах выполнения задачи, 15% времени жалуется на неразумные сроки, 4% времени выбирает между разными подходами и только 1% времени пишет код. Когда вы получаете окончательный результат, вы часто слышите ещё и такую жалобу: «Если бы у меня было время, я бы обязательно сделал лучше».
И в этом разница между 0 и 1!
А вы какой тип?
Лично я считаю, что я отношусь к типу перфекциониста. А вы к какому типу относитесь? Или, может быть, вы думаете, что существуют другие типы программистов, о которых не упомянуто в этой статье? Оставляйте комментарии ниже, и я обновлю статью.
Эта статья былаЛай Синьтаопереведена изблога Стивена Беннера