Когда ты начинаешь изучать программирование, ты знаешь, каким должен быть идеальный программист, и ты уверен, что ты таким будешь. Ты видишь ошибки программистов старше и опытнее, и совершенно уверен, что ты никогда их не повторишь.
Когда ты устроился в компанию на позицию Junior Developer, ты смотришь вокруг и видишь, с какой лёгкостью старшие товарищи забивают на шаблоны и пишут два одинаковых класса с разными типами переменных. Как они хардодят размеры вьюшек в коде. Как они читают хабр на работе. И ты точно знаешь, что когда вырастешь до Senior Developer-а, ты будешь лучше, надёжнее, ответственнее, любой блок твоего кода можно будет показывать потомкам.
Ты уже три года проработал программистом, ты (возможно) всё более и более пристально смотришь в сторону проджект менеджмента. Твой ПМ уже не царь, и не бог, и его работа не кажется тебе сложной и непонятной. Ты видишь, что работаешь намного больше его, а он ленится сделать тебе Code Review и похвалить за оригинальную интеграцию сторонней библиотеки. Он даже не смотрит на твой идеальный код в сложнейшей стыковке кривого API и мутной бизнес-логики. И ты точно знаешь, что, когда тебе улыбнётся удача руководить проектом, ты всё будешь делать лучше. Ты будешь бережнее следить за своими девелоперами, ревьювить каждый их класс, хвалить за удачные решения и порицать за очевидные ошибки.
Если Вам это звучит знакомо, читайте дальше. Давно хотел написать что-либо подобное, но окончательно заставил случай, когда один довольно опытный программер в нашей компании после примерно года работы официально заявил, что он вообще не представляет роли проджект-менеджера на проекте. Не моём, но близком мне, и я знал что там работает хороший опытный ПМ. Проблема глобальна, нужно работать с людьми в этом направлении – добиваться того, чтобы каждый понимал роль другого и оказывал поддержку.
Ну что ж, начинаем:
ПМ, 8:30
(Звонок будильника) Боже, как же хочется поспать. Спать хочу! Почему так рано??? Блин, что я вчера делал? А, точно, звонил заказчик, сидел с ним весь вечер в скайпе… звонили в техподдержку какой-то компании, она на Pacific Coast, 11 часов разницы…
Нее, нифигааа, посплю ещё, работа не волк… пошли они все в… только будильник пере…
ПМ, 10:00
ААА, ффак, твою мать, опять сидеть до ночи… ну пусть кто хоть слово скажет – спрошу про деньги за вчерашний овертайм!
Девелопер, 11:30
Опять на работу опоздал, скотина. Почему я каждый день на работу к девяти прихожу, а этому что, всё можно?
ПМ, 11:30
Тааак, проверим-ка почту… блин, 46 писем на одном ящике и 18 на другом! И не лень им писать… тааак, поудаляем нотификейшны, просмотрим мелочь… 20, на которые нужно ответить. Ладно, часа за полтора одолеем…
Девелопер, 11:35
От же блин, пришёл на работу и сразу за свои письма… мало того что припёрся к обеду, так ещё и не подошёл… работка – письма писать, все они такие… хрен я сам скажу что работу всю сделал которую знал, а по остальному вопросы – кому в конце концов надо, мне или ему… он за это деньги получает. (открывает habrahabr.ru)
ПМ, 13:00
Фух, с перепиской покончено – слава богу. Ой, все ушли на обед… блин, завтра приду в 9. Ладно, с комадной посовещаемся после обеда (забивает митинг в аутлуке). Раскидаю пока таски в Джире
Девелопер, 13:59
(Вернулся с обеда) Ааа, 1 минута до митинга! Неужели нельзя планировать их с утра?? У нас вообще есть менеджмент?
ПМ, 14:06
(говорит) Всем привет!
Девелопер, 14:06
(думает) И тебе доброе утро, красная девица…
ПМ, 14:06
(думает) надо дать команде больше участия в жизни проекта. Я-то знаю как сделать архитектуру, уже делали пару лет назад, но пусть ребята выскажутся – мало ли всё изменилось, да и поучатся думать а не просто делать. (говорит) Вань, тут вот такой таск, как думаешь, как лучше сделать?
Девелопер, 14:07
(думает) ты ПМ – ты и думай. Я архитектуру сделаю, может ещё на письма ответить? А ты что будешь делать, код писать с тебя корона упадёт? (говорит) Не знаю…
ПМ, 14:07
Ну а ты подумай, клиенту нужны такие-то функции, как веб-сервисы будешь делать?
Девелопер, 14:08
(думает) Вот же ж прицепился… ладно, отвечу отцепного. (говорит) Ну вот можно сделать так… А вообще (воодушевляясь) тут одна технология есть, так это проще будет, вот у нас SOAP сейчас (следует объяснение, чем эта технология лучше той что используется сейчас).
ПМ, 14:13
(перебивает) Подожди, технология да, крутая, но сколько это займёт времени?
Дев, 14:13
(задумчиво) Нуу… дней 5, если получится может раньше, а может нет… а что?
ПМ, 14:14
(думает) неее, Джон в жизни не согласится… да и сделать-то всего один дополнительный сервис надо. (говорит) Не, знаешь что, давай просто по старинке сделаем.
Дев, 14:14
(возмущённо) это твоё решение или заказчика?
ПМ, 14:14
Моё.
Дев, 14:14
(хитрый вид) Может лучше спросишь у заказчика?
ПМ, 14:14
(думает) дааа, скажу фармацевту REST, WSDL и SOAP, он переведёт 5 дней в баксы, и можно забыть про проект… это как мне разницу между аспирином и парацетомолом. (вслух) Нет, давай всё же сделаем так, так быстрее.
Дев, 14:15
(думает) Ну и зачем ты спрашивал моё мнение, всё равно поступили как ты хочешь. (вслух) ну давай, мне всё равно.
Дев, 15:00
(после митинга) ещё один бесполезный митинг, сколько бы кода успел написать…
ПМ, 15:00
Фух, отстрелялся… Середина дня самая ненапряжная, митинги с заказчиками начнутся после 4-х, дай пока хабр почитаю (открывает habrahabr.ru)
Дев, 15:10
Блин, он ещё и хабр засел читать в рабочее время! Нет бы сам сел что попрограммил!
ПМ, 16:00
Окей, через 15 минут митинг с руководством компании. Ай, чёрт, новая квота пришла, нужно обрабатывать… (в скайпе) Вань, есть время свободное на эстимэйт?
Дев, 16:01
(думает) Бля, на хабр у тебя время есть, а на эстимэйт нету! Тасков навалом, только сел писать! (вслух) Ладно, сделаю…
ПМ, 16:01
(думает) Фух, чудо, что такой человек есть, всегда подстрахует. Надо похвалить перед руководством. Хотя на митинге что-то чушь порол… ладно, со всеми бывает, может не дала…
ПМ, 16:30
(звонит телефон, глядя на номер) Проклятые американцы… что им не спится! От же ж в привычку вошло на мобилу звонить! Ладно, выйду поговорю.
Дев, 16:30
О, пошёл по телефону трепаться.
ПМ, 16:35
(закончил разговор, думает, коверкая) “Vasily, please stay later today. We have urgency and emergency. Appreciate all your help!” Бля, а когда вам что-то не срочное нужно было! Цените вы… деньги вы свои цените!
ПМ, 16:45
Блиииин, это ж я Светку обещал сегодня в кафе сводить, уже ж и столик заказал… а на работе минимум до девяти… (убегает звонить)
Дев, 16:46
О, опять трепаться! За что ему вообще платят?
Дев, 18:00
(думает) Фух, досидел, отчаливаю. Аривидерчи, пойду пить пиво с пацанами, в бильярд поиграем! Ну я и забожил кода сегодня, аж приятно, не впустую день прошёл!
ПМ, 21:23
(думает) Oh crap, what’s a fucken day! Seems like… Бля, уже думать начинаю по-английски. Ещё один день в жопу… Светка явно обиделась, на выходных с меня ресторан и извинения… пацаны уже бухие, с ними уже неинтересно будет… поеду домой. Как долго, как хооолодно… Эх, лучше бы здесь кроватки поставили, всё равно утром на работу… Блин, весь день бегал, ничего не успел толком, ладно, всё завтра, всё завтра, спать…
Ну вот как-то так, или близко к этому. Слова программера пишу не по наслышке, сам так думал долгое время. И сейчас бывает плохо думаю о топ менеджерах, и где-то глубоко в душе уверен что управлял бы компанией лучше… Такова, видимо, человеческая природа – требует всё познавать на себе.
Многабукаф получилось, но я всё же резюмирую всё что сказано выше и попытаюсь дать два конкретных совета. Можете их не читать.
1) Привлекайте девелоперов к ответственности. Не за уголовные преступления, а в проекте. Чаще давайте им на откуп какие-нибудь решения, лишь мониторя и корректируя их исполнение. Не забывайте называть их красивыми словами – если вы обратитесь “Вань, ты зарекомендовал себя как хороший архитектор, нужен совет как здесь лучше сделать”, Ваня будет чувствовать себя архитектором а не простым исполнителем, и, что самое удивительное, вполне вероятно что станет им быстрее чем вы думаете.
Не думайте что вы этим задеваете своё самолюбие – у вас ништяков хватает, вы итак ПМ, а человеку будет как минимум очень приятно.
2) Давайте своим девелоперам на обучение джуниоров вместо того, чтобы самим заниматься их обучением. Во-первых, они побудут в вашей шкуре. Во-вторых, человек, который кого-то чему-то учит, сам быстро учится. В частности, понимать того, кто его учит.
Когда ты устроился в компанию на позицию Junior Developer, ты смотришь вокруг и видишь, с какой лёгкостью старшие товарищи забивают на шаблоны и пишут два одинаковых класса с разными типами переменных. Как они хардодят размеры вьюшек в коде. Как они читают хабр на работе. И ты точно знаешь, что когда вырастешь до Senior Developer-а, ты будешь лучше, надёжнее, ответственнее, любой блок твоего кода можно будет показывать потомкам.
Ты уже три года проработал программистом, ты (возможно) всё более и более пристально смотришь в сторону проджект менеджмента. Твой ПМ уже не царь, и не бог, и его работа не кажется тебе сложной и непонятной. Ты видишь, что работаешь намного больше его, а он ленится сделать тебе Code Review и похвалить за оригинальную интеграцию сторонней библиотеки. Он даже не смотрит на твой идеальный код в сложнейшей стыковке кривого API и мутной бизнес-логики. И ты точно знаешь, что, когда тебе улыбнётся удача руководить проектом, ты всё будешь делать лучше. Ты будешь бережнее следить за своими девелоперами, ревьювить каждый их класс, хвалить за удачные решения и порицать за очевидные ошибки.
Если Вам это звучит знакомо, читайте дальше. Давно хотел написать что-либо подобное, но окончательно заставил случай, когда один довольно опытный программер в нашей компании после примерно года работы официально заявил, что он вообще не представляет роли проджект-менеджера на проекте. Не моём, но близком мне, и я знал что там работает хороший опытный ПМ. Проблема глобальна, нужно работать с людьми в этом направлении – добиваться того, чтобы каждый понимал роль другого и оказывал поддержку.
Ну что ж, начинаем:
ПМ, 8:30
(Звонок будильника) Боже, как же хочется поспать. Спать хочу! Почему так рано??? Блин, что я вчера делал? А, точно, звонил заказчик, сидел с ним весь вечер в скайпе… звонили в техподдержку какой-то компании, она на Pacific Coast, 11 часов разницы…
Нее, нифигааа, посплю ещё, работа не волк… пошли они все в… только будильник пере…
ПМ, 10:00
ААА, ффак, твою мать, опять сидеть до ночи… ну пусть кто хоть слово скажет – спрошу про деньги за вчерашний овертайм!
Девелопер, 11:30
Опять на работу опоздал, скотина. Почему я каждый день на работу к девяти прихожу, а этому что, всё можно?
ПМ, 11:30
Тааак, проверим-ка почту… блин, 46 писем на одном ящике и 18 на другом! И не лень им писать… тааак, поудаляем нотификейшны, просмотрим мелочь… 20, на которые нужно ответить. Ладно, часа за полтора одолеем…
Девелопер, 11:35
От же блин, пришёл на работу и сразу за свои письма… мало того что припёрся к обеду, так ещё и не подошёл… работка – письма писать, все они такие… хрен я сам скажу что работу всю сделал которую знал, а по остальному вопросы – кому в конце концов надо, мне или ему… он за это деньги получает. (открывает habrahabr.ru)
ПМ, 13:00
Фух, с перепиской покончено – слава богу. Ой, все ушли на обед… блин, завтра приду в 9. Ладно, с комадной посовещаемся после обеда (забивает митинг в аутлуке). Раскидаю пока таски в Джире
Девелопер, 13:59
(Вернулся с обеда) Ааа, 1 минута до митинга! Неужели нельзя планировать их с утра?? У нас вообще есть менеджмент?
ПМ, 14:06
(говорит) Всем привет!
Девелопер, 14:06
(думает) И тебе доброе утро, красная девица…
ПМ, 14:06
(думает) надо дать команде больше участия в жизни проекта. Я-то знаю как сделать архитектуру, уже делали пару лет назад, но пусть ребята выскажутся – мало ли всё изменилось, да и поучатся думать а не просто делать. (говорит) Вань, тут вот такой таск, как думаешь, как лучше сделать?
Девелопер, 14:07
(думает) ты ПМ – ты и думай. Я архитектуру сделаю, может ещё на письма ответить? А ты что будешь делать, код писать с тебя корона упадёт? (говорит) Не знаю…
ПМ, 14:07
Ну а ты подумай, клиенту нужны такие-то функции, как веб-сервисы будешь делать?
Девелопер, 14:08
(думает) Вот же ж прицепился… ладно, отвечу отцепного. (говорит) Ну вот можно сделать так… А вообще (воодушевляясь) тут одна технология есть, так это проще будет, вот у нас SOAP сейчас (следует объяснение, чем эта технология лучше той что используется сейчас).
ПМ, 14:13
(перебивает) Подожди, технология да, крутая, но сколько это займёт времени?
Дев, 14:13
(задумчиво) Нуу… дней 5, если получится может раньше, а может нет… а что?
ПМ, 14:14
(думает) неее, Джон в жизни не согласится… да и сделать-то всего один дополнительный сервис надо. (говорит) Не, знаешь что, давай просто по старинке сделаем.
Дев, 14:14
(возмущённо) это твоё решение или заказчика?
ПМ, 14:14
Моё.
Дев, 14:14
(хитрый вид) Может лучше спросишь у заказчика?
ПМ, 14:14
(думает) дааа, скажу фармацевту REST, WSDL и SOAP, он переведёт 5 дней в баксы, и можно забыть про проект… это как мне разницу между аспирином и парацетомолом. (вслух) Нет, давай всё же сделаем так, так быстрее.
Дев, 14:15
(думает) Ну и зачем ты спрашивал моё мнение, всё равно поступили как ты хочешь. (вслух) ну давай, мне всё равно.
Дев, 15:00
(после митинга) ещё один бесполезный митинг, сколько бы кода успел написать…
ПМ, 15:00
Фух, отстрелялся… Середина дня самая ненапряжная, митинги с заказчиками начнутся после 4-х, дай пока хабр почитаю (открывает habrahabr.ru)
Дев, 15:10
Блин, он ещё и хабр засел читать в рабочее время! Нет бы сам сел что попрограммил!
ПМ, 16:00
Окей, через 15 минут митинг с руководством компании. Ай, чёрт, новая квота пришла, нужно обрабатывать… (в скайпе) Вань, есть время свободное на эстимэйт?
Дев, 16:01
(думает) Бля, на хабр у тебя время есть, а на эстимэйт нету! Тасков навалом, только сел писать! (вслух) Ладно, сделаю…
ПМ, 16:01
(думает) Фух, чудо, что такой человек есть, всегда подстрахует. Надо похвалить перед руководством. Хотя на митинге что-то чушь порол… ладно, со всеми бывает, может не дала…
ПМ, 16:30
(звонит телефон, глядя на номер) Проклятые американцы… что им не спится! От же ж в привычку вошло на мобилу звонить! Ладно, выйду поговорю.
Дев, 16:30
О, пошёл по телефону трепаться.
ПМ, 16:35
(закончил разговор, думает, коверкая) “Vasily, please stay later today. We have urgency and emergency. Appreciate all your help!” Бля, а когда вам что-то не срочное нужно было! Цените вы… деньги вы свои цените!
ПМ, 16:45
Блиииин, это ж я Светку обещал сегодня в кафе сводить, уже ж и столик заказал… а на работе минимум до девяти… (убегает звонить)
Дев, 16:46
О, опять трепаться! За что ему вообще платят?
Дев, 18:00
(думает) Фух, досидел, отчаливаю. Аривидерчи, пойду пить пиво с пацанами, в бильярд поиграем! Ну я и забожил кода сегодня, аж приятно, не впустую день прошёл!
ПМ, 21:23
(думает) Oh crap, what’s a fucken day! Seems like… Бля, уже думать начинаю по-английски. Ещё один день в жопу… Светка явно обиделась, на выходных с меня ресторан и извинения… пацаны уже бухие, с ними уже неинтересно будет… поеду домой. Как долго, как хооолодно… Эх, лучше бы здесь кроватки поставили, всё равно утром на работу… Блин, весь день бегал, ничего не успел толком, ладно, всё завтра, всё завтра, спать…
Ну вот как-то так, или близко к этому. Слова программера пишу не по наслышке, сам так думал долгое время. И сейчас бывает плохо думаю о топ менеджерах, и где-то глубоко в душе уверен что управлял бы компанией лучше… Такова, видимо, человеческая природа – требует всё познавать на себе.
Многабукаф получилось, но я всё же резюмирую всё что сказано выше и попытаюсь дать два конкретных совета. Можете их не читать.
1) Привлекайте девелоперов к ответственности. Не за уголовные преступления, а в проекте. Чаще давайте им на откуп какие-нибудь решения, лишь мониторя и корректируя их исполнение. Не забывайте называть их красивыми словами – если вы обратитесь “Вань, ты зарекомендовал себя как хороший архитектор, нужен совет как здесь лучше сделать”, Ваня будет чувствовать себя архитектором а не простым исполнителем, и, что самое удивительное, вполне вероятно что станет им быстрее чем вы думаете.
Не думайте что вы этим задеваете своё самолюбие – у вас ништяков хватает, вы итак ПМ, а человеку будет как минимум очень приятно.
2) Давайте своим девелоперам на обучение джуниоров вместо того, чтобы самим заниматься их обучением. Во-первых, они побудут в вашей шкуре. Во-вторых, человек, который кого-то чему-то учит, сам быстро учится. В частности, понимать того, кто его учит.