19.07.2022

Программист-перфекционист: хорошо это или плохо?

Сергей Немчинский
5 минут просмотра
Программист-перфекционист: хорошо это или плохо?

Быть перфекционистом плохо. Как показывает практика, перфекционист – это человек, которые просто боится провала. Человек, который оттягивает момент сдачи работы до последнего, пытаясь довести проект до идеальности. Но вместе с вылизанным кодом проваливаются все сроки дачи. А дедлайны в бизнесе крайне важны.

Лучше сделать плохо, но сейчас, чем хорошо, но никогда

Сделать полностью идеально не получится никогда. В моей практики был случай, когда человек, явный перфекционист, старался делать все максимально хорошо. Так вот он категорически не подходил для работы, поскольку проваливал все возможные сроки. 

Такие столпы ИТ-индустрии, как Мартин Фаулер, Роберт Мартин придерживаются мысли, что нужно останавливаться, когда код достиг достаточного качестве, и не нужно его доводить до идеальности.

Что значит «достаточное качество»?

Если фича, которую вы делаете, уже может работать и она нужна людям, значит ее уже можно использоваться. По большому счету бизнесу никогда не нужен идеальный вариант. Бизнесу нужен вариант, который удовлетворяет его потребностям на данный момент. Потребности могут измениться в будущем, но сейчас бизнесу важно получить разрабатываемую вещь (фичу, подсистему, интеграцию, функционал или что-то еще) как можно быстрее в приемлемом для работы качестве.

Я точно знаю, что найдутся люди, которые скажут, что нужно делать идеально, иначе зачем тогда вообще начинать. Я вам вот что скажу: вы развлекаетесь за деньги заказчика. Точно также как программисты, которые хотят попасть на «интересный» проект с новыми фреймворками и новыми языками программирования – это тоже развлечения за деньги заказчика. Потому что новые фреймворки и новые языки – это все риски, риски, риски, что в финале может привести к провалу проекта. Аналогично и здесь. Лучше выпустить на 80% хороший продукт, который на 80% покрывает необходимые потребности бизнеса, а остальное допиливать потом, когда это понадобится (на самом деле может и не понадобиться, поскольку любой бизнес меняется быстро).

Вместо того, чтобы выпустить проект вовремя и покрыть потребности бизнеса, вы тянете и тянете. В это время бизнес уже поменялся, вам озвучивают другие потребности. Вы приходите к выводу, что заказчик чудак и не знает, что ему надо – сначала просил одно, теперь другое. Вы просто настолько затянули, что теперь бизнесу нужно что-то совершенно другое.

Задача программиста — выпустить в оговоренные сроки проект достаточного качества

Чтобы понимать, что такое «достаточное качество» конкретно для вашего проекта, нужно понимать бизнес велью – ценность того, что вы производите. Об этом я очень подробно рассказывал в видео «Внутренний маркетинг для программистов». В конечном итоге все сводится именно к этому – вы работаете для бизнеса. Вы же не Микеланджело, который позволяет себе создавать нетленные произведения. Ваша работа не останется на века, вы просто покрываете потребности бизнеса. Хороший программистам не тот, кто пишет идеальный код, а тот, кто умеет быть ориентированным на бизнес.

Поэтому я считаю, что перфекционизм – это зло. Делать нужно достаточного качества.