Комментарии 44
Идиоматическое выражение "The devil is in details" означает лишь, что мелочи имеют большое значение.
Хороший не столько следит за выполнением работ, сколько перед началом работ составляет вменяемый план работ и действия на случаи отклонения от этого плана. Если все внезапно пошло не так, и надо срочно придумывать, что делать — это факап PM'а.
В реальности, конечно, все чуть сложнее и в небольших конторах с т.з. руководства часто PM еще и продажник, тестер, немного тимлид и еще и курьер по совместителству.
Если не перевру, bobuk вообще предлагал приходить раньше самого первого разраба команды и у ходить позже последнего. Но это как-то перебор.
«Приходить раньше первого и уходить после последнего» — это уже что-то из серии «Здесь мерилом работы считают усталость» вместо «Work smart, not hard». Любой член команды должен работать над проектом столько, сколько требуется для его выполнения. Соответственно, пока проект идет по графику — PM уделяет ему столько времени, сколько для этого требуется. Если что-то идет не так — он, естественно, должен потратить больше времени. Но не потому, «чтобы разработчикам не было обидно», а чтобы понять, откуда возникли проблемы, разработать план решения и его реализовать. А то и дизайнера надо заставлять сверхурочно сидеть, несмотря на то, что его работа уже месяц как закончена — иначе программисты обижаются.
C точки зрения человека, который пытается быть хорошим PM (и с т.з. PMBoK) п.6 некорректен, а точнее — описывает плохого PM. Хороший не столько следит за выполнением работ, сколько перед началом работ составляет вменяемый план работ и действия на случаи отклонения от этого плана.
Опасное заблужение именно для wannabe-пиэма. PM, конечно же должен составить план, но предполагать, что там прописаны действия на все случаи жизни — опасная наивность. Более того, изменения первоначального плана будут обязательно.
В большинстве компаний PM должен держать руку на пульсе ежедневно и именно что быть готовым импровизировать на ходу
Спасибо!
Кто-то выполняет задачи быстро, а кому-то нужно время подумать.
«Я смотрю, ты уже давно не пишешь код»
Я бы добавил, что стоит оценивать не столько сам факт или время работы, сколько результат за некоторое достаточно большое время.
Потому что результат зависит не от одного действия, а от их совокупности. Работать 9 часов с перерывами обычно более продуктивно, чем без них.
Обращайте внимание не на скорость работы, а на способность «предсказывать», сколько времени потребуется на выполнение задачи. Главное – это то, насколько объективно коллега оценивает свои возможности.
Это не всегда работает, надо учитывать контекст. Если программисту дают задачу исправить ошибку в той части приложения, которой он до этого никогда не занимался, он вряд ли сможет дать правильную оценку, разве что наугад сказать.
А иногда бывает дают задачу "добавить еще один фильтр для поиска", скажешь "ну, уйдет дня три на изучение всего что там написано, ну и +- пол дня на реализацию", а тебе в ответ "да там всего-то одно поле ввода добавить" и ведь никто не имеет представления о том, как внутри устроен поиск, как устроена БД, как устроена программная часть...
У меня вот сейчас примерно такая же ситуация. Один человек пилил проект (очень критичный) год, за неделю до отпуска решили этот проект запустить, запустили, оказалось что там, уж простите, нихуя толком не работает, а мне сейчас это допиливать… И многие думают "да чё там поле ввода добавить", при том, что ни дающие задачи, ни я — не имеют совершенно никакого представления о том как все это работает, и то, какой там говнокод...
И берёшь задачу с чувством, что день-то точно потратишь пока разберёшься куда впилить, и возможно ли вообще, или придётся переписывать килобайты кода…
Ан-нет, оказывается тестами эта часть была покрыта хорошо, open-closed соблюдён, задел на расширяемость уже есть. один интерфейсик заимплементил за часик, и всё само зафурчало. Красота.
Хорошо написано! Спасибо!
Нормальный (сознательно не говорю — хороший) программист обязан знать курс «Архитектура ЭВМ», «Операционные системы», «Основы вычислительных сетей», «Базы данных», и хорошо бы еще теорию компиляторов.
Иначе это не разработчик, а непонятно кто, с кашей в голове.
Senior приходит с опытом практического проектирования, работы в команде, знаниями среды, фреймфорков, систем контроля версий. А также способностью адекватно взаимодействовать с менджментом (напрямую, а не через другого Senior'а). Соответсвенно Senior'а подготовить в университете увы никак не получится.
Зависит от того, кто будет автором статьи.
Много лет назад я работала в филиале одной крупной международной компании. Наш отдел делал программный продукт, который на то время был самым сильным в своей области. Его интерфейс был чуть лучше текстового, а опции чуть более продвинутые, чем базовые, включались setenv-ами. Этот интерфейс возник лет за десять до описываемых событий, когда один исследователь решил поковыряться в этой области, и с тех пор не сильно изменился.
Однажды начальству пришло в голову, что неплохо бы сделать нормальный GUI. Эту работу поручили мне. До этого я интерфейсы никогда не разрабатывала. Зато я была прекрасно знакома с программой, в т. ч. как пользователь, и у меня была сильная вера в свои силы.
Я составила список опций базовых/ продвинутых/ очень продвинутых. Опции искала grep-ом в коде, нашла более 200, опросила разработчиков компонент по поводу незнакомых. Долго рисовала эскизы GUI, придумывала визуализацию логов. Потом я пыталась получить мнение членов отдела о моем проекте GUI.
Где-то через неделю после напряженной работы начальник спросил меня:
— Как, ты еще не написала ни строчки кода?
Так вот, я потратил вечера нескольких месяцев, чтобы написать только скриптовую часть, на полгода вообще эту задачу выбросил из головы, и только через полгода я засел за теорию, планирование ТЗ и функционала панели. Обрисовал несколько блокнотов, и только этой зимой сел за RoR и начал писать саму панель управления.
Фактически этот список не только тестировщику или программисту подходит, а вообще любому IT спецу — к примеру под Админа вообще с минимальными правками :)
Спасибо за статью.
Мой PM делает почти все эти пункты))
«Молчание – золото»: 13 вещей, которые не стоит говорить разработчикам и тестировщикам