psilonsk


Блог об управлении проектами


Previous Entry Share Next Entry
Заметки на бегу: о важных критериях оценки программистов
psilonsk


Как оценить эффективность (брррррр) программиста, какие его качества важны для успеха проекта и, главное, как на них должен влиять менеджер?

Я могу выделить восемь ключевых качеств, позволяющих оценить программиста.

С1.Умение понять задачу - способность программиста получить на вход требование и на выходе продемонстрировать понимание того, как он это требование будет реализовывать.
Задача менеджера: обеспечить поступление качественных требований.

С2. Способность программиста верно оценивать время, которое нужно на решение задачи, и укладываться в эту оценку. Не секрет, что начинающие или некомпетентные программисты склонны к оптимистичным оценкам трудоемкости.
Задача менеджера: уменьшить итерации разработки и регулярно вместе с программистом разбирать ситуации, когда оценки оказались точными и когда они были неточными. На достаточно длительном интервале и при условии качественных требований это помогает.

С3. Способность задавать вопросы (при разумном уровне самостоятельности) - программист должен коммуницировать с коллегами, не стесняясь и не боясь спрашивать их совета по сложным для него вопросам.
Задача менеджера: поддерживать в команде культуру общения, поощрять обсуждение задач разных типов.

С4. Умение писать качественный код. Это, пожалуй, самый сложный критерий. Если вкратце, то чем меньше критических ошибок допускает программист, тем лучше. ) При этом требования должны быть выполнены, а необходимые тесты пройдены успешно.
Задача менеджера: давать программисту возможность учиться и решать все более сложные задачи, приобретая необходимый опыт.

С5. Умение программиста оперировать сложными абстракциями.
Обычные люди оперируют конкретными понятиями и простыми абстракциями, поэтому могут решать только простые, очень конкретные задачи. Продвинутые люди умеют абстрагироваться от несущественного и видеть суть проблемы. Для них (до определенных разумных пределов) не важен ни инструмент, ни алгоритмы решения, ни технологические особенности. Поэтому они умеют решать задачи быстрее и дешевле, а их решения эстетически прекрасны.
Задача менеджера: давать программисту соответствующие задачи и контролировать успешность результата.

С6. Умение программиста разбираться в чужом коде - часто приходится заниматься развитием и поддержкой того, что написано другими.
Задача менеджера: давать программисту соответствующие задачи
и контролировать успешность результата.

C7. Мнение коллег о программисте как о специалисте. Это своего рода page rank - показатель, позволяющий ранжировать программистов в команде и за ее пределами. Если много программистов считают коллегу хорошим спецом - это прекрасно его характеризует (особенно при прочих высоких показателях).
Задача менеджера: не забыть интересоваться этим вопросом.

С8. Стабильность мотивированности - не так плох уставший и разочаровавшийся в работе и задачах программист, как плохо, если он в таком состоянии длительное время.
Задача менеджера: быть менеджером. )

Что добавить можете?



promo psilonsk february 12, 2015 18:07 17
Buy for 100 tokens
Ранее в сериале: История первая: договор Ариадны История вторая: лыжи, смоктульки и чаевые История третья: мертвец и розетка ​*** — Послушай, Леша, послушай меня, милый мой друг. Ты же менеджер проектов, так? Ты же не дебил, правильно? Я тебе на пальцах объясняю, а ты понять не можешь.…

  • 1
умение почаще мыться

Edited at 2016-07-07 06:45 am (UTC)

Отличные критерии для программиста ростом в один метр и весом в один килограмм. Если же уйти от эталонных образцов, то окажется, что "программист", как и "менеджер", необычайно многогранное понятие.

Даже если понимать под "программистом" только человека, который должен писать код (это хорошо если 40% от всех "программистов"), то для банка, софтверной компании, системного интегратора, производства и мелкой лавочки нужны совершенно разные программисты (не сколько по профессиональным знаниям, сколько по личным качествам).

Добавлю от себя по второму абзацу.

Например, в том же банковском секторе - это скорее важен инфобез и надежность с точностью вне зависимости от потребляемых ресурсов. В том же геймдеве - важно умение выжать из современного железа максимум, с минимальными затратами производительности, для чего используются многоуровневые фейки, упрощения, и так далее. И это действительно накладывает различный подход к написанию кода. Который плотно втромбовывается в подкорку. Как то так.

Это требования не к программеру, а к тимлиду

щас уже такая конкуренция, что к программеру предъявляются такие же требования, как к тимлиду лет семь назад

Не забывать (не лениться) документировать код, хотя это должно входить в С4.

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

Умение находить оптимальные решения для бизнес задач, например, за счёт использования более подходящих технологий или за счёт корректировки ТЗ.

>>за счёт корректировки ТЗ
Имеется в виду, когда заказчик предлагает давайте сделаем выпадающее окно слева, а разработчик понимает, что его делать сложно и долго, и предлагает перенести его вверх.
Если заказчик согласился, то программист молодец =)

Все верно, все так... Для меня весь этот набор упакован в одну упрощенную формулировку: "Хороший программист не тот кто пишет хороший код, а тот кто решает бизнес-задачу" И задача менеджера в этом случае качественно донести эту самую бизнес-задачу до программиста, обеспечить его всем необходимым для выполнения и контролировать результат в достаточной мере.

интересы бизнеса, да?

У нас все три программиста не попадают ни под один критерий.
Говно, которое они делают, мне их начальники говном называть запрещают, но менее говном оно не становится.

"всё три программиста" :) И, особенно, "начальники" во множественном числе. Гыгы.

Edited at 2016-07-07 10:33 am (UTC)

- Умение работать в команде. Немного пересекается с мнением коллег, но не очень.
- Понимание проектной работы. Во фрилансе разработчик может сразу кидаться реализовывать замечание клиента и это ценится, а на FixedPrice проекте за это голову оторвут.
- С2 не всегда так просто формулируются. У меня был разработчик, который всегда переоценивал свои силы ровно в 2 раза. Так как все оценки проходили через меня, то вообще никаких проблем не было. Все оценки были идеально точными. Такой точности никогда не видел.


Практически все эти требования (кроме С4), а главное -- С1, полностью относятся к тому самому менеджеру.

  • 1
?

Log in

No account? Create an account