Как разговаривать с программистами на одном языке

Программисты — молодцы. Они делают важные вещи, оживляют сайты и базы данных, помогают бизнесу и вообще всячески стараются. Раньше все хотели быть космонавтами, сейчас все хотят быть программистами — это логично, ведь отовсюду рассказывают, как легко и просто можно зарабатывать по 100 тысяч в месяц за код на удаленке. И все это звучит хорошо, если вы тоже программист.

Проблема в том, что есть люди, которые выбрали другую специальность — например, дизайнеры, менеджеры или маркетологи — и им по работе постоянно приходится сталкиваться с программистами. И это иногда бывает тяжело.

Дело тут даже не в споре «технари против гуманитариев» — дело в разном подходе и взгляде на вещи. Мы собрали самые популярные проблемы, которые возникают при работе с программистами, и возможные пути их решения. Используйте на свой страх и риск.

Неправильная оценка сроков

«3.03. Обсуждали сроки. Выпили 3 ящика пива. Петрович говорит, что тут всей работы на 4 месяца. Значит, на самом деле 8. В итоге в контракте записали 12, хотя раньше, чем за 16, вряд ли управимся».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Это обычное дело для программиста (на самом деле, для кого угодно). Никто не умеет оценивать сроки, пока не попрактикуется достаточно.

Решение. Использовать классные методологии разработки и оценки трудоемкости. Если вы менеджер проектов, вы уже и так знаете про Agile и Scrum. Если не знаете — найдите ближайшего менеджера проектов и спросите у него, он поделится книжками, статьями и расскажет все о гибких методологиях.

Если рядом нет ни одного менеджера проектов, найдите книжку Майка Кона «Agile: оценка и планирование проектов», и начните ее читать. Когда разберетесь в основах, прочитайте «Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения» Тома ДеМарко и Тимоти Листера. Эта книга не для новичков, но хорошо помогает понять нюансы управления проектами.

Если на книги времени нет, и вы ничего не понимаете в разработке, задайте тимлиду простой вопрос: «Из чего состоит эта оценка?». Если вам все разложили по полочкам и объяснили, почему так — оценка близка к адекватной.

Оценка — не срок. Если вам в пятницу говорят «Сделаю к следующей пятнице», а оценка — 40 часов, задумайтесь. Уточните, когда человек будет заниматься другими задачами, и корректно ли он вообще оценивает время. Здесь поможет понимание того, как устроен цикл разработки в вашей компании, и на каких этапах могут быть замедления.

Плохая реакция на критику

«2.10. Петрович добрался до пятого этажа. Горд собой. Обратили его внимание на тот факт, что его стена наклонена под углом 40 градусов. Он ругался, кричал, что мы ламеры и ничего не понимаем. Потом обещал подумать».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Несмотря на то, что программисты обычно брутально пишут код, брутально ходят на митапы и брутально меняют места работы, лучше не слишком их расстраивать неожиданной обратной связью. Например, не стоит прямо говорить, что продукт получился плохим, свежая фича не очень и вообще можно было бы лучше стараться. Все мы люди, и программисты — не исключение.

Решение. Научиться давать обратную связь. Есть несколько простых правил для обратной связи вообще кому угодно.

  1. Давайте обратную связь, когда вас об этом просят.
  2. Говорите о делах, а не личности человека.
  3. Будьте конкретными — используйте факты, а не оценки.
  4. Сбалансируйте хорошее и плохое. И начинайте с хорошего, потом плохое, потом снова хорошее.
  5. Подбирайте стиль обратной связи в зависимости от сотрудника. Кому-то можно в лоб и прямо, а кому-то только окольными путями.

Срочно переписать весь чужой код

«5.10. Петрович признал, что со стеной действительно имеется проблема. Говорит, что неправильно положил какой-то кирпич. Но чтобы понять, какой именно, надо перебрать их все. Проще все снести и построить заново».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Чужой код обычно достается по наследству и не всегда работает хорошо. Конечно же, его хочется сразу переписать. Конечно же, на Super.Express.Double.G.Ultra.js (см. следующий пункт).

Решение. Найти баланс между задачами бизнеса и разработки. Поговорите с тимлидом программистов, уточните, нет ли чего-то критичного в старом коде. Если он не мешает работе над продуктом — работайте над продуктом дальше и программисту об этом расскажите.

