Перевод статьи Тодда Дэвиса «One Simple Trait That Will Advance Your Software Career».
Разработка программного обеспечения может быть совершенно неблагодарной работой. Конечно, у нее есть свои преимущества. Вы занимаетесь решением проблем, проявляете креативность, а хорошо написанный код обладает красотой и изяществом, которые не объяснить людям, не знающим языка.
Раньше в массовой культуре нас почти всегда изображали как чудиков с-очками-на-ленточке и с-ручками-в-кармане-рубашки. Зато сейчас Голливуд рисует нас как элитных хакеров, которые могут сесть за никогда-не-виданный-ранее терминал и тотчас угадать пароли любого правительственного учреждения в мире, а также найти способ скопировать всю их базу данных на флешку за 60 секунд.
Хотел бы я уметь такое. Не думаю, что сумел бы хакнуть собственный ноутбук, не говоря уже о чьем-нибудь еще, а за минуту даже Word-документы не всегда можно скопировать на флешку.
Реальные программисты немного менее сексуальны, чем их голливудские копии. Наши боссы и сотрудники плевать хотели на то, насколько изящен наш код. Спрашивая нас о том, сколько времени займет написание какого-нибудь кода или внесение исправлений, они и не подозревают, что мы об этом понятия не имеем, аж пока не сделаем. Честно говоря, нас часто просят что-то сделать люди, даже не имеющие представления, о чем они просят.
Наша ценность нередко измеряется нашей способностью гнать код в бешеном темпе, а наша готовность к работе – в том, сколько часов мы выдерживаем этот темп. Нереальные дедлайны это повсеместное явление. Баланс работы и жизни часто просто не существует. И как мы все знаем, одно «вот дерьмо!» может перечеркнуть целые тома «молодец, хороший мальчик».
В конце концов, ваша работа заключается в производстве, и в отличие от продавцов и руководителей, продвигающихся все выше и выше, вы не часто получаете поездку на Багамы, золотые часы или чек на часть прибыли. Фактически, чем усерднее вы работаете, тем большего от вас ожидают, и когда вам не удается взять очередную планку, вы выглядите и чувствуете себя лентяем.
Все мы смотрим на таких людей как Стив Джобс, Билл Гейтс и Марк Цукерберг и думаем, что если бы только мы были более талантливы, креативны и деятельны, мы были бы успешнее в своей работе. Мы не спим ночами, изучая последние фреймворки и технологии, тратим все выходные на рефакторинг наших основных библиотек, чтобы работать быстрее и эффективнее, а в процессе часто забываем о собственных нуждах, друзьях и семье – и все это ради чего?
Я не могу передать, сколько раз я из кожи вон лез, чтобы написать код и проверить его, а в итоге вместо ожидаемых похвал и наград получал недовольство и жалобы начальства и сотрудников.
«Почему ты так долго возился с кодом для этой новой фичи? Почему QA нашли баги в твоем коде? Ты вообще его тестировал? И почему мы не использовали в нашем приложении <вставьте название последней технологии в бета-версии >?»
Любой обидится, если обозвать его ребенка уродом. И точно так же обидно, когда в награду за тяжелую работу и самопожертвование получаешь негатив и отсутствие признания. Бывает, что другие члены команды просто указывают на незамеченные проблемы в коде или просят добавить какое-то маленькое свойство, но и они могут нарваться на неприятный ответ от человека, пишущего код. Хотя это вовсе не личные выпады против разработчика, а чисто рабочий процесс. Если виджет не работает, а в футере отсутствует панель, это не вина человека, указавшего на проблему.
Наша реакция на вопросы и жалобы окружающих, например, наших сотрудников и клиентов, имеет огромное влияние на то, как нас оценивает компания. А от этого зависит наше продвижение по карьерной лестнице.
У самых успешных программистов правильные отношения с окружающими. Отличные отношения всегда перевешивают отличные навыки и всегда признаются и вознаграждаются даже людьми, не связанными с технологиями.
Ключевое значение имеет эмпатия
Именно наше отношение зачастую может тормозить нашу карьеру. Люди, зарабатывающие на жизнь решением проблем, могли бы приходить к этому умозаключению быстрее. Как мы уже говорили, всем безразлично, сколько часов вы работали и насколько изящен или оригинален ваш код. Когда мы до боли в спине работаем над нашим кодом, это воспринимается как должное, как неотъемлемая часть нашей работы. Никто не будет как-то особо награждать вас за то, что вы просто выполняете свои обязанности.
А замечают люди то, как вы реагируете на их нужды и как отмечаете их усилия. Это утверждение в равной степени справедливо для коллег, клиентов и конечных пользователей.
Если вы хотите, чтобы люди считали вас отличным работником, для начала нужно получить их признание как личность. Никакое количество навыков и никакая тяжелая работа не смогут быть равнозначной заменой.
Мне случалось видеть, как самые худшие программисты из всех, кого я когда-либо знал, продвигались по карьерной лестнице, обгоняя более опытных и талантливых программистов. И причиной этому было всего лишь то, что они умели ладить с окружающими и знали правила этой игры. Обычно эти же люди становились лидерами и менеджерами, в то время как другие программисты продолжали тянуть лямку, размышляя, где они ошиблись и почему не получили заслуженное повышение.
Давайте рассмотрим несколько типичных примеров. Мы увидим, как сделать так, чтобы люди более позитивно реагировали на то, что мы делаем и говорим, благодаря тому, как мы это делаем и говорим.
Пример 1
Босс: Я не понимаю, почему для добавления кнопки на страницу потребовалось 3 дня. Что вы делали все это время? Джо добавил новую кнопку в другом нашем приложении на прошлой неделе и это заняло у него пару секунд!
Плохой ответ: Джо работает с приложением Windows. Он добавил кнопку в панель кнопок, которая изначально создана для легкого добавления кнопок! У меня — веб-приложение, которое должно правильно выглядеть и работать на всех девайсах, динамически приспосабливаясь к размеру экрана, поворотам, браузеру и смене локализации! Вы просили сделать кнопку там, где для нее не было места. Поэтому мне пришлось перепроектировать большую часть страницы, протестировать все в разных браузерах, чтобы макет не поплыл на маленьких устройствах, создать новый сервис, добавить новую логику, бла-бла-бла…
Итак, чем плох этот ответ? Да, это правда, ваш босс, вероятно, понятия не имеет, как много невидимой бэкенд-работы стоит за «простым добавлением кнопки» и как много фронтенд-работы, связанной с тестированием, может потребоваться. Он даже не представляет, что для осуществления этой простой вещи вам пришлось работать сверхурочно, и ему не кажется, что сравнивая вас с Джо, он сравнивает яблоки с апельсинами. Но это же не его работа, верно? На каком-то этапе все эти объяснения начинают звучать, как оправдания, а это плохо, когда ваш босс уже задается вопросом, что происходит.
Я советую «читать между строк» и смотреть на вещи с точки зрения вашего босса. Он, скорее всего, никогда в своей жизни не написал и строчки кода, и спрашивает он, в общем, не о том, почему у вас это заняло столько времени. Что его тревожит, так это необходимость уложиться в сроки, осчастливить клиента, повысить продажи и порадовать свое начальство. Вы также можете его порадовать, выразив заботу о том, о чем заботится он. Используйте вашу эмпатию чтобы установить контакт с ним и его чувствами, нуждами и целями. Например…
Ответ получше: Я понимаю, почему вы огорчены и что добавление этого нового свойства для вас критически важно. Для меня это тоже важно, поэтому я хочу сделать все как можно лучше, чтобы наш продукт безупречно функционировал и восхищал наших клиентов. Было много сложностей с бэкендом и я рад, что с ними удалось справиться (если хотите, расскажу, как именно). Но потребовалось некоторое дополнительное время, чтобы убедиться, что эта кнопка будет хорошо работать на всех устройствах и во всех ситуациях, а также чтобы тщательно все протестировать. В будущем я буду высылать сообщения о ходе работы почаще, чтобы вы знали, на каком этапе я нахожусь.
Другими словами, не оправдывайтесь. Черт побери, вам не нужно даже объяснять, что было на самом деле. Нужно дать понять боссу, что вы чувствуете и понимаете его боль, и что вы сфокусированы на тех же вещах, что и он. Также никогда не повредит предложить совет по улучшению: это снимет с начальства довлеющую необходимость что-то придумывать самостоятельно.
Пример 2
Работник QA: Я протестировал ту новую кнопку, которую вы опять добавили, и уже второй раз открываю этот тикет, потому что она все еще не работает так, как я ожидаю. Вы читали мои замечания по этому багу? Вы вообще проводили тесты?
Плохой ответ: Да, я читал ваши замечания и сделал все указанные шаги. Я просто не могу воссоздать проблему. Я даже послал вам видео того, что происходит у меня на экране. Вы видели, что я вам послал? Если вы хотите, чтобы это было исправлено, вам придется найти способ воссоздать ситуацию, чтобы ошибка проявилась и на моей машине.
Проблема этого ответа в раздражении и беспомощности. Он выражает неодобрение самого человека, а затем нагружает его дополнительной работой, которая, как он чувствует, вызвана вашим бездействием. И снова лучшим подходом будет поставить себя на место собеседника.
Ответ получше: Спасибо вам за терпение и за то, что выявили ошибки до того, как их увидел клиент. Поскольку я не могу воспроизвести это на моей машине, можем ли мы встретиться завтра утром? Я принесу свой ноутбук на ваш стол и вы сможете показать мне, что не так. Таким образом мы оба сможем понять, в чем ошибка, и может быть, я сумею сразу исправить ее, чтобы вы знали, что это уже протестировано. Скажите, какие пончики вы любите, я завтра принесу!
Решение опять-таки в том, чтобы дать человеку то, что ему нужно. Работник QA-отдела хочет чистый отчет по этому приложению и расстроен тем, что, по его мнению, является недостатком коммуникации и понимания. Предложение прийти и посмотреть на проблему показывает вашу заинтересованность и инициативу. Человек чувствует, что вы серьезно относитесь к решению его проблемы. Фактически, ему предлагается личное внимание и сервис, а также решение, гарантирующее исправление бага должным образом. Пончики это небольшой подхалимаж, но влияние еды на отношения нельзя недооценивать.
Несколько общих советов, следуя которым вы сможете выделиться и получить признание на работе
- Никогда не извиняйтесь, за исключением случаев, когда вам действительно нужно искупить свою вину. Вместо этого попробуйте реагировать положительно. Например, вместо «Мне жаль, что это заняло столько времени» попробуйте сказать «Спасибо, что проявили терпение».
- Подражайте самым успешным. Посмотрите на «рок-звезд» у вас на работе – людей, которых все любят и с которыми считаются. Их поступки вызывают положительную реакцию у окружающих. Подружитесь с ними и подражайте тому, как они себя ведут и как отвечают людям. Рассматривайте это как освоение передовых методик.
- Приходите раньше других, а уходите позже. Это не всегда возможно, но люди замечают ваши приходы и уходы, а если они чего-то не видели, то для них этого не было. Если все приходят на работу в 7 утр, а вы приваливаетесь к 11, люди будут считать вас ленивым и неамбициозным. Если большинство людей работает до 6 вечера, а вы убегаете около 4, они подумают, что вы жаждете сбежать и не хотите работать столько же, сколько работают другие. Все это имеет значение, так что подумайте об этом.
- Будьте душой компании. Программисты не всегда являются общественными животными, в отличие от сильных мира сего. Если вы хотите, чтобы они вас заметили, будьте заметным. Приглашайте людей на обед каждый день. Посылайте забавные е-мейлы. Поставьте на столе вазочку с конфетками для всех. Приносите рогалики по утрам. Поделайте все это неделю и увидите, как много людей начнет вас замечать.
- Чаще коммуницируйте. Если у вас каждый день проходит Scrum – прекрасно, а если нет, то постарайтесь держать своего босса и коллег в курсе того, над чем вы работаете и с какими проблемами сталкиваетесь. Не нужно прямо все озвучивать, но короткие сводки дадут всем знать, что вы тут есть, вы над чем-то работаете и переживаете за свое дело.
- Когда вы не работаете, то и не говорите о работе. Если вы пошли на обед с группой или встретились с кем-то у кулера с водой или еще в каком-то месте, не связанном напрямую с работой, то ваше общение должно быть более открытым и личным. Спрашивайте о семьях, прошлом отпуске, планах на вечер – обо всем, что покажет ваш интерес к личности людей и тому, чем им нравится заниматься.
Еще раз отмечу, что лучшая кандидатура на должность не всегда лучший программист. Собственно, это тот, на кого люди полагаются и кому доверяют больше всего.
Я однажды знал парня, который работал в компании один месяц. Он был молод и ему не хватало опыта. Но каждый день он приходил в офис начальницы на пару слов, рассказать шутку-другую. Однажды, когда она вышла из кабинета, он проскочил за ее компьютер и поставил ей в качестве обоев фото Дэвида Хассельхоффа. И вместо того чтобы уволить его за использование машины менеджера, она подумала, что он остроумный и веселый. Несколько месяцев спустя он стал лидером нашей группы, в которой большинство людей имело на 10 лет больше опыта, чем было у него.
Я не говорю, что вам стоит взламывать комп вашего босса. Я лишь хочу донести до вас, что отношения решают все и поспособствуют вашему продвижению в компании гораздо больше, чем изящное написание кода.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]
Кнопки можно установить…а вот идею тяжело создать, тем более на пустом пространстве…( и сложнее ничего нет )