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

Лично я предпочитаю не раскрывать, на какую сторону да / нет спектра аутизма я падаю, кроме того, что я где-то там. Слишком конкретная информация может привести читателя к слишком широко распространенным предположениям о людях с аутизмом. Аутизм - это нечеткая вещь, которая может иметь множество элементов, причем люди могут иметь элементы или отсутствовать в них случайным образом. Я, очевидно, нарисовал гораздо лучшую руку, чем другие, так как у меня нет желания структурированных дней или общей жесткости, я довольно социальный и чуткий, отвечаю на язык тела других даже больше, чем нейротипичные люди. Очевидно, мне посчастливилось получить кучу качеств, повышающих производительность, которые уберегут меня от финансовых проблем. У многих других людей всего спектра есть сильные стороны, которые они никогда не смогут использовать на рабочем месте. Давай изменим это.

Я работал над стратегиями. В надежде, что они принесут пользу другим, вот они:

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

(отредактировано, чтобы добавить: то, что я действительно хотел бы закончить, это терминология, которую можно использовать с посторонними и которая эффективно помогает донести мысль. Тот, кто придумал термин «технический долг», проделал огромную работу, объясняя людям, не имеющим отношения к делу. программисты, почему срезать углы - это плохо, даже если у вас изначально есть какой-то один проект, более своевременный. Я хочу использовать аналогичные термины, чтобы объяснить, что вы не можете ожидать, что каждый программист будет хорошо работать при рандомизации, и что рандомизация означает разные вещи для разных людей)

Модели внимания похожи на типы транспортных средств

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

Моя собственная концентрация больше похожа на грузовой поезд. И я имею в виду старый добрый американский грузовой поезд 2017 года, лишенный всех тех функций безопасности, которые были введены немецкими поездами в 1898–1930 годах. Большой. Тяжелый. 20 тонн осевой нагрузки, а не тупые немецкие 16 тонн. Такой поезд, который сбрасывает фюзеляжи 737 в реку, когда ты облажался.

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

Политики некоторых компаний разрабатываются исключительно людьми, которых я сравниваю с водителями маленьких самокатов для доставки пиццы (многозадачными, людьми и т. Д.). Независимо от того, насколько хорошо они кормят свой город и насколько все ценят их работу, политику, разработанную там, необходимо пересматривать с учетом других транспортных средств. Сколько грузовых поездов числится на вашей доске по политике в области рабочей среды? Сколько спорткаров?

Может быть трудно увидеть различия между инженерами (более тяжелые машины), когда вы сами находитесь далеко в зоне многозадачности (динамичный автомобиль). И наоборот. Не у всех инженеров одинаковые модели внимания. Есть инженеры, которые добровольно остаются на открытой площадке и часто встречаются с менеджерами. У кого многозадачность. Я сравниваю их со спортивными автомобилями. Когда менеджеры заполняют собрания о рабочих настройках типами скутеров и добавляют инженеров, они, вероятно, назначат инженеров типа спортивных автомобилей. Тогда вы все еще забываете получать данные от грузовых поездов. Ваш дизайн может оказаться для них неподходящим.

«Рабочие места похожи на выгоревшие ЭЛТ-мониторы»

Моя рабочая среда похожа на старый трубчатый монитор (или одну из тех дрянных 4k 40-дюймовых панелей Philips 2015 года выпуска) в том смысле, что он сильно выгорает при работе без заставки. Я могу сконцентрироваться и хорошо поработать в загруженных кафе, аэропортах, под взлетно-посадочными полосами и в бесчисленном множестве других отвлекающих условий - на какое-то время. Но это истекает. Одиночные мелкие неприятности со временем множатся. Открытая офисная среда ничем не отличается. Поначалу никаких проблем. Но потом происходит выгорание экрана. Специфичные люди. Конкретные тропы, по которым люди часто ходят (у кого-нибудь есть клеевые ловушки?). Звукоотражающие поверхности вокруг всей группы. Не все офисы открытого типа одинаковы, отнюдь не [1]. Я балую себя финским и голландским хэви-металом и знаю, что даже через мои высококачественные закрытые наушники мои коллеги могут это услышать. В долгосрочной перспективе мне нужно оптимизировать рабочее место. Если Corporate Misc (tm) регулярно сбрасывает мои усилия, это является проблемой.

