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

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

Начнем с плохих новостей ...

1. Ваша работа никогда не заканчивается

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

Все, что он делает неправильно. И все, что люди хотят от него, но чего не делает.

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

Мы мечтаем о дне, когда кто-нибудь поблагодарит нас за то, что мы отлично выполнили все в проекте. Без каких-либо дополнительных требований.

Лучше спецификации и требования заранее, пожалуйста!

2. Люди не понимают, чем вы занимаетесь (все еще)

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

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

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

Так что вы просто соглашаетесь на «Я работаю с компьютерами» в социальных сетях.

3. Так много новых языков и фреймворков, которые нужно изучить.

За то время, которое вы потратили на прочтение этой статьи, вероятно, есть еще один новый фреймворк JavaScript, который вы действительно должны использовать. Похоже, что никто больше не кодирует HTML напрямую.

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

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

Изучение любых дополнений к более чем 400 уже существующим языкам программирования и фреймворкам будет постоянной работой.

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

Тебе должно быть стыдно.

4. Работа с чужим кодом.

«КТО НАПИСАЛ ЭТОТ КОД ?!»

«Это полные спагетти. Это не имеет никакого смысла!"

«Я проверяю историю коммитов… я хочу знать, кто написал этот мусор…».

«Ой, подожди, подожди….

«Это был я в прошлом году».

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

Определить намерения первоначального разработчика еще сложнее, когда этого разработчика больше нет, а код плохо написан, прокомментирован или задокументирован.

Если бы люди только поняли.

Но есть и много хорошего…

Современная разработка программного обеспечения никогда не была такой простой.

Вот почему ...

Приложения теперь сообщают вам, когда они заболели

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

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

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

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

Ваши инструменты могут сделать за вас тяжелую работу

Раньше нам приходилось беспокоиться только о нескольких устройствах и размерах экрана.

Теперь ситуация может полностью измениться всякий раз, когда на презентации Apple, Samsung или Google появляется новый продукт.

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

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

Xamarin, который был приобретен Microsoft в 2016 году, позволил тысячам команд создавать собственные приложения для Android, iOS и Windows, используя существующие навыки, команды и код, вместо того, чтобы создавать отдельные приложения для каждой платформы.

А такие инструменты, как Foundation, Bootstrap и Semantic UI, означают, что разработчикам интерфейсов больше не нужно начинать с пустого файла CSS, чтобы их пиксели работали нормально.

Без этих инструментов жизнь была бы намного труднее, ведь не делать все с нуля - это роскошь.

Дни доставки прошли - ура!

Раньше дни отгрузки требовали много нервов и стресса, так как время, когда нужно было нажать кнопку «Отпустить к производству», приближалось.

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

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

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

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

Так что ты думаешь?

Было ли у нас когда-нибудь так хорошо?

Что для вас самое лучшее и худшее в разработке программного обеспечения?