Выбор неподходящей, но интересной лично программисту, технологии

«Приходил заказчик. Спрашивал, нельзя ли внести в проект небольшие изменения. В частности, вместо 12-этажного дома построить поселок из деревянных коттеджей, соединенных туннелями. Он прочитал, что на Западе сейчас так модно. Нейтрализовали Алекса прежде, чем тот успел открыть рот, и вежливо, но твердо объяснили заказчику, что он не прав».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Вышел новый Super.Express.Double.G.Ultra.js? Отлично, теперь на нем срочно нужно сделать загрузчик фото, а весь остальной проект на реакте подождет.

Решение. Мягко намекнуть разработчику на то, что фреймворк клевый — вы это вчера читали на «Хабре», — но проект уже послезавтра запускать, и времени на эксперименты вот вообще никак совершенно нет.

Перед началом следующего проекта можно устроить большой созвон всей командой и обсудить, на чем писать, а вот сейчас — уже никак, нужно просто сделать быстро, и чтобы ничего не развалилось сразу после запуска.

Исправлять ошибки неинтересно

«4.02. Алекс доказывает, что он не виноват. Просто 12 этажей Сидорова на 4 метра выше и на 5 метров шире, чем 12 этажей Петровича. Выяснилось, что они строили из разных панелей. Но Алекс все равно ламер, поскольку его крыша не подходит по размеру ни одному из вариантов. Его шахта лифта, кстати, тоже».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Потому что кодить интересно, а поддерживать — нет. То же самое с техническим заданием — иногда заказчик что-то не уточнил в задании до конца, а программист сделал как было написано и уже переключился на другой проект или пошел осваивать Super.Express.Double.G.Ultra.js. А вам вот уже точно никак без баннера, который нужен для запуска рекламной кампании, а его нет.

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

Не уточнили задачу и сделали не то

«Первый этаж готов! Показали его заказчику. Он интересовался, почему в разных комнатах разная высота потолков, почему из стен вываливаются кирпичи и почему в доме нет подъезда, а влезать приходится через окно. Объяснили ему, что это специальные ограничения демо-версии. Уходим на праздники, гордые собой».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Решение. Помогает совместное планирование до начала работы, где менеджер проекта объясняет, чем занимается вся команда. У любой задачи есть причина — например, аналитики посчитали, что нужно передвинуть кнопку в интерфейсе, потому что там в два раза повысится конверсия.

Здесь же помогают прототипы и демки — и все это вы можете быстро сделать своими силами, чтобы разработка уже сидела и думала, как это все реализовать.

Сделали не то и до последнего не могут это признать

«3.03. Убедили заказчика, что нам нужен еще день для финального тестирования. М-да, ну мы вчера и наработали… А в общем, не все так страшно. Ну что с того, что некоторые двери находятся в полу или в потолке, либо ведут с десятого этажа прямиком на улицу, в некоторые квартиры в принципе невозможно попасть, санузел кое-где совмещен с кухней, в половине дома нет воды, в другой половине — электричества, канализация обрывается на шестом этаже, а лестницу между восьмым и девятым пришлось сделать веревочной? Главное — провести заказчика правильным маршрутом. И еще — успеть до завтра развесить на месте исчезнувших окон картинки с изображением заоконных пейзажей».

Из рассказа «Если бы программисты строили дома», автор неизвестен.

Так бывает — написано одно, а сделано другое. Или то, но по-другому. Или как-то еще, но результат вас не устраивает, а программисты не признают, что это все-таки баг, а не фича. Такое бывает, если техническое задание почему-то оказалось не очень — в нем отсутствуют требования, описание результата или заказчик вообще сам не понимает, чего хочет.

Решение. Корректное и полное техническое задание. Если речь о сайте — можно сделать прототип страницы, блока или элемента, чтобы показать его разработке. Для создания прототипов пригодятся навыки работы в графическом редакторе, например, Photoshop или Figma, и базовой верстки на HTML и CSS. Недаром все больше менеджеров, дизайнеров и маркетологов изучают верстку и программирование — способность говорить на одном языке с программистами и понятно доносить задачу позволяет быстрее запускать любые проекты и делать это качественно.

