Connect with us

Разработка

Григорий Петров: Забудьте слово “ошибка”

Если при общении с разработчиком вам кажется что он <вырезано цензурой> – вспомните эту статью. Возможно, у вас просто сложности коммуникации.

Григорий Петров

Опубликовано

/

     
     
[button color=4d61d7 icon=arrow-left-2 url=https://apptractor.ru/develop/grigoriy-petrov-zachem-v-kode-kommentarii.html] Зачем в коде комментарии [/button]

 

При управлении разработкой менеджер борется как с классическими управленческими сложностями, так и со сложностями нашей отрасли. Часто эти сложности переплетаются и порождают чудовищ: “звездную болезнь” среди программистов, синдром Not Invented Here и прочие неприятные штуки, которые могут легко и непринужденно привести к провалу самый перспективный проект. В рамках цикла статей я стараюсь рассказывать о нашей работе со всех сторон, включая вопросы психологии и работы с коллективом.

Многим знакома такая ситуация: менеджер или тим лид приходит к разработчику и говорит ему:

– Василий! Вот здесь баг. Надо исправить.

Разработчик внимательно смотрит на менеджера, на баг, снова на менеджера, снова на баг и отвечает:

– Нет, Николай, ты не прав. Это не баг. Я сейчас объясню, почему оно так и должно работать.

В этот момент менеджер обычно понимает, что у него проблема. Даже кучка проблем:

  • Прямо сейчас ему надо убеждать разработчика, что это все-таки баг, спорить, ругаться.
  • Сколько еще будет таких “не-багов” в проекте?
  • А что будет, если придет не он, руководитель, а, к примеру, сотрудник отдела тестирования?

Что за проблема в консерватории?

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

1

Заезженная фраза, не правда ли? Почему-то бытует мнение, что “разница в восприятии” эта какая-то мелочь, вроде того, что одним людям нравится кофе с ванильным сиропом, а другим с шоколадным. Чтобы оценить ширину пропасти между нами, достаточно посмотреть на результаты небольшого эксперимента, который поводили над жителями племени Химба в Намибии. Эти результаты легко гуглятся по фразе “himba color study”. В рамках эксперимента им показывали на мониторе несколько зеленых квадратов и один синий, и просили найти отличающийся по цвету квадрат. И они не могли. Для них все квадраты были одного цвета.

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

Оцените всю глубину пропасти – человек физически не видит синий цвет, потому что в его языке нет слова для обозначения этого цвета. Люди воспринимают окружающий мир совсем по-разному. И пропасть в восприятии одних и тех же вещей между вами и вашим коллегой запросто может быть более глубокой, нежели между вами и жителем южного берега Африки. К примеру, для большинства разработчиков слово “асфальт” вызовет ассоциацию с дорогой. Тогда как для строителя это такая горячая черная штука с набором любопытных физических свойств, которую так весело зимой класть на снег.

Картина мира влияет не только на трактовку коммуникации с логической точки зрения. Она же влияет на то, как разработчик будет относиться к коммуникации, и какая будет его естественная реакция.

Что происходит в голове разработчика

Я не знаю.

Подозреваю, что точно никто не знает. Но есть много интересных гипотез и даже немного теорий. Мне нравятся те, которые описывают поведение человека ассоциативными цепочками, которые мозг изучает во время нашего взаимодействия с окружающим миром и применяет автоматически, почти без нашего сознательного участия. Кстати, я о них уже писал в статье про неизбежность, если кто не читал – рекомендую.

2

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

Мозг Василия пропускает фразу через его картину мира, которая складывается из индивидуального опыта, социального влияния, инстинктов, гормонов и множества других факторов. Фразе присваиваются эмоциональные маркеры, которые на низком уровне определяют, что это за социальное взаимодействие. Затем, в соответствии с этими маркерами (и еще кучей других факторов, и вообще – это все гипотезы), лимбическая система принимает решение, как надо реагировать, и отдает команду механике внутренней секреции на изменение гормонального фона. Под действием которого мозг “генерирует” ответ.

У лимбической системы, при всех ее достоинствах, есть небольшой недостаток – она у нас довольно старая. И хорошо умеет разруливать ситуации на уровне каменного века и стай животных в 50-100 особей. Про современное общество, офисную работу и разработку программ лимбическая система не знает ничего. Поэтому на уровне “ассемблера” общение менеджера с разработчиком выглядит примерно так:

Менеджер:

– Василий! Вот здесь баг. Надо исправить.

Мозг:

– Маркер коммуникации между двумя самцами, маркер агрессии, маркер требования. Какие маркеры будут ставиться, определяет картина мира. Та самая, которая у всех разная.

Лимбическая система:

– Другой самец проявляет по отношению к нам агрессию и требует подчиниться? Очень интересно. А это альфа самец? Вроде нет. Тогда – это угроза нашему положению в стае! Необходимо занять оборонительную позицию и зарычать – меняю гормональный фон

Мозг:

– Нет, Николай, ты не прав. Это не баг.

Обратите внимание – все произошедшее выше происходит без участия Василия. Он не обдумывал фразу менеджера, не думал, какие слова сказать. Все это делает автоматика. “Сознание” включается уже после того, как лимбическая система “защитила” своего хозяина от “посягательств” на его “место в стае”. То есть, для Василия это выглядит следующим образом: сидит, никого не трогает, работает. И тут хоп – заканчивает произносить фразу “Нет, Николай, ты не прав. Это не баг”. И понимает, что надо что-то говорить дальше. И начинает срочно придумывать, как бы объяснить только что сказанное. Он же не может сказать “ой, что я только что сказал?”. Потому что на уровне сознания мы не разделяем “обдуманное” поведение и “автоматическое” – для нас это “наше поведение”.

Как с этим жить

Проблемы коммуникации – они большие, страшные и недооцененные. Я видел, как большие проекты разработки умирали только потому, что руководитель разработки не мог договориться с разработчиками. Вопросам коммуникации посвящены тысячи книг, курсов и тренингов. Разделы психологии и научные работы. В рамках этого цикла статей об управлении разработкой я бы хотел сделать акцент на двух моментах, которые лично я видел чаще всего:

  1. Помним о лимбической системе и не допускаем, чтобы она перехватывала управление ни у нас, ни у собеседника. С собой проще всего – достаточно делать паузу в несколько секунд перед ответами и заставлять себя игнорировать “рвущийся наружу” ответ. С собеседником тяжелее – обучить всех искусству коммуникации вряд ли получится. Но можно строить свою речь таким образом, чтобы мозг не маркировал ее сильными эмоциями, тогда лимбическая система ее будет просто игнорировать. Не используем слово “ошибка” – используем “интересная ситуация”. Не говорим “исправить”, спрашиваем “как думаешь, можно сделать еще лучше?”. Эти простые приемы не сделают из вас гуру коммуникации, но помогут избежать многих проблем.
  2. Помним про племя Химба и разную картину мира. Даже если мы успешно избежали общения двух лимбических систем, разница в картине мира может разрушить коммуникацию не менее эффективно. Что делать, чтобы этого не случилось? Не надеяться на телепатию. Не стесняться просить разработчика пересказать своими словами, как он понял задачу. Формулировать задачи от результата и явно указывать критерии того, что задача выполнена – для этого хорошо подходит методология постановки задач “SMART”.

Если при общении с разработчиком вам кажется, что он <вырезано цензурой> – вспомните эту статью. Возможно, у вас просто сложности коммуникации.

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
9 комментариев

9 Comments

  1. Stepan S.

    08.11.2015 at 16:00

    Ребята, привет! Я вот читаю интересную статью на апптрактор и хочу ей поделиться с другом. Читаю с телефона. В моем поле зрения несколько кнопочек для поделиться и вацап мне кажется наиболее удобным. Нажимая на вацап, я улетаю в Аппстор : типа у меня нет вацапа. Вот это баг или у нас просто разное восприятие мира?

    • AppTractor

      09.11.2015 at 10:06

      Степан, привет :)

      А по другим мессенджерам нормально работает? Честно говоря это же сторонний скрипт “Поделиться”, мы на него мало влияем.

      • Stepan S.

        09.11.2015 at 11:18

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

        • AppTractor

          09.11.2015 at 11:43

          Ответ: нет, это не баг, это интересная ситуация :)

          • Grigory Petrov

            09.11.2015 at 13:45

            Почти правильно :). Это действительно интересная ситуация, ребята из Апптрактора попробуют ее исправить.

          • AppTractor

            09.11.2015 at 13:53

            Григорий :) Еще раз – это сторонний виджет, к которому мы имеем мало отношения, он делается UpToLike. Мы вряд ли в нем что-нибудь можем поправить :)

  2. Artem Voronov

    12.11.2015 at 11:23

    Ребята из Стратоплана целый курс выпустили, в котором рассматриваются такие ситуации и способы их решения. Даже решебник составили: ситуация – что делать. Проверил сам на практике, работает.

  3. p2mbot

    15.11.2015 at 10:55

    Григорий, ваши статьи о психологии шикарны! От вас узнал про кошелек Миллера, что аццки улучшило мою работу в сложных проектах.
    Благодарствую за просветительскую работу! )

  4. Andrew Kovzel

    10.03.2016 at 13:07

    Отличная статья, спасибо! Есть одна замечательная книга “Думай медленно, решай быстро” Канемана. Фундаментальная теория о нашем восприятии мира, автор получил Нобелевскую премию. Она возможно даст более глубокое понимание ситуации с программистом, например учитывание эффекта фрейминга.