Да, сегодня я могу работать в этом Starbucks, потому что, хотя в нем есть неприятности, которые еще не сгорели. Если бы я попытался работать там 40+ часов в неделю, вечеринка закончилась бы очень быстро. Долговременные неудобства на рабочем месте необходимо исправить, иначе они отвлекут внимание.

«Губки для внимания»

Мне нужны губки для внимания. В дополнение к собственно проекту, над которым я одновременно работаю. Работа колеблется по способности удерживать внимание. Естественно колеблется и неизбежно, но также из-за неисправных вещей (таких как медленное выполнение компиляции, о котором я писал здесь: https://hackernoon.com/software-development-at-1-hz-5530bb58fc0e).

Мне нужно что-то бегающее, за что блуждающее внимание цепляется с предсказуемым паттерном, пока подъем внимания не закончится. Хорошим примером является запущенный сериал, который я смотрел много раз раньше и до сих пор получаю крошечные новые детали - скажем, Вавилон 5. Важно, чтобы Губка внимания не была интерактивной, потому что тогда она может съесть реальный рабочий путь. Если я заранее не приготовил губку для концентрации внимания, то повышение внимания может быстро превратиться в случайный подбор вещей - скажем, при просмотре Ebay в поисках гитар. Хотя нет проблем с переключением обратно на работу с Вавилона 5, когда рабочая среда готова к следующему продуктивному всплеску, Ebay является интерактивным. Я не могу отказаться от случайно попавшейся вещи. Кроме того, у меня уже слишком много гитар (не говоря уже о микшерных пультах). У многих людей это даже хуже, чем у меня, они ходят в соцсети или (вздрагивают) новости. Если они поднимают что-то неприятное, рабочий день наносит еще больший ущерб.

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

Если вы последуете моим аргументам здесь, по крайней мере, в отношении некоторых сотрудников, то вы должны прояснить, что эти методы считаются нормальными на вашем месте. Если вы этого не сделаете, то это подхватят только более смелые типы (при условии, что они даже знали о каких-либо методах ограничения урона от подъема фокуса).

Согласование, спецификации и «оставьте отдельные предположения в одном месте кода»

[Я должен прояснить это для непрограммистов. Когда вы пишете код, вы подчиняетесь ограничениям своего языка программирования и часто вынуждены повторять один и тот же предполагаемый факт (как это должно вести себя?) В нескольких местах. Непрограммисты, вероятно, не могут представить, насколько ограничены большинство языков программирования. Если это называется «неповторимым повторением», и это создает огромные проблемы, когда вам приходится возвращать одно предположение, которое сейчас находится в неизвестном количестве мест]

Конечно, мне нравится писать код, сидя в одиночестве и просто делая это. Очевидно, я также координирую действия с людьми. Стратегия здесь заключается в том, что я использую периоды координации, а затем серии сажусь и пишу одну рабочую строку кода за другой. Рассинхронизация с требованиями? Пожалуйста. Программированием занимаюсь давно. Я никогда не видел полных требований до начала кодирования. Если только они не были BS в первую очередь. Что случается часто. Кто-нибудь заранее предъявляет мне «полные» требования, я не могу им доверять. Прости. Ничего личного. Я знаю, что вы можете поверить, что ваши спецификации полны и правильны, но вы все равно не сможете меня убедить. Пожалуйста, поймите, что я благодарен, глубоко благодарен вам за то, что вы попытались выполнить всю работу. Вы проделали гораздо лучшую работу, чем обычно, и можете быть уверены, что это очень поможет продвижению проекта вперед. Ваша работа очень ценится. Моя собственная обязанность здесь - сохранять гибкость. Ничего личного.

Вместо того, чтобы постоянно разрывать фактическую деятельность по написанию кода, отвлекая себя и 1+ других людей, я использую подход, который я называю «хранить все допущения в одном месте кода» , который я использую с вычислениями во время компиляции, концепцией, о которой я пишу в другом месте. Вместо того, чтобы разрушать поток, вы сохраняете код безопасным для изменения каждый раз, когда вы заполняете пробел. Затем вы настраиваетесь на следующую фазу реальной синхронизации. Каждый заполненный мной бланк по-прежнему находится в одном месте кода. Когда я узнаю истинное значение бланка, это изменение на одно место, без риска того, что тогда другие части кода не будут синхронизированы. Не только на неделю. В течение следующих 30 лет эта кодовая база может жить. 30 лет постоянного изменения отдельных исходных предположений, которые вы хотите редактировать в одном месте кода, без необходимости выслеживать неизвестное количество мест, связанных с одним предположением. Спустя 23 года после того, как ушел последний человек, который изначально реализовал его. 30 лет. Так долго длится настоящий софт.

[для руководителей и менеджеров:]

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

Отклонение от $ $ $ $ создания нового проекта на поиски предыдущего предположения в неизвестном количестве мест - один из самых сильных патогенов внимания. Мало того, что вы не получаете $$$ за эту работу, ваши разработчики с гораздо большей вероятностью окажутся в «зоне» (вовлеченности, способствующей быстрой работе) с исходным проектом, а это именно то, что вам нужно, поскольку это $$ $ project, и почти наверняка выпадет из «зоны» на обочине неизвестной глубины и продолжительности. Это отвлекает и дорого обходится.

Процентная ставка, которую вы платите по техническому долгу для такого «спреда допущений», очень высока.

Фиксированные информационные потоки могут не работать

Обычно я не могу усваивать информацию в темпе других людей. На некоторых деталях мне нужно остановиться, когда других нет. Другие детали из потока информации с фиксированным темпом приходят ко мне быстрее, чем к другим, и в этот момент мое внимание потенциально переходит в те места, откуда оно не вернется. Это может причинить мне физическую боль, когда другие люди насильно захватывают мое внимание, а затем тратят его (у моих врачей есть даже физическое объяснение). Я могу обойти это, но давайте будем честными, почему бы мне не научиться тому, как это работает для меня? Другие люди учатся по-другому, и все мы получаем отличное сочетание навыков и подходов. Монокультура не работает в программной инженерии.

Кальвинбол

Я могу играть в Calvinball на рабочем месте. Даже на длительное время. Я не могу делать это одновременно с написанием кода. Я говорю всем вокруг, что им нужно выбрать одно или другое.

(Если вы не знакомы с игрой, поищите ее. Вы увидите истинное отражение многих корпоративных механизмов)

Другие вещи, которые я заметил:

  • Я сильно страдаю, когда непродуктивен из-за того, что не могу сконцентрироваться. Могут появиться всевозможные разочарования, и часто возникают последствия того, что отвлекало мое внимание. Покупать гитару №42 на Ebay не весело. Ни покупки, ни владения, ни отсутствия достижений в пятницу вечером. Я хочу программировать. Я хочу увидеть, как в пятницу вечером запускался какой-то код, который не запускался в прошлую пятницу. Я даже на этих чертовых гитарах не играю. Мне нравится программировать, а не играть на гитаре.
  • Мне не нужен и не нужен офис для одного человека. Лучше всего я работал в комнате для трех человек, где двое других работали над одним и тем же кодом и имели одинаковые интересы. Комната, в которой мы взломали «запертую» систему управления кондиционером и построили собственные каналы для распределения воздуха, и нас оставили в этом месте на долгое время. Спасибо, Мэтт и Джесси.

Сноски:

[1] «Открытые рабочие пространства» в реальном мире и их сенсорное воздействие:

  • Mothership говорит: «Вы должны использовать открытые сидения». Бюджет местной организации ограничен. Результат: повсюду звукоотражающие поверхности. Бетон, сталь, камень, стекло. Ни даже потолочной плитки (для техничного вида, у-у-у. Шуддуп). Так что все гудение от инженерных сетей на потолке (теперь под потолком, а не внутри, сам потолок тоже звукоотражающий, так что вы понимаете, тройная доза шума?) Для лучшего эффекта интегрируйте «телефонные будки» прямо там, лицом в холл, и отделяйте их только занавесками. У меня это не работает. Я могу работать с открытым рабочим пространством, если моя спина не находится в зоне движения людей. Но что за хз с соборной акустикой? Нет. Необходимо прекратить чрезмерное упрощение. Не все открытые пространства одинаковы.
  • люди, координирующие свои действия в открытых пространствах… Нет, они не согласны. Один человек входит и быстро бормочет о том, чего хочет. Целевой человек копирует и вставляет миллионы ссылок браузера с рабочего стола на ноутбук, а затем оба уходит, чтобы не беспокоить других. Не получилось, другие к тому времени уже рандомизированы. Тогда два координатора, возможно, не найдут места вне пределов слышимости, и они отразятся в стеклянном дворце. Это не улучшает общение. Офис из трех человек с людьми, фактически взламывающими один и тот же код, - это круто. Даже если кто-то будет рандомизирован, теперь у вас есть один или, может быть, два человека, которые пьют кофе.
  • система H-WHACK будет ужасной. Ледяные сквозняки летят по центру дороги, вдали от стен, ударяя людей, но не попадая в термометры. С другой стороны, очаги застоявшегося горячего воздуха. Ваш домовладелец не сделает вам дерьма, потому что он сказал вам, что это не сработает, пока вы не переделали пространство таким образом. Правильно. Специалисты по координации строительства откажутся даже приходить в «хакерские часы», так как это уже после их рабочего времени. Климат обычно резко меняется в течение дня, когда переходят солнце, облака и темнота, не говоря уже о том, что в некоторых местах происходит то, что они говорят, выключают всю систему «после работы», иначе известное как «время, когда мы действительно можем писать код». Климат также сильно меняется в зависимости от времени года. Органы управления кондиционированием воздуха в большинстве существующих офисных зданий не смогут регулировать открытые пространства при ежедневных и сезонных изменениях. Они не были созданы для этого. Ваш бюджет не позволяет переделать кондиционер с нуля. Ваша компания начнет перемещать людей в зависимости от их рабочего времени и температурных предпочтений, исходя из того, что, по их мнению, температура там в этом сезоне, прямо сейчас. Повторяйте каждую смену сезона. Теперь людей распределяют случайным образом, а не по функциональным группам. У меня это не работает. Работает ли это для вас?

Предполагая, что рабочее открытое пространство (редко), по моим оценкам, около 30% программистов активно любят открытые пространства, 40% будут просто делать то, что говорит компания, никогда не оценивая, хорошо это или плохо для них, а 30% достаточно страдают, чтобы это заметить. Это для функционального пространства. Если вы сделаете указанные выше ошибки, вы измените ситуацию в худшую сторону. Кто рассчитывает бюджет по этим процентам? Есть ли у кого-нибудь цифры лучше, чем я, вытаскивающий их из воздуха? Никогда не видел их за пределами пустых вставок презентации «это на основе данных (и вы не можете их увидеть)».

[2] Я писал о сроках выполнения работы с инструментами программирования здесь:

Разработка программного обеспечения с частотой 1 Гц - разглагольствования против медленных инструментов программирования. Эта статья задела нервы и попала на первую полосу HackerNews. Внимание многих людей отвлекают слишком частые слишком длинные паузы, которые носят технический (не человеческий или корпоративный) характер: https://hackernoon.com/software-development-at-1-hz-5530bb58fc0e