Теперь ваша очередь — расскажите в комментариях, как вам удается общаться с программистами, чем они бесят и чем радуют, и чего ни в коем случае нельзя делать, чтобы работать с ними в одной команде долго и счастливо.

Читайте также:

Расскажите коллегам:
Комментарии
Виталий Елиферов +4100 Виталий Елиферов Менеджер, Москва
Александр Ковалёв пишет:
Это что за комитет по этике?! Вот тут я очень очень рад, что у нас в стране все эти "формулировки" трактуют и используют с таким произволием совести, что любой немец бы разрыдался. 

Как человек, который много лет читал и работал по ГОСТам (и даже немного сам писал ГОСТы) не могу согласится с призывами:

а) использовать в тексте ГОСТов - жаргон и разговорные обороты (например "как бы", "где то" или "вроде того", "мотик", "гайд"[руководство], "юзеры", и проч....) 

б) использовать в тексте разные термины для одного понятия - только один термин должен обозначать одно понятие.("директор"="руководитель"="начальник" и проч...)

в) произвольные словооборазования ( "смотрибельно", "флешковтыкание" и проч....)

г) произвольные сокращения (   "админы", "сисадмины" и проч...)

д) использовать, отличающиеся от правил СИ обозначения единиц физических величин. 

P.S. Вы просто не представляете в каком виде иногда приходят тексты проектов документов.   

Аналитик, Москва
Александр Ковалёв пишет:
ГОСТ Р 2.105 - 2019

Боюсь, что мы тему сдвинем с заявленной линии))) Я про Госты могу долго писать, но, прошу прощения, не буду. Ну пару слов. Про диаметры, минусы, жаргонизмы. Всё верно, но речь идёт о текстовой части документа, очень даже логично, это подтвердит любой литературный редактор. Ну мы же не пишем в литературе "я вышел в мороз -20 градусов". Напишем "в минус 20). В таблицах и формулах - пожалуйста. Меня раздражают фразы-жаргонизмы "кликнуть мышкой".  Но это мелочи, встречаются и такие слова - "рассериализация".

Нет, там всё довольно логично. Правила должны быть. Как написать МБ или Мб? Слова в техническом тексте не должны приводит к поиску, к недоумению. 

Но сказать, что 2.105-2019 стал лучше, чем прошлая редакция я не могу. Хотя и на западе очень часто присутствует избыточность. Но и русский язык более многозначен. Из-за этого так и не прижились русскоязычные языки программирования. Никогда не забуду, как я изучал Oracle в фирменной документации. Но мы очень далеко ушли от темы, коллега. 

Аналитик, Москва
Анатолий Курочкин пишет:

ГОСТ Р 2.105 - 2019, вступил в силу с 1.07.2020 

Приношу извинения коллегам - его введение снова отложили 28 августа. На 1.01.21

Аналитик, Москва
Виталий Елиферов пишет:
Александр Ковалёв пишет:
Это что за комитет по этике?! Вот тут я очень очень рад, что у нас в стране все эти "формулировки" трактуют и используют с таким произволием совести, что любой немец бы разрыдался. 

Как человек, который много лет читал и работал по ГОСТам (и даже немного сам писал ГОСТы) не могу согласится с призывами:

а) использовать в тексте ГОСТов - жаргон и разговорные обороты (например "как бы", "где то" или "вроде того", "мотик", "гайд"[руководство], "юзеры", и проч....) 

б) использовать в тексте разные термины для одного понятия - только один термин должен обозначать одно понятие.("директор"="руководитель"="начальник" и проч...)

в) произвольные словооборазования ( "смотрибельно", "флешковтыкание" и проч....)

г) произвольные сокращения (   "админы", "сисадмины" и проч...)

д) использовать, отличающиеся от правил СИ обозначения единиц физических величин. 

P.S. Вы просто не представляете в каком виде иногда приходят тексты проектов документов.   

Не утерпел - всё верно! А ещё "и т.п.", "и т.д.". 

Виталий Елиферов +4100 Виталий Елиферов Менеджер, Москва
Анатолий Курочкин пишет:
Не утерпел - всё верно! А ещё "и т.п.", "и т.д.". 

