Убить в себе перфекциониста 15/02/08
В искусстве под перфекционизмом понимается стремление к предельному совершенству художественного творчества. Не знаю на сколько перфекционизм распространен в искусстве, но среди программистов он часто является настоящей проблемой.
Для одних проблема совершенства в своей работе покажется надуманной, другие уже успешно решили ее для себя. Но ведь не зря же говорят, что "главное вовремя отобрать программу у программиста иначе она ни когда не будет закончена".
Кто встречается с перфекционизмом? Либо руководители - перфекционизм у подчиненных, либо непосредственно разработчики. Ниже все будет рассматриваться с двух этих позиций.
Является ли перфекционизм проблемой? На мой взгляд да, потому что для руководителя:
- программист что-то бесконечно долго делает, а новая функциональность не появляется;
- время разработки затягивается, потому что программист создает с нуля лучшую архитектуру на супер современных технологиях.
Для разработчика:
- процесс улучшения и совершенствования может продолжаться очень долго;
- очень долго сам создатель может оставаться недовольным своей работой;
- как и в случае с собирателями и коллекционерами - человек намеренно останавливает себя в развитии и начинает ходить по кругу.
А нужно ли с ним бороться, вообще? Да, нужно. Для руководителя - чтобы вовремя получить работающий продукт. Для разработчика - чтобы повысить самооценку и чувство удовлетворенности от работы, для того чтобы быстрее подняться на одну ступеньку выше и уже сверху посмотреть на задачу.
Как и кому бороться? Руководителю: точно контролировать чем в данный момент занимается программист; "бить по рукам", когда делаются попытки делать не нужные в данный момент вещи; жестко расставлять и контролировать приоритеты задача. Разработчику: расставлять приоритеты себе самому: сначала делать самые не интересные и важные задачи (как и везде), а только потом браться за "десерт"; писать минимум кода, необходимого для покрытия функционала.
Проблемы. Для руководителя важно помнить что, подчиненные не являются его врагами - они по сути всего лишь заложники "гипертрофированного чувства прекрасного". Так же важно помнить что борясь за время и сроки не стоит забывать о качестве выпускаемого продукта. В каждом человеке существует внутренний порог качества, и если качество результирующего продукта будет ниже внутренней планки качества будет расти внутренне недовольство сотрудников. Таким образом главной задачей руководителя является выявление минимального внутреннего порога качества сотрудников и поддержание качества продукта на таком уровне. В особо тяжелых случаях следует обсуждать и разъяснять сотрудникам, почему текущее качество продукта является нормальным - хорошо если это будет на конкретных примерах. Для разработчика: важно не переусердствовать с рефакторингом и постоянно помнить что для клиента важнее функциональность и как можно скорее.
Вывод. Только жесткие рамки времени и денег могут отрезвить как программита так и его руководителя. Но как и везде - здесь главное не переусердствовать.
динамично изложил :-) я тоже думал над этой же проблемой, пришёл к тем же выводам…