Нашел довольно интересный пост о Психологическом портрете программиста(спасибо Саше Кондуфорову). Пост начинается с народной мудрости(ух, и мудрый же этот народ!):
Если ты сделаешь что-то быстро, но плохо, никто не вспомнит, что ты сделал это быстро. Но все скажут, что ты сделал это плохо. Если ты сделаешь что-либо медленно, но хорошо, никто потом не вспомнит, что ты делал это медленно. Но все потом скажут, что ты сделал это хорошо.
Какой нужно сделать вывод? Что? Писать хороший код? С пляжа! Быстро писать надо, а потому криво. Почему? Потому что бизнес не ждет. Это стремительно развивающаяся среда, не терпящая задержек. Именно поэтому большинство коммерчески успешных проектов, убоги с технической точки зрения. Заказчика никогда не будут интересовать архитектура, стиль написания кода или гибкость вашего решения (речь идет о B2C нише). Заказчика всегда интересуют сроки сдачи проекта, реже внешний вид, еще реже производительность или масштабируемость проекта.
Далее автор рассматривает четыре типа программистов:
- первые, что делают все быстро и хорошо
- вторые, что делают все быстро и плохо
- третьи, что делают все медленно и хорошо
- и четвертые, которые делают все медленно и плохо.
Последних отбрасываем за их бесполезностью для человечества. О первых автор метко отмечает:
Потому, что люди, которые могут делать работу быстро и хорошо, стремительно совершают восхождение по карьерной лестнице и становятся либо руководителями, либо открывают свой бизнес. Вероятность встретить их на рядовых программистских должностях мизерна.
Поэтому, если вы думаете, что наняли лучшего программиста (за N или даже К тысяц долларов в месяц). То поспешу вас разочаровать - лучший программист давно нанял вас.
Остаются два типа, наиболее распространенных типа(по мнению автора) программистов: те, что делают работу быстро и плохо и те, что делают все медленно, но хорошо. О каждом из них довольно толково написано, советую почитать. Из своего опыта могу сказать, что в каждом проекте есть такой период, когда нужно наложить написать кучу вонючего кода. Для этой задачи лучше всего подойдут быстро-плохо программисты. Но в то же время, обязательно наступит момент, когда заказчик спрашивает своего быстро-плохо программиста: "сделай мне паровую микроволновку инженера Гарина на бобовых косточках". На что программист с полной уверенностью заявляет - это невозможно (кстати, отсюда родился миф о "лени" программистов, мол они все могут, вот только ленятся). К сожалению, данного сорта программист не может построить такую систему. Для таких задач как раз и нужен программист медленно-быстро. Поэтому "смешанные" команды наиболее эффективны в нашей объективно-жестокой экономической действительности. Главное - уметь правильно распределять задачи.