?

Log in

No account? Create an account

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
Ну по своему опыту. Раньше без своего набора сетевиков, можно было здорово грохнутся по срокам, да еще и вылезти за пределы требований по ТЗ. Сейчас это решается легко и непринужденно навешивая на заранее натасканного в том же бусте человека, с весьма средними, скажем так, "характеристиками", и собсно такой же зарплатой. Да и то, буквально с 10 лет назад, гаму онлайн, без тимы как минимум в пять сетевиков со своим лидом, выпустить можно было, только вот работоспособность ее была мягко говоря под вопросом. Не говоря уже про эффективность, качество, удобство и так далее. Сейчас даже очень массовые - 2-3 сетевика и лады. А то и один, плюс, который еще потом чем нить побочным занимается. И все на ять.

Понятно, сторонние проекты тоже можно было использовать, но там тоже нюансы бывали. Лично так с враппером Enet'а наша тима лажанулась. Там при формировании пакета на отправку, он дублировался во враппере, а потом еще дублировался в самом Enetе (пока код весь не разобрали, понять не могли, почему у нас запредельная нагрузка по памяти пошла на сервере особенно в сетевом подузле).

  • 1