«Со смертью кодинга инженеры повернутся лицом к остальной части человечества»

Разработчик AnyPerks о будущей автоматизации программирования

Разработчик компании AnyPerks Лорен Мендоза написала на Medium заметку о том, что написание кода и профессия программиста переоценены и в будущем необходимость в них снизится.

Редакция vc.ru публикует перевод материала, выполненный командой студии мобильной разработки Live Typing.

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

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

Когда-то я писала электронную музыку в программе Reason. В ней наглядно представлены связи между отдельными блоками: просто бери провод и тяни его из одного гнезда к другому. Этим она в свое время меня и покорила. Провода лучше выпадающих меню, которыми были заражены передовые программы 2000-х годов (по схожим причинам я очень люблю Adobe Flash CS3 Professional). С интерфейсом Reason я осознавала, что делала, поэтому музыки я создала больше, чем Flash-роликов.

Нам не хватает веселья

Не знаю, как так получилось, но в какой-то момент представители ИТ-сферы стали разработчиками, а из разработчиков получились инженеры программного обеспечения. Мне нравится, когда меня называют инженером: ещё бы, я же посвятила «обучению» три месяца. Вот только быть инженером — значит решать новые проблемы и копать глубже. Это интеллектуальная работа, на какую наша работа не очень похожа.

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

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

Не накидать ли побольше CSS

Пожалуй, это неоспоримый факт: чем оригинальнее дизайн твоего интерфейса, тем сложнее людям в нем разобраться. Есть исправно работающие пользовательские сценарии, есть выбитый в камне визуальный язык. Так зачем выдумывать новый? Это контрпродуктивно.

Чтобы работа в интернете шла гладко, нам нужно использовать основные элементы и тасовать их для достижения цели: «металл, черный цвет, зло», «бизнес, респектабельность, голубой цвет», «хипстеры, веселье, Apple» или «мило, мама оценит». Несколько ключевых слов — и вот вам готовый стиль. И пропади оно пропадом — писать код, чтобы подвинуть что-то на пять пикселей.

Нужно умерить пыл

Написание кода у инженеров считается священным Граалем. «Правильные инженеры пишут код, — говорит правильный инженер. — Написание кода — как раз то, что делает тебя правильным инженером». Многие соединяют свое «эго», свою идентичность с тем, что они пишут код. Не исключено, что таким людям нужна помощь психолога, и я не шучу. Я сама становлюсь таким человеком.

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

Кодить — это тупо

Кодинг предполагает опечатки. Более того, он дает простор для «творчества», и тогда код получается с душком. А вообще, код — в большинстве случаев попросту громоздкая штука. Инженеры копаются в синтаксисе, опечатках и отступах, проводят линтинг, исправляют ошибки, спорят о стилях и лучших практиках и создают ярлыки для того, чтобы часть кода писала себя сама. Это абсурд и трата времени.

Будущее близко

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

Стартап Algolia позволил улучшить поиск. Я не знаю, как они это делают, но точно знаю, что компьютер дешевле и лучше человека в вопросах оптимизации структурированных данных.

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

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

Решение

Задача продуктового менеджера — сделать продукт таким, каким он должен быть, и не иметь никаких дел с кодом. Единственное, о чём нужно думать компаниям — об уникальности их разработки, а всё, что уже придумано, просто следует использовать заново. Всем, кто испытывает энтузиазм по поводу опенсорса, хочу сказать, что большинство проектов — отстой, они не поддерживаются и не используются компаниями-энтерпрайзами. Компании изобретают велосипед и делают двойную работу.

Сейчас я размышляю над таким интерфейсом, который по принципу drag-and-drop позволит создавать разработки со всеми нужными фичами, с клиентской и серверной частью и без строчки кода. Понятия не имею, как я буду это делать, но, думаю, пущу в ход уже упомянутые навыки работы с Adobe Flash CS3 Professional. Ладно, шучу. Скорее всего, я сделаю это на React.

Выгоды

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

Оздоровление инженерной среды

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

Что делать? Уходить в виртуальную реальность и созидать там. Я купила себе шлем HTC Vive и просто зависла, настолько это круто.

0
163 комментария
Написать комментарий...
Andrey Harchenko

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

Ответить
Развернуть ветку
Татьяна Минаева

Ну смысл в том, что кол-во кодеров необходимое может сократиться.

Dreamveawer, Frontpage знаете? А до него люди ручками в блокноте html код писали.

Также сейчас и фреймворки вырастут в модульные конструкторы. Частично это сделали CMS, CMF, дальше больше.

Ответить
Развернуть ветку
Ильяс Билалов

Татьяна, не думаю, что у меня получится что-то вам объяснить, но всё-таки я попытаюсь. Мне интересны сложные задачи.

Простой пример: лады собирают роботы, феррари собираются в ручную.
У лады первые поломки в 20 000 км, у феррари в 200 000 км.

Так вот, программирование - это как устройство автомобилей - много механизмов, зависимостей и функциональных особенностей.

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

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

Ответить
Развернуть ветку
160 комментариев
Раскрывать всегда