Аннотация: Состояние дел в корпоративном секторе ИТ.
Корпоративное программирование в России, один из самых денежных рынков и одни из высших зарплат для людей не имеющих "волосатой лапы". Другой приятный для соискателя момент: постоянная нехватка кадров на этом рынке делает возможным работу из дома. Ценой снижения зарплаты, но большим здоровьем и свободным временем.
Масса народа восторженно облизывается при виде столь замечательных зарплат и... приобретает губозакаточную машинку. Современное программирование имеет тенденцию к постоянному усложнению. Если раньше программирование казалось непосвященным магией, то теперь она и стала в большой степени магией.
Целью настоящей статьи как раз является раскрытие положения дел в корпоративном секторе ИТ и как это влияет на бизнес с обществом.
Программное обеспечение (ПО) со времен распада СССР прошло несколько больших перемен, когда его влияние на бизнес менялось значительно:
1. Времена MS-DOS (1991-1997).
Время расцвета персоналок и одиночных программ. ПО было рассчитано на одиночных пользователей, а ПО для маленьких рабочих групп стоило на порядок больше и было в нашей стране экзотикой. Государство варилось в своем соку и требовало исключительно бумажной отчетности.
С точки зрения программиста, трудность была в необходимости втиснуть как можно больше полезных возможностей в ограниченный объем памяти маломощного компьютера, что требовало почти исключительно самописных решений. Любой корпоративный движок продвигаемый с большой помпой почти наверняка проваливался, так как не оставлял места для полезной нагрузки.
Влияние на бизнес было мало, так как зачастую вся польза от применения компьютера была в 1С бухгалтерии.
Господствующими языками были C, Pascal в силу их способности писать программы с минимальными требованиями.
2. Клиент-сервер (1998-2006).
С массовой заменой ОС на Windows 95-XP внутренняя сеть предприятий из экзотики превратилась в обычную деталь инфраструктуры. Начали массово автоматизироваться внутренние процессы предприятия. Программы стали писаться с графическим интерфейсом пользователя. Начинаются первые попытки государства завязаться с электронной отчетностью, которую надо было сдавать на дискетах (государство работало по правилам предыдущего периода).
Оптимизация программ закончилась и ПО начало стремительно жиреть. Если ранее от программиста требовалось как можно больше сделать самому, то теперь проще оказалось по максимому использовать базовые движки. Например, стандартную библиотеку GUI, хранение данных под управлением готового движка и т.д. Тем не менее, ожирение сдерживалось необходимостью втиснуться в память одиночного компьютера, а одиночный сервер физически не мог обслуживать более 100-200 клиентов за раз.
Программистская специальность стала намного проще чем была, сфера применения расширилась. Программисты из одиночных "колдунов" стали обычными офисными работниками. Но тем не менее, от мастерства отдельного программиста зависело ещё много.
Для бизнеса ИТ стала необходимой стороной деятельности. Правда, почти исключительно внутренними делами.
Господствующей технологией стала Delphi из-за её способности с минимальными усилиями написать корпоративное приложение.
3. Web, интеграционный период (2007-2014).
Массовое развитие Web-cайтов вызвало взлет интернет продаж, рекламы, предоставление услуг через интернет. Ранее Web-сайты считались уделом компьютерных гуру, ограничивались страничками "а ля вот я, мой теленок и мой отдых в Турции" и ненаобщавшихся в реальной жизни девочек. Было их относительно немного, но предыдущий период заметно поднял интерес к компьютерной технике дома. Успех новой волны начался с интернет-магазинов и продолжился во всех коммерческих сферах.
В плане отношений бизнесов начался период интеграции корпоративных систем между собой. Фирма А продающая товар Б, автоматически предоставляла информацию об отгрузке фирме Б составляя единый бизнес-процесс, появились публичные точки доступа в корпоративную информационную систему, где партнер фирмы мог запросить информацию о ценах, доступности или оформить заказы.
Корпоративный программист стал восприниматься в первую очередь как Web-программист. Дело в том, некогда единая программа теперь должна разделяться на три части использующие в корне различные технологии. Программисты стали использовать средства контроля версий, модульные и интеграционные тесты, многопоточность. Обязательным стало использование огромного количества стандартизованных библиотек, которые с одной стороны упрощали обычные потребности, а с другой прекратили творчество. 50-90% времени начало уходить на борьбу их настройками, устройством, изучение особенностей. Общая сложность решения увеличилась в несколько раз. Соответственно, время разработки вновь стало увеличиваться, а приложение теперь требовало участия по меньшей мере трех профильных специалистов: программиста, верстальщика/дизайнера и сисадмина. В общем же случае, минимальная команда стала составлять 3-5 человек на месте одного.
Бизнес начал критически зависеть от IT, так как даже часовой простой сайта предприятия мог привести к массовому оттоку клиентуры. Нарушение связи с контрагентами обрушивало совместные бизнес-процессы. Появились не ИТ компании почти весь бизнес которых был в интернете. Продажа билетов, организация командировок, СМИ, крупная торговля материальными товарами - наиболее яркие примеры.
Господствующими технологиями стали особые корпоративные языки нашедшие себе применение и в других сферах: Java, C#, в меньшей степени PHP. Основным достоинством двух первых для бизнеса было зажимание программиста в рамки определенного подхода. Это снизило возможности плохих программистов писать что попало, но и сделало программирование из искусства обычным ремеслом. Пусть сложным, но однообразным.
Государство начало разрабатывать многочисленные сервисы интеграции с корпоративными системами и между собственными подразделениями. Ранее каждое ведомство работало по своим стандартам.
Возможность разнести приложение по разным серверам усилило ожирение программ на порядки. Сделать ещё один сервер много дешевле чем тратить время программиста на оптимизацию. Да и оптимизировать можно лишь в рамках собственного кода, который обычно по сравнению с библиотеками тратит совсем немного.
4. Общемировое пространство (2014 - н.в.).
Постоянно возрастающая сложность ИТ инфраструктуры вызвала желание убрать ИТ к специализированным фирмам, которые должны были обеспечивать их бесперебойную работу. С другой стороны, пользователям стало удобно хранить свои данные в облачной инфраструктуре. Войдя, к примеру, на сайт VK.com (социальные сети) можно авторизоваться на сайте новостей, представится профессиональному форуму и так далее. Стало удобно хранить документы в облачном офисе Гугл, чтобы разделять их с другими, коды программ на сайтах контроля версий. Развитие смартфонов сделало нужным разделение данных между интернет устройствами одного пользователя.
По сути дела, интеграция с переносом коммерческой деятельности продолжилась, но теперь на новом уровне. Теперь фирма стала физически отделять свою ИТ инфраструктуру в ЦОД (центр обработки данных), который фактически принадлежал не ей. Первое место стали, естественно, занимать американские фирмы с их меньшими тарифами. Туда же ушли базы данных компании. В наших условиях, когда государевы люди могут на неопределенный срок забрать компьютеры фирмы на "исследования", мера вполне оправданная. В фирме остаются лишь терминалы, которые легко заменить на новые.
Пользователи хранят свои данные на Google/Yandex дисках, различных социальных сетях, которые могут быть по желанию руководства компании размещены где угодно, но в основном в США. Государственное требование размещать персональные данные на серверах внутри России почти невозможно проконтролировать. Сервер в России может вполне тянуть их из Израиля, который, на самом деле, частично хранит их в Австралии, а частично в Дании. Но даже, если компании будут скрупулезно исполнять закон, то что мешает держать остальные данные рядом с Пентагоном? В современных условиях ничего.
Автору приходилось принимать участие в белорусском стартапе, который свои данные об инфраструктуре "диктаторского" государства хранил в Microsoft Azure. По неизвестной автору причине белорусское правительство (заказчик) на это не обратило внимания, хотя никто этого не скрывал.
Перенос данных, вычислений, деятельности как таковой на территорию распределенных серверов сторонних фирм обеспечивается облачными технологиями. Облаком называется распределенная инфраструктура третьей стороны обеспечивающей деятельность фирмы.
Нарастающий поток интеграций ещё более усложнил написание программ. К прежнему уровню добавилась сложная система безопасности, огромное количество сторонних сервисов с собственными правилами, разделение программ на мелкие кусочки (микросервисы), которые тоже произвольно распределенны в облаке. Теперь помимо прежних профессий нужны инженеры по настройке и поддержанию облачной инфраструктуры (DevOps), требования к настройке и конфигурированию куда выше нежели у предыдущей модели. Суммарно микросервисы требуют на порядок больше памяти нежели обычное Web-приложение той же функциональности. Взамен дается большая масштабируемость (полезная для гигантских предприятий), упрощается поддержка кода.
Господствующего языка уже нет, так как микросервисы можно писать на самых разных, но программист окончательно превратился в читателя бесконечных руководств, которые целиком может воспринять только гений. Уж больно много сложной технической информации в них содержится.
Подытоживая, мы видим, что бизнес становится интернациональным, под чьей бы юрисдикцией он формально не находился. То что вы обслуживаете клиентов исключительно деревни Гадюкино, не значит, что из какого-нибудь Падингтона не смогут детально расписать ваши финансовые дела во всех подробностях. Вырисовывается ещё одна зависимость страны: информационная. Теперь работа фирм, ранее никак с компьютерами не связанных, критически зависит от неизвестного ЦОДа, состояния Интернета, законов неизвестно какой страны, честности сотрудников неизвестной потребителю компании (цепочка может быть произвольной длины, виден только фасад) и т.д. Короче, программа компании-пользователю практически неподконтрольна, поскольку у неё есть море зависимостей даже просто неизвестных компании.
Второе следствие такого подхода: программы становятся ещё объемней, ещё многочисленней и сложней. Что раздувает ИТ сферу уже без особой связи с её пользой. Резко возрастают продажи серверной техники, разнообразного системного ПО, что обогащает конкретно Америку и Китай за счет всех остальных. Ранее остановился постоянный прирост производительности процессоров. Теперь постоянно обновлять их стало нельзя. Зато можно увеличить количество самих машин.
Третье следствие. Цепочка моментально разрушится, если будет воля американских владельцев паутины. Просто изолировать свой сегмент как было вначале не выйдет. За бортом сразу окажутся данные множества компаний, вычислительные мощности, софт и так далее. Ущерб будет сравним с падением астероида в центре Москвы.
Четвертое следствие. Доверие - это здорово, но доверие неизвестно кому... Тем не менее существует масса людей, которая свято верует, что левая компания обязана охранять их тайны и целостность данных любой ценой. Боже мой, да ведь даже юридически они не несут никакой ответственности! А чего стоит закон, когда вы нищий...
Пятое следствие. Программисты заинтересованы в постоянном усложнении. Это позволяет им иметь хорошее резюме, зарплату и востребованность. Т.е. осознавать вышесказанное им невыгодно материально. А интерес велено искать во все новых писаниях западных гуру. Своего иметь не положено!
В ИТ этого вопроса как бы нет. Он обсуждается немногими маргиналами вроде Р. Столмана, а у нас вообще никем известным.
Сделать с этой ситуацией снизу вряд ли что-то возможно. Осознать опасность подхода может лишь владелец денег. Учитывая современные тенденции, немногие понимают чем это может кончится.
Остается лишь добавить, что важные данные всегда должны быть в контролируемом вами пространстве. Пусть это дороже, неудобнее. Делайте старую добрую резервную копию. Целее будете.