Разработка
Проблемы первого мира, с которыми сталкиваются разработчики
Разработчик Картик Годават о боли, с которой сталкиваются разработчики в своей сложной профессиональной жизни.
Разработчик Картик Годават о проблемах, с которыми сталкиваются разработчики в своей сложной профессиональной жизни.
Проблема первого мира — сравнительно тривиальная или небольшая проблема или фрустрация (в контрасте с серьезным проблемами, которые могут возникать в развивающихся странах).
Очень часто разработчики, сидящие в своих удобных креслах, забывают о реальных проблемах мира. Мы считаем свои небольшие сложности серьезными проблемами. Это моя попытка (лишь немного преувеличив) рассказать о “проблемах первого мира”, с которыми я сталкивался или о которых я думал в типичную воображаемую пятницу.
9:00 — чтобы добраться до моего офиса, нужна вечность
Приятное пятничное утро. Я еду в офис на UberX, и время прибытия оценено в 45 минут. Вместо того, чтобы читать книгу или слушать подкаст, я думаю, как было бы хорошо, если бы офис был в минуте ходьбы от моего дома. Где-то между этими мыслями я вспоминаю своего повара, который проезжает то же расстояние на велосипеде ежедневно, чтобы приготовить мне ужин вовремя. Но этого недостаточно, чтобы избавиться от чувства того, что я один страдаю от этих поездок. В тысячный раз я представляю переезд в безумно дорогую квартиру прямо около моего офиса. Рента в три раза выше, но оно того стоит! Если бы я только мог позволить её себе.
11:00 — скорость загрузки всего 30 Мб/с
Когда я добрался до офиса, я беру чай и сажусь работать. Я запускаю скачивание данных Kaggle. Но что-то не так. Время загрузки оценивается в четыре часа, но мне все нужно СЕЙЧАС. YouTube также отказывается показывать видео с 720p. Я разговариваю с коллегами о том, что офисный интернет застрял в каменном веке. Мне совершенно безразличен тот факт, что у людей в моем родном городе нет пропускной способности даже для хорошего видеозвонка.
11:30 — Апокалипсис сегодня. Wi-Fi не работает.
После внесения изменений я делаю git-пуш и случается ужасное. Интернет не работает. Я сразу же выражаю свое беспокойство всем вокруг. Я практически собрал вещи и поехал работать домой. К счастью, после пары минут интернет возвращается — мир спасен. Однако глубоко в душе я уже решил, что сегодня мне много не сделать.
11:45 — мне нужен новый MacBook
Я работаю на скромном ноутбуке с процессором i7 шестого поколения с 16 Гб оперативной памяти. Когда я прохожу по офису, я вижу команды с макбуками, которые могут управлять ими через трекпад.
Я завидую им и хочу MacBook. Да, в этом все дело. По этой причине я не так продуктивен.
13:00 — мне не нравится кафетерий
Не такой уж хороший день. Я захожу в кафетерий, надеясь найти изысканные деликатесы. К моему огорчению, еда довольно стандартна, мне уже надоело есть одинаковую еду каждый день.
Я пытаюсь поесть, но затем уговариваю коллег выбросить еду и пойти в ближайшую пиццерию. Когда мы заходим туда, я прохожу двух детей, просящих еды. Я притворяюсь, что их не существует.
14:00 — эта open source библиотека сломана
Демонстрируя свои исключительные навыки поиска, я нашел на GitHub библиотеку, которая должна решить мою проблему. Я сделал все, как описано в README, но в исходном коде возникает загадочная ошибка. Определение функции могло бы быть лучше, можно было бы сделать ещё пару параметров настройки.
Я чувствую, что мне не стоит тратить время на исправление проблемы. Неважно, что я не лучшим образом документирую свой код или не покрываю свои проекты тестами. Так как это open source проект, виноваты разработчики, которые внесли в него свой вклад.
Я виню разработчика в публикации проекта и трате моего времени и продолжаю применять свои навыки поиска для нахождения решения.
14:30 — мне недостаточно платят
Мой менеджер только что попросил меня развернуть новый промежуточный сервер для клиента сегодня вечером. Меня наняли, чтобы писать код, и это должно быть моей единственной целью. Как они посмели попросить меня работать DevOps-инженером? У меня будет встреча через полчаса. Я считаю, что они обязаны дать мне хорошую прибавку, потому что я делаю больше, чем должен.
15:30 — мне прибавили недостаточно
Моя встреча прошла хорошо. Менеджмент ценит мои усилия и ежедневное решение проблем. Но я вышел с грустным лицом. Почему? Потому что я не получил 45% прибавку, как мой друг в другой компании (хорошо инвестируемой).
Как я теперь должен встречаться со своими друзьями? Я не упоминаю факт, что получил двузначную прибавку, которая заметно выше уровня инфляции в моей стране.
16:00 — я самозванец?
Я пью чай, рассматривая этот важный вопрос. Я слышал, как многие люди говорят, что страдают от синдрома самозванца, и я думаю, что мог бы тоже от него страдать. Когда я заканчиваю пить успокаивающий чай, я начинаю чувствовать напряжение, потому что он может быть и у меня!
17:30 — закон Мерфи
Все, что может пойти не так, пойдет не так.
Я написал тесты, я отправил code review. Я сделал все, что от меня ожидали. Но запланированное начало продакшена провалилось.
Я зол, потому что хотел встретиться с друзьями. Кажется, что ситуацию можно было избежать, если бы кто-то написал тест ChaosMonkey. Очевидно, это должен был быть не я. Я не могу делать все, в конце концов.
Примерно спустя час, проблема решена. Я могу наконец пойти домой и расслабиться, чтобы вернуться в понедельник. Но в понедельник утром я открываю Uber и вижу, что нет доступных машин… И цикл повторяется.