169 похожих чатов

Про работу в потоке Заметил что моя продуктивность на долгих задачах

снижается. Стало интересно разобраться как так получается.

Вот я, когда пишу кровавый тырпрайз на шарпе, жуть как не люблю добавлять поля в базу данных. То есть нет, сама операция-то простая — закинуть проперть в класс, заскаффолдить миграцию... А дальше?

А дальше это всё надо как-то отдебажить. И это, блин, долго: нужен сервер БД для дебага. Хорошо если есть docker-образ, чтобы быстренько поднять локально. А если его нет? А если надо ставить MSSQL и создавать базу данных или восстанавливать бекап? А если надо подключаться через VPN к существующему серверу? Вот все эта мелочёвка отнимает тонну времени. Что при этом происходит в голове?

А в голове я держу названия 3-5 классов в коде, столько же методов, представление как это всё лежит на диске и как взаимодействует. Помню какую переменную куда добавил, какой метод куда докинул, какую сборку подключил. Это позволяет быстро принимать решения и воплощать их в коде. Это и называется "работать в потоке". Так вот, когда работающий в потоке мозг сталкивается с необходимостью подождать — ощущение, будто поезд, несущийся во всех парах втыкается в скалу.

При том с современным тулингом ждать приходится долго так, основательно. До нескольких минут. Ждать пока сраный VPN подключится, билд пройдёт, виртуалка поднимается, бэкап развернётся, фронтенд соберётся. Что делать в это время? Обычно я стараюсь сохранить состояние потока до последнего и переключиться на другую задачу, или ответить коллеге, или прочесть почту. Но если ждать надо дольше 5 минут — я из потока вываливаюсь. Иду твиттер читать, ютубчик глядеть, телефон проверять. Всё, здравствуй прокрастинация.

Вот так я обнаруживаю, что сижу и тупо скроллю интернет. А пока я его скроллю — контекст задачи из головы выветривается. Помилуйте, ну какая задача? Там вон сиськи показывают, в подкасте KUJI что-то интересное рассказывают, в твиттере опять феминистки сцепились. Мозг остывает и к работе я возвращаюсь через полчаса минимум. Медленно влезаю обратно в поток, подгружаю контекст задачи...

Так, что я там хотел сделать? А, поле в базу добавить!

...

В первом сезоне Halt and Catch Fire протагонист толкал отличный тейк о том, что отклик машины менее 400мс — это совершенно иной опыт взаимодействия. Когда ждать надо долго — хочется отвлечься. Поглядеть телек, положить вещи в стиралку, сделать себе кофе. Отклик менее 400мс мозг воспринимает как мгновенный. А когда машина мгновенно отвечает на твои команды — она тебя засасывает. Приковывает твоё внимание. Отвлекаться не хочется совершенно. Это и есть состояние потока.

Это я всё к чему? Подозреваю, что не у меня одного голова так работает. И мораль тут следующая: архитектурное говно, тонна завивимостей, уебанский доступ к инфраструктуре, долгая сборка и запуск на дебаг — всё это снижает development experience и повышает когнитивную ёмкость. Разрабы прокрастинируют как описано выше, и фичи пилятся медленно. Всё то рабочее время, которое оплачивается каждый месяц, уходит просто на бесполезное ожидание, переключения контекста и прочее нагревание воздуха в помещении. А если ещё сдобрить парой созвонов, ммм...

Понимаете, если разработка идёт медленно — проблема не в разрабах. Разве что буддийский монах сможет сидеть и 10 минут смотреть в прогресс-бар, сохраняя концентрацию. Ваша команда может сплошь состоять из супер-быстрых и умных литкод-ниндзей, но если проект не располагает к оптимальному использованию когнитивных ресурсов, то толку от ваших top-3%-профессионалов будет не больше чем от команды джунов.

Когнитивная ёмкость и development experience — просто непаханное поле для исследований и разработок. Но современная архитектурная мысль движется, мне кажется, в диаметрально противоположном направлении: чем сложнее — тем лучше. А покуда оно так — всё у нас будет через жопу.

Такие дела

14 ответов

2 просмотра

вышел из потока и читаю это)

Dmitry- Автор вопроса
Ihor Ponomarenko
вышел из потока и читаю это)

ну хороший пост. про важность хорошего железа для разраба и процесса

Dmitry
ну хороший пост. про важность хорошего железа для ...

на самом деле не понимаю людей которые жмуться себе на норм железо или хотя бы ссд какойто, это твой инстремунт, он тебя кормит, тебе должно быть комфортно

Dmitry
ну хороший пост. про важность хорошего железа для ...

Или может просто нужно пользоваться нормальными tools, которые не требуют суперкомпьютера для тривиальных задач

Dmitry- Автор вопроса
Alexander Luzgarev
Или может просто нужно пользоваться нормальными to...

для меня там хорошие примеры, почему нужно нормальное (не топовое, а нормальное для твоих задач) железо

А дальше это всё надо как-то отдебажить. И это, блин, долго: нужен сервер БД для дебага. Хорошо если есть docker-образ, чтобы быстренько поднять локально. А если его нет? А если надо ставить MSSQL и создавать базу данных или восстанавливать бекап? А если надо подключаться через VPN к существующему серверу? Вот все эта мелочёвка отнимает тонну времени. Что при этом происходит в голове?

Mr. N
Для етого есть SSH

в котором можно пробросить порт

Максимально душевный крик, близкий абсолютному большинству Энтерпрайз проектов

Ну ладно я не работаю в галере , то может не уловил мысль😁

Ihor Volokhovych
Тебя в .нет talks ищут

Сомнительно, они меня оттуда выгнали

Dmitry- Автор вопроса
Mr. N
Ну ладно я не работаю в галере , то может не улови...

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

Похожие вопросы

Обсуждают сегодня

А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
16
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
А какие чаты вообще в ходу? Auto aim? И что еше
do you think you're better off alone? А
13
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта