psilonsk (psilonsk) wrote,
psilonsk
psilonsk

Category:

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



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

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

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

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

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

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

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

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

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

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

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


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

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 39 comments