Святой Грааль разработки ПО
ноября 27, 2011 | Published in Уголок философа | 4 Comments
В бесчисленных священных войнах где пролито и еще будет пролито множество крови и коммитов все и каждый ищет святой Грааль — идеальную практику, эталон к которому необходимо стремиться.
Многие люди заболевают перфекционизмом — зацикленностью на поиске святого Грааля в чем-либо чем они занимаются. Пока пациенты ищут святой Грааль другие — менее подвержены воздействию перфекционизма разработчики пишут код и зарабатывают деньги.
Можно бесконечно долго сидеть и изобретать совершенную архитектуру или несколько часов придумывать идеальное название для метода или функции, но вам платят не за пустые размышления и не за глупо потраченное время, а за результат.Всегда необходимо видеть реальную причину. Вы пишите код не для того, чтобы прокачаться, стать программистом 80 уровня и получить артефакт «клавиатура дракона», но потому, что вы зарабатываете деньги. Клиентам вообще наплевать как и что там будет работать внутри, главное их требование — правильная работа бизнес-конвейера.
Желание признания других разработчиков и боязнь непризнания — еще одна причина возникновения перфекционизма. Вам нужно понимать, что программистов имена которых у всех на слуху — единицы, ну может несколько десятков, еще 20% программистов можно назвать хорошими специалистами, а остальные — копрокодеры. Копрокодеры они не от того, что пишут плохой код, а от того, что они больны неуверенностью в себе. В конце концов разработка ПО — это такая же работа как и любая другая. Программисты — не особенные люди, если программиста ударить — появится шишка, а если сильнее — пойдет кровь. Продукт и смысл любой работы — получении прибыли за какие-то свои действия.
Работа = деньги
OpenSource и все-такое — это побочные явления профессии программиста, которые в конце-концов направлены опять-таки на заработок денег. кто-то посвящает этому все время и живет на дотациях заинтересованных спонсоров, кто-то планирует позже сделать платную версию проекта, а кто-то просто делится тем, что ему не жалко, чтобы сообщество поддержало его изобретение и помогло сделать его лучше. OpenSource — это не какая-то добродетель а некий взаимовыгодный обмен мозгами.
Выходя из утверждения работа = деньги можно прийти к выводу, что чем больше денег ты зарабатываешь тем лучше, однако это не всегда так. Кому-то важнее деньги, а кому-то комфорт. Каждый выбирает свое. Лично я заинтересован в работе над интересными проектами в дружной атмосфере, но это не значит, что я готов работать за копейки. Каждому труду есть цена и каждый человек за свой труд должен получать адекватный проделанной работе кусок пирога. Много денег не бывает и много никто не заплатит, разве что дурак какой-то. Работодатель должен платить в соответствии с производительностью рабочего. Чем лучше ты программист — тем больше у тебя производительность и тем больше ты получаешь. Арифметика простая, хороший программист — это такой, который больше зарабатывает, а не тот, который следует всем практикам Мартина Фаулера, покрывает код на 200% спеками и тестами и находит время поддерживать несколько open-source проектов.
Желание стать совершенным программистом в край глупо. Правильное желание — иметь отличную в плане коллектива и проектов работу с достойной твоего вклада оплатой.
Если тебя не тошнит от работы и ты чувствуешь, что получаешь ровно столько, сколько заслуживаешь, поздравляю! Ты нашел золотой Грааль!
— Мое субъективное мнение.
ноября 27, 2011 at 19:37 (#)
Крутые слова.
ноября 28, 2011 at 11:52 (#)
О, да. Автор забыл о качестве. Если придерживаться этой логике получаются функции регистрации на 600 строк(на текущей работе есть такая), адовый дубляж, детские баги и прочая хуета, которая выносит мозг ежедневно.
Хороший программист — это тот, кто умеет писать качественный код(где можно/не критично — забыдлокодить, а где надо — покрыть код хоть на 300% тестами и спеками) и зарабатывать деньги.
ПС. Все вышеописанное справедливо для одноразовых проектов — написал и забыл.
ноября 28, 2011 at 11:56 (#)
Ошибся. Все написанное в статье справедливо для одноразовых проектов — написал и забыл.
ноября 28, 2011 at 22:50 (#)
Dr0ID, смысл поста был не в том, чтобы сказать «Пишите ужасный код», но в том, что святой Грааль — это хорошая работа, а не какие-то техники по написанию кода. Разумеется, можно долго оттачивать мастерство того, как три строки кода превратить в 2 и как добиться большей производительности на 5%, но все это мелочи и часто вредные мелочи. Код должен удовлетворять спецификации — делать то, чего от него хотят. Мастерство приходит со временем от практики, чтения книг, статей, общения с людьми, но нельзя фанатиком хороших практик и потакать своему перфекционизму.