Я, конечно, уже пенсионер, "но дым еще идет"  :))) 

Глас бывшего директора по качеству из советской оборонки ...... 

Александр Ковалёв +2923 Александр Ковалёв Инженер, Омск
Виталий Елиферов пишет:
P.S. Вы просто не представляете в каком виде иногда приходят тексты проектов документов. 

Знаете, мне тоже нравятся советские справочники и научно-популярные книги. И я бы сейчас многое бы написал в ответ, но прежде чем упражнятся в остроумии, вспомним что у нас нет даже стола для карточного поединка. 

Мир уже давно стал глобальным, совместным, с единным информационным пространством. Мы сторонимся учить английский, иностранцы не брезгуют учить русский. И давайте раскидаем наши карты: Есть такая замечательная система разработки стандартов RFC (Request For Comment), по которой приняты все ныне существующие коммуникационные стандарты. Я не буду её рассписывать в красках, а просто посоветую каждому из участников её изучить. 

И когда у большего числа участников будет её понимание, начнётся игра. И каждый займёт свою позицию. Я буду предлагать выкинуть из регламентов все привязки к словам, вы будете их отстаивать. Я буду писать об человеческом отношение и абсолютной бесполезности придирок к стилистике - вы приведёте свои аргументы в их защиту. Я буду на стороне свободы, вы заняли сторону тоталитарную. И это будет полноценная дискуссия, хотите - дебаты, и пусть каждый из участников напишет свои замечания и правки. Вот там и станет ясно, чьё остроумие сильней. 

Виталий Елиферов +4100 Виталий Елиферов Менеджер, Москва
Александр Ковалёв пишет:
Есть такая замечательная система разработки стандартов RFC (Request For Comment), по которой приняты все ныне существующие коммуникационные стандарты.

Спасибо за подсказку, обязательно почитаю, когда будет немного времени. А на тему "тоталитарной стороны", - думаю, Вы погорячились.

 

Александр Ковалёв +2923 Александр Ковалёв Инженер, Омск
Виталий Елиферов пишет:
А на тему "тоталитарной стороны", - думаю, Вы погорячились.

Очень надеюсь на это. 

Приятного чтения. 

Аналитик, Москва
Александр Ковалёв пишет:

я бы сейчас многое бы написал в ответ, но прежде чем упражнятся в остроумии

...

Я буду на стороне свободы, вы заняли сторону тоталитарную. И это будет полноценная дискуссия, хотите - дебаты, и пусть каждый из участников напишет свои замечания и правки. Вот там и станет ясно, чьё остроумие сильней. 

Я не увидел ни иронии, ни шутки в словах Виталия.

Коллеги, давайте не будем здесь о политике. Хорошо? Не хочу дебатов, но с удовольствием читаю ваше мнение. Был бы рад каким-то предложениям, но желательно не в духе "Всё бред, всё отменить". 

Ну и всё-таки - RFC не из той серии, не из той логики. Это всё-таки рекомендации  для разработки стандартов. Тот же породитель Гостов. И из них вырастают предварительные, национальные и межгосударственные стандарты. И у нас есть очень похожие.

Александр Ковалёв +2923 Александр Ковалёв Инженер, Омск
Анатолий Курочкин пишет:
Ну и всё-таки - RFC не из той серии, не из той логики. Это всё-таки рекомендации  для разработки стандартов. Тот же породитель Гостов. И из них вырастают предварительные, национальные и межгосударственные стандарты. И у нас есть очень похожие.

RFC - это прекрасно отлаженный и работающий механизм разработки стандартов, где участвуют все стороны, и демократические, и бюрократические. И она не состоит из 3-4 этапов, там их больше десятка, и поэтому стандарты получаются великолепно налаженными, я реально очень советую всем внимательно ознакомится с этим механизмом. И я очень надеюсь, что в будущем такой же механизм будет принят по отношению ко всему техническому регулированию, а старые дерективы "ГОСТ Р" и прочие уйдут на свалку истории. 

Приятного чтения, Анатолий. Спасибо за продуктивную дискуссию. 

Оставлять комментарии могут только зарегистрированные пользователи
Статью прочитали
Обсуждение статей
Все комментарии
Дискуссии
Все дискуссии