Сейчас считается, что работа в информационных технологиях, в частности у программистов, наиболее востребована. Но так ли всё радужно в перспективе относительно ближайшего будущего? Попробуем разобраться вместе
Приветствую всех на канале "Архитектура Вселенной". На его страницах мы поговорим об информационных, компьютерных технологий, а также о сопутствующих направлениях, о том, как всё это влияет на нашу жизнь.
Программы для компьютеров создаются разработчиками, которых ещё называют программистами. Я писал в предыдущей статье о проблематике терминологии, поэтому не буду сильно повторяться. Скажу, что в разработке серьёзных программ, систем, может участвовать довольно много человек, имеющих разные роли. Это могут быть и аналитики (те, кто определяется с требованием задач, формулирует её для разработчиков и остальных участников, занимается приёмкой, а также создают документацию), и разработчики, и архитекторы (те, кто занимаются проектированием, с применением системного подхода), и тестировщики (те, кто проверяют качество созданного программного продукта).
Если судить по обилию рекламы, по зарплатам, по отзывам людей - работа компьютерщика/айтишника прекрасна и востребована, хорошо оплачивается, а будущее безоблачно. Насчёт реальности будней айтишников я ещё напишу и сделаю это не один раз, а сегодня хотелось бы сосредоточиться на будущем профессии.
Выскажу для кого-то крамольную и удивительную мысль, что профессия разработчика - умирающая профессия. Да, её смерть началась давно и является неодномоментным процессом. Это будет длиться ещё долго, но какие-то выводы нужно делать уже сейчас.
Умирание профессий: во-первых, неодномоментный процесс (это может происходить годами, а то и десятилетиями); во-вторых, полностью ничего не исчезает. Умирание - это ещё и трансформация, преображение, переход на другой уровень. Скажем, работа кузнеца почти исчезла, но с металлом люди до сих пор работают, создают изделия из него. Вырос целый пласт новых профессий, новых отраслей, завязанных на работу с металлом. Работа продавца: раньше это был работник прилавка, а сейчас скорее невидимый для клиента работник, собирающий заказы, полученные через интернет. Или вот извозчики... Сейчас на телегах или каретах, запряженных лошадьми, катаются чисто для экзотики. Тем не менее, перевозки, транспортировка, никуда не делись как отрасль. Более того, сколько новых профессий появилось здесь... Хотя каких-то 150 лет назад тоже никто не верил в прогресс: всем чудился грядущий апокалипсис, города, тонущие от лошадиного навоза, а говорящих, что автомобили займут скоро место лошадок, называли чудиками и фантазёрами (в плохом смысле слова)
Привычные программисты-разработчики, которые пишут чисто код - и на этом всё - закончились уже давно. Сейчас вполне является реальностью, что 50% времени уходит на поддержку уже написанного (это могут быть всевозможные доработки, но чаще - настройки, конфигурирование, но не создание программ). Остальное время может занимать разработка, но это не та разработка, которая представляется многим. Чаще всего, это улучшение существующего. Даже если занимаешься написанием чего-то "с нуля" - все равно будешь пользоваться очень и очень многими инструментами, значительно облегчающими жизнь разработчика.
Также, современным разработчикам надо разбираться в значительном количестве технологий, не только компьютерных, но и по специфике проекта, над которым они работают. Могу сказать, что команды, разрабатывающие продукты, могут быть гораздо более информированы по предметной области, чем пользователи, для которых это всё создаётся. По крайней мере, это неудивительное и достаточно частое явление. Про это нередко забывают заказчики, считая, по-прежнему, разработчиков приставками к машинам.
Как вообще разрабатываются компьютерные программы? Процесс проходит через стадии, изображённые выше. В начале происходит долгий процесс планирования, сбора требований, формулирования того, как должен выглядеть продукт. Потом идёт процесс разработки, затем происходит процесс тестирования, ввода полученных результатов в эксплуатацию, дальнейшая поддержка. Затем, через какое-то время, могут вернуться к нам с пожеланиями о новой версии (как вариант), либо с просьбами доработать что-нибудь к существующему. Это я сейчас описываю классический подход
Есть ещё подход Agile. Agile - переводится как гибкая разработка. Там нет жёсткого подхода к циклу разработки; команда часто сама планирует ресурсы на проект. Всё выводится небольшими итерациями, например, раз в неделю (это так называемый спринт). Кто играет в компьютерные игрушки с ранним доступом (где функционал дополняется с выходом апдейта) - тот поймёт о чем речь. Так сейчас многие работают. Тот же Яндекс, тот же Дзен. Так выходит дешевле (не всегда), но самое главное - гораздо эффективнее.
Всё это примеры эволюции или даже революции, но не закрывающей технологии. Представьте теперь, что есть инструменты, позволяющие обходиться без разработчика, как такового. Самый простой пример - где весь функционал настраивается, конфигурируется (часто, при помощи графических средств, "передвижением квадратиков на экране"). Здесь упор будет на системную аналитику, а также на специалистов в своей, не компьютерной, отрасли, которые также могут и должны участвовать непосредственно в создании программ таким вот образом.
Есть и ещё более захватывающие дух примеры. Представьте, что я собираю данные, провожу над ними анализ, а затем искусственный интеллект сам полностью, без моего участия, но на основании собранных данных, создаёт или дорабатывает программу. Вплоть до интерфейса, например, определив методами Высшей Статистики, как должен выглядеть самый удобный интерфейс (как вариант - для конкретного пользователя) программы.
Все эти примеры - это не будущее, это уже реальность. Да, пока идёт всё не так быстро и гладко, как хотелось бы. Первый пример, скажем, впервые использовался в советской космической программе "Буран": там программистами были физики-ракетчики, которые при помощи квадратиков и стрелочек на экране "писали" программу полётных заданий. В наши дни всё ещё красивее - например, у Microsoft и у Сбера такое уже есть.
Второй пример - тоже реальность, настоящее. Подобные решения уже делаются фирмой SAP
Какие выводы из всего этого можно сделать?
Первое и самое главное - не надо думать, что нынешний порядок вещей - это надолго. Нет, реальность такова, что порядок вещей может меняться несколько раз в течение года. Или более того, реальность такова, что мы думаем, что то или иное явление нашей жизни надолго, а если что и поменяется, то через 10-20-50-100 лет. Вдруг гром среди ясного неба - и приходится жить с будущим (хорошим или плохим), которое ВНЕЗАПНО стало реальностью.
Второе - если вы уже связали свою жизнь с IT, то самый большой совет, что можно дать: не надо зацикливаться на имеющихся знаниях. У нас даже в наших информационных технологиях непосредственно всё меняется довольно быстро. Крайне рекомендую получать образование (необязательно формальное, с дипломом) в других сферах жизни, в других отраслях знаний. Это очень поможет в работе, в будущем, если не хочется вдруг оказаться не у дел. Без работы не будете, но будет ли это, ради чего шли в IT?
Впрочем, обо всём этом мы с вами ещё поговорим на страницах моего канала, в том числе в будущих материалах.
Буду очень рад вашим комментариям! Благодарю за внимание
Игорь Кучаев