You must be logged in to post a comment Login

Leave a Reply

Новости

Интересные материалы: 23.01

Сегодня у нас мобильные облака, карьера разработчика Xamarin и новые библиотеки.

Леонид Боголюбов

Опубликовано

/

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Медиа

Podlodka #43: Профессия – архитектор

Продолжаем разбираться, что ждет разработчика после достижения сеньорности.

AppTractor

Опубликовано

/

Автор:

Podlodka

Переход в менеджмент мы уже обсудили, и в этот раз на очереди другой популярный вариант – карьера архитектора. Сергей Орлов, архитектор из Avito, помогает нам вникнуть в суть этой роли, определить её область ответственности и требуемый багаж знаний.

Комментарии
Продолжить чтение

Дизайн и прототипирование

Создание шрифта с нуля за 24 часа

Графический дизайнер Джеймс Барнард бросил себе вызов – он захотел за 24 часа создать шрифт и отправить его в Google Fonts. Как он это сделал и что узнал в процессе — в нашем переводе статьи Джеймса.

Анна Гуляева

Опубликовано

/

Я большой фанат One Day Builds Адама Сэвиджа. В начале дня у него есть только материалы, а в конце он становится обладателем чего-то, что он хотел.

Поэтому я бросил себе вызов: создать с нуля абсолютно новый шрифт и отправить его в Google Fonts за 24 часа.

В старом блокноте у меня были эскизы нескольких букв. Я хотел создать узкий шрифт без засечек, который можно будет использовать на постерах или на других больших изображениях. Во время работы в Men’s Health я использовал шрифты вроде Tungsten или Heron, которые выглядят ужасно в тексте, но отлично смотрятся в заголовках или промоматериалах (которые и были моей основной работой). Это был стиль, который я и хотел создать.

Очень грубые наброски

13:00, среда

Я отправился в Adobe Illistrator с двумя-тремя буквами, которые были у меня в эскизах. Я создал сетку из пяти строк – для линии нижних выносных, базовой линии, линии строчных, линии прописных и линии верхних выносных букв. Затем я определил ширину прописных букв и толщину основного штриха.

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

  • Линия строчных = 2 × высота линии верхних выносных / высота линии нижних выносных
  • Ширина основного штриха = ¼ ширины прописной буквы
  • Ширина строчной буквы = ¾ ширины прописной буквы

Вот как это выглядит на иллюстрации

Сначала я создал буквы O и B. Я решил, что эти буквы будут иметь не форму овала, а форму скругленного угла. Многие буквы будут выглядеть, как высокий прямоугольник, но O, B и D будут иметь скругленные углы вместо овалов.

Внешний угол имеет радиус 12 мм, а внутренний — 6 мм. С этими правилами я начал создавать прописные буквы.

Мой шрифт был очень простым, но с одним «украшением». Любая апертура, то есть, срез концов полуовала, должна была быть отрезана под углом. Самыми сложными буквами стали G и K.

Затем я приступил к строчным буквам. Это было сложнее, но с установленными правилами работать было проще. Я использовал больше «украшений», особенно в верхних выносных и нижних выносных элементах. Самыми сложными стали буквы f, g, a и e, так как они были абсолютно новыми.

21:00, среда

Я перешёл к другим символам, таким как восклицательный и вопросительный знаки. Я стал работать быстрее и успел создать около 35 знаков.

Утро четверга

Утром я довольно быстро закончил цифры от 0 до 9 и начал создавать файл с шрифтом. Это было совершенно новым опытом. Мой знакомый каллиграф Иэн Барнард посоветовал для этого программу Glyphs. Я скачал программу, посмотрел несколько обучающих видео и понял, что неверно создал файл в Illustrator. Поэтому мне пришлось вставлять каждый символ вручную и подгонять его под правила программы.

10:00, четверг

Я начал заниматься интервалами и кернингом. Это было ужасно долго. Прежде чем заняться этим, нужно освоить множество сочетаний клавиш в программе. И перед кернингом вам нужно сделать интервал как можно ближе к тому, что вы хотите видеть в итоге. Для этого нужно измерить ширину отверстия в букве О и разделить ее на три. Такой интервал стоит поместить слева и справа от буквы.

11:00, четверг

С расставленными интервалами я приступил к кернингу. Это стало очень болезненным процессом. Сначала я зашёл на этот сайт и вставил в их текст для кернинга свой шрифт.

Используя сочетания клавиш, я изменил каждое расстояние между буквами, которое меня не устраивало. Самым очевидным является сочетание V и A, но в этом тексте есть и такие сочетания, о которых я и подумать не мог.

Затем я конвертировал текст в прописные буквы и сделал то же самое для них.

12:59, четверг

Я экспортировал шрифт и конвертировал его в файл .ttf, чтобы отправить в Google. Несколько символов отсутствовали (квадратные скобки и символ копирайта), и я был уверен, что шрифт не примут. У меня также не было времени добавить различные знаки для поддержки разных языков.

Это не самый лучший шрифт, но это неплохо для первой попытки. Мне пришлось учиться пользоваться программой с нуля, но я успел закончить все за день и потому гордился собой.

Название шрифта? Odibee Sans (произносится как oh-dee-bee), то есть, One Day Build — ODB.

Заключение

Я отправил Odibee Sans в Google в мае 2017, и он все ещё находится в очереди на добавление. Команда предложила мне пока уделить время дизайну шрифта, хотя они признали, что это противоречит духу проекта.

Я поработал над шрифтом ещё один день. Я добавил все нужные знаки, а также внёс изменения примерно в 30 символов.

Более того, сейчас в шрифте существует более 1500 кернинговых пар, что стало значительным улучшением шрифта. А также я создал сайт: odibeesans.com.

Комментарии
Продолжить чтение

Разработка

Как сделать собственный VR-шлем за $100

Максим Кутте, 16-летний разработчик, создал свой open source шлем виртуальной реальности.

Леонид Боголюбов

Опубликовано

/

Меня зовут Максим Кутте. Мне 16 лет и я со своими друзьями, Йонасом Сессоном и Габриелем Комбе, сделал свой собственный шлем виртуальной реальности. Он стоил нам всего 100 долларов.

Благодаря моему учителю, я начал программировать в 13. Каждый понедельник и вторник вместо кафе я с друзьями ходил в его класс.

Я потратил один год на создание простой 8-битной операционной системы и участие в конкурсе роботов.

Затем я заинтересовался виртуальной реальностью. И мы с друзьями решили, что неплохо было бы создать собственный мир в VR, в котором мы могли бы проводить время после школы. Но Oculus  тогда стоил 700 долларов, и мы решили создать собственный шлем.

VR для всех

Напечатанная на 3D принтере запчасть

Причиной всего стало аниме под названием Sword Art Online. Его главный герой находится в ролевой виртуальной реальности – и так я влюбился в VR. Я хотел понять все ее аспекты.

Я купил самые дешевые компоненты, которые мог, и начал, изучая основы физики и математики виртуальной реальности (правильное ускорение, первообразные, кватернионы…) А потом мы заново изобрели VR. Я написал WRMHL, а затем с Габриелем FastVR. Объединив все это вместе, мы получили гарнитуру стоимостью $100.

Полностью открытая гарнитура для VR и комплект для разработки

Чтобы ускорить время разработки, мы сделали FastVR – SDK с открытым исходным кодом для разработчиков, который легко понять и кастомизировать. Он работает следующим образом:

  • Главный компьютер шлема вычисляет его позицию в пространстве
  • Позиция из шлема отправляется в WRMHL и часть вычислительной мощности процессора тратится на обработку этого сообщения
  • Затем FastVR извлекает данные и использует их для рендеринга VR-игры

Все, что вам надо – сделать на основе открытых исходников шлем.

Почему open source

Я хочу сделать VR мейнстримом. Поэтому я обратился к Уссаме Аммару, одному из соучредителей The Family. Я обсудил с ним создание компании и запуск на Kickstarter.

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

Мы отправились в Кремниевую долину, и Уссама познакомил меня с главным архитектором в Oculus, Атманом Бринштоком. И они дали мне ценный совет: сделай все это open source.

Следующий шаг

Есть еще много технических моментов, которые мы хотим улучшить.

Сейчас мы работаем над автономной VR-гарнитурой –  у нас уже есть как упрощенная версия с более дешевым 3D-трекингом.

Все это мы скоро выпустим.

Как начать

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

 

Комментарии
Продолжить чтение

Наша рассылка

Каждому подписавшемуся - "1 час на UI аудит": бесплатный ускоренный курс для разработчиков!

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X

Спасибо!

Теперь редакторы в курсе.