Эта статья — совет и наставление всем джуниорам и мидлам, которые впервые проходят через кризис в нашей IT-индустрии. Меня зовут Валентин Драздов, потомственный инженер-программист во втором поколении, 16+ лет работаю профессионально и 20+ лет в принципе участвую в различной деятельности, связанной с ИТ. Я успел застать несколько кризисов в индустрии, и в тот момент, когда мы уже ощущаем действие нового удара — хочу поделиться с молодежью историями про предыдущие разы и опытом как всё это преодолевать (а может быть найти повод сознаться себе, что не надо оно больше).

Парадоксальность кризисов в IT заключается в том, что сами айтишники, как правило, оказываются к ним не готовы. Почему парадоксальность? А потому, что в принципе сами по себе айтишники занимаются разработкой и совершенствованием систем автоматизации, которые напрямую влияют на все сферы деятельности человека, провоцируя кризисы в них на постоянной основе.Сам смысл многих разработок заключается в том, чтобы работу условных десятерых мог делать условный один человек. А остальные условные девять... могут начать "заниматься более интересными вещами" (где именно — обычно не принято говорить, но все всё понимают).На тот случай, если по какой-то причине это стало открытием для кого-то из молодых специалистов с горящими глазами, я подготовил один пример, который должен расставить всё по своим местам:

Пример кризисов, создаваемых айтишниками

Наверное, если не каждый, то почти почти каждый человек, выросший в советском \ постсоветском \ снг-пространстве, знает фильм "Служебный роман". Действие всего фильма происходит в неком "Статистическом учреждении".

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

Кадр из фильма "Служебный роман" (1977),
Кадр из фильма "Служебный роман" (1977),

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

Первый кризис - появление компьютеров и электронных таблиц (привет, Excel). Компьютеры избавили нас от нужды марать тонны бумажных документов на черновики и ошибочные редакции (один Backspace спас, наверное, миллионы миллиардов гектаров деревьев). А еще программы электронных таблиц (тот же эксель) умеют сами рисовать графики по данным обновляя их за миллисекунды! Итог — минус много-много человек, которые занимались переписыванием черновиков в чистовики, рисовали графики. Их умения и вложенные человеко-часы стали просто неактуальны. Кто-то нашел себе новое применение, а кто-то уволился Влияние колоссальное.

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

Третий кризис - появление аналитических систем \ BI-платформ с прицелом на self-service. Теперь настраивать сбор статистики из десятков источников, регламенты обновления данных, автоматические расчеты и преобразования, отрисовку сложных визуализаций могут обычные профессионалы своего дела (менеджеры и специалисты из Банков, Производства, Логистики, Продаж) без привлечения высококвалифицированных специалистов по статистике, программистов, системных администраторов и прочих уже неактуальных им людей.

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

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

И это лишь один пример, а на самом деле IT и автоматизация сделала подобных кризисов во всех сферах несчетное количество.

Как давно айтишка "кушает" сама себя?

И тут, глядя на то, что творится с рынком труда в айтишке не только в России, но и в Мире (в Америке нынче популярен мем — LAID OFF), появляется вопрос — неужели IT-шка только сейчас начала пожинать свои же плоды автоматизации и теперь "смерть с косой" дошла до программистов? Неужели "мы сами себя переиграли и уничтожили"?

Наверное, такой вопрос встает в первую очередь перед теми, кто в айти "вкатился" в последние лет 5, может быть край 10. Для молодых специалистов это действительно первый серьезный кризис, который уже оставил "на обочине истории" тысячи профессионалов, и оставит еще десятки тысяч. Но это далеко не первый кризис, мне довелось знать очень много крутых профессионалов, которые закончили карьеру 10-20 лет назад в прошлые кризисы, не выдержав давления изменений.

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

Кризис программистов C++ & WinAPI => C# & .NET (WinForms)

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

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

Но главным минусом этого стека являлось то, что "на C++ можно отстрелить себе ногу". Даже самая безобидная ошибка, маленькая опечатка могла приводить к фатальным последствиям при эксплуатации ПО. Для того, чтобы организовывать разработку лучшим образом — приходилось раздувать штат очень дорогих программистов и тестировщиков.

"Революцию" произвело появление платформы .NET. Платформа "закрывала" собой всю работу с системным программным интерфейсом, давала альтернативный способ работы с экранными формами и самое главное, помогала следить за утечками памяти и неэффективным расходованием ресурсов.

По началу платформу встретили очень холодно и скептически, главная претензия была в том, что теперь "Программисты не понимают как происходит работа с оперативной памятью, с системными вызовами, прерываниями, интерфейсами, и так далее...". Самый простой и железобетонный аргумент заключался в том, что калькулятор, написанный на C+WinAPI занимает меньше места чем на C#+WinForms как на диске, так и памяти в оперативке (не говоря о потреблении ресурсов процессора).

Но, несмотря на весь скептицизм, практика показала, что если для разработки калькулятора на чистом C & WinAPI надо потратить условные 8 часов, то на C# & WinForms всего 1 час. Если на поддержание и сопровождения программы на C++ нужен целый отдел очень дорогих программистов и тестировщиков, то на такие же операции с C# нужен 1-2 средненьких программиста и 1 молоденький QA. Как говориться, "Бабло побеждает зло", и экономика сделала своё дело. Пусть не сразу, но компании массово перешли от разработки на C\C++ к разработке на C# / .NET (да, я прекрасно знаю что кто-то еще на Java перешел, сам из таких, но не хочется раздувать статью слишком большим количеством примеров. Предлагаю читателям из "тех времен" написать про альтернативные ветки самостоятельно).

Этот кризис я почувствовал на первом месте работы, в ГосНИИ Гражданской Авиации. Когда я устроился туда еще студентом, мне дали задание написать программу для сжатия фотографий перед отправкой по плохим каналам связи. Я написал эту программу на C++ и WinAPI за месяц с небольшим (кстати, программа до сих пор доступна на сайте ведомства). Позже я постиг C# и ради интереса написал такую же программу в рамках изучения языка и WinForms... С около-нулевыми знаниями в .NET я сделал программу 1 в 1 всего за два дня. В этот момент я понял, что будущее точно за "грязным" .NET, а не за чистокровным WinAPI.

Та самая программа на C++, на разработку которой у меня ушел месяц. В графическом интерфейсе и работе с файлами решал проблемы кодировок на разных системах в разных странах, решал проблему "зависаний" интерфейса при долгой обработке изображений. Всё это в .NET было практически "из коробки".
Та самая программа на C++, на разработку которой у меня ушел месяц. В графическом интерфейсе и работе с файлами решал проблемы кодировок на разных системах в разных странах, решал проблему "зависаний" интерфейса при долгой обработке изображений. Всё это в .NET было практически "из коробки".

Кризис системных администраторов => DevOps

Во времена, когда я еще только поступал в свой университет, я успел застать и вживую наблюдать ��ольшие отделы, где сидело по 10+ системных администраторов, обслуживающих компании. Потребность в постоянном перетаскивании серверов, рабочих станций, перепрокладке сетей, переустановке ОС и ПО для различных стендов — всё это обосновывало большое количество людей в IT-штате. Многие такие админы могли в открытую играть в CS 1.6, WoW и прочие сетевые игры во время рабочего дня, потому что при острой необходимости для бизнеса они могли отработать ночами и выходными, что вполне себе окупало их "безделие".

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

Пример веб-интерфейса управления нодами в отечественном решении "Боцман", взято из документации. Множество серверов, единиц управления на одном экране. Не надо никуда бежать, не надо никуда идти. Всё здесь, под рукой, за одним кликом мышки или одной строчкой скрипта.
Пример веб-интерфейса управления нодами в отечественном решении "Боцман", взято из документации. Множество серверов, единиц управления на одном экране. Не надо никуда бежать, не надо никуда идти. Всё здесь, под рукой, за одним кликом мышки или одной строчкой скрипта.

Первые звоночки этого кризиса я почувствовал всё на той же первой работе, где вдобавок к разработке я исполнял еще роль администратора техподдержки (переустанавливал системы, ставил ПО, настраивал сеть). Тогда я на себе почувствовал как мои навыки и самоотверженность в администрировании становятся "ненужными", и именно поэтому я выбрал дальнейший путь в качестве программиста, а не админа.

Кризис Desktop-разработки => Уход в Web

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

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

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

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

Самый известный пример в нашей стране — 1С. Довольно перегруженный интерфейс с множеством кнопок и бизнес-логикой вполне себе работает через веб-интерфейс с любого современного устройства.
Самый известный пример в нашей стране — 1С. Довольно перегруженный интерфейс с множеством кнопок и бизнес-логикой вполне себе работает через веб-интерфейс с любого современного устройства.

Я застал эти перемены во время работы в "Корпорации ЭЛАР". Когда я пришел в компанию, мы занимались внедрением и поставкой ECM-платформы с серверной и клиентской частью. В конце моего испытательного срока, почти весь наш отдел был командирован в ЯНАО. Я был отправлен в Новый Уренгой, где устанавливал клиентскую часть на нескольких рабочих местах + дополнительно выезжал в соседний Уренгой (90+км) для установки еще одного рабочего места.

К концу моей карьеры в ЭЛАРе мы перешли к web-интерфейсу ECM-платформы. Больше не нужно было отправлять кого-либо для установки рабочего места. Всем пользователям отправляли единый URL, по которому им была доступна система самой актуальной версии. Такая экономия ресурсов значимо перевешивает всю "трушность" десктопных интерфейсов. Даже с учетом того, что ни один Web-движок до сих пор не обеспечит ту скорость и плавность работы с большим количеством информации, с которыми справляется Desktop-приложение на условном старом компьютере 15-летней давности, экономическая выгода опять победила.

Современный кризис ИИ

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

Появились различные ИИ-инструменты, которые позволяют писать код быстрее и дешевле. Да, этот код чуть более медленный, да, из-за него мы теряем понимание "как это работает под капотом"... Прямо как когда-то делал .NET по отношению к C++ и WinAPI.

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

Применение ИИ-технологий требует значимо больших технических ресурсов, более мощные процессоры, дорогие видеокарты, а всё это работает медленнее, чем могло бы работать без ИИ. Но реальная жизнь складывается из денег, и "Бабло всегда побеждает зло". Как бы мы ни хотели, но новые реалии с нами уже здесь и с ними надо жить.

Так как преодолеть кризис технологий?

Анализируя свой путь во время прошлых кризисов, вспоминая общение как с теми, кто остался в деле, так и с теми, кто "ушел из айти в баристы", могу подвести к банальному выводу:

Кризисы преодолевают те, кто думает "Зачем?", а не "Как?".

Для лучшего понимания разницы между "Как" и "Зачем" советую посмотреть легендарную видеозапись Simon Sinek - Start with Why на TED (перезалив на рутуб)
Для лучшего понимания разницы между "Как" и "Зачем" советую посмотреть легендарную видеозапись Simon Sinek - Start with Why на TED (перезалив на рутуб)

Важно в первую очередь думать о том, зачем вы вообще здесь (в айти)?

Вы программируете на языке программирования ради того, чтобы программировать на языке программирования? Вы пишете ansible-скрипты и составляете Yaml для кубернетисов просто для того, чтобы писать модные штуки? Или быть может вам вообще все-равно что делать и вы пришли в IT только ради денег?

Если ответы на эти вопросы для вас "Да" (или около того) — значит скорее всего вы думаете в стиле "Как?"

Но если перед вами стоят внутренние вопросы вроде:

Зачем именно мы делаем те или иные проекты? К чему те или иные задачи? Могу ли я сделать этот процесс эффективнее?

То скорее всего вы думаете в стиле "Зачем?". А это означает, что для вас в первую очередь важна проблематика, а не способ решения. Когда вы понимаете зачем вообще что делается, то вы преодолеете любой кризис, как со старыми технологиями (до сих пор много людей на C++ разрабатывают), так и прекрасно подружитесь с новыми.

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

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

А какие установки помогают справиться с кризисами вам?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как много кризисов вы пережили в IT?
12%Это мой первый, буду стараться преодолеть3
8%Это мой первый, не моё, уйду в сварщики2
32%Уже несколько пережил, всё грамотно написано8
28%Я пережил больше автора, сейчас в комментариях напишу всю правду-матку7
20%Слишком много, я устал, я ухожу5
Проголосовали 25 пользователей. Воздержавшихся нет.