habrahabr

Ложные воспоминания немолодого программиста

  • вторник, 15 апреля 2025 г. в 00:00:14
https://habr.com/ru/articles/899200/

Должен ли программист понимать бизнес‑задачи своего нанимателя или заказчика? Стоит ли браться за любую работу, лишь бы платили? Ждёт ли программиста карьерный рост в ответ на принятие на себя не специфичных для разработки, но нужных бизнесу задач? На примере полностью выдуманной истории я решил поделиться своим опытом с читателями Habr.

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

Примерно начало

Свою первую программу «за деньги» я написал в 1996. Мне было около 20 лет, я был студентом‑химиком и работал то ли программистом, то ли лаборантом при кафедре хим.технологии нефти и газа. Да, прошло почти 30 лет. Эта студенческая поделка выполняла расчёт ректификационной колонны. Делалась по методичке 1953 года рождения. Можно было делать по методичке 1935, но под рукой была 1953. В этой отрасли в РФ технологии 40+летней давности считались достаточно современными. Я понимал, что делаю, ибо был достаточно знаком с этой тематикой, физикой, химией нефти и прочими связанными вещами и если какие‑то расчётные величины были неправдоподобны, я искал ошибку в программе. В данной задаче была а) хорошая постановка и б) моё понимание того, какие примерно вещи могли, а какие не могли быть в результатах.
Понимание бизнес‑процессов, экономики, «зачем оно нужно пользователю» не требовалось.

На ответственном посту

В 2000 г. я получил диплом, как ни странно, инженера‑системотехника. Во время обучения пересмотрел свои планы на будущее и сменил профессию на 2-м курсе. Полным энергии, сил и энтузиазма, я устроился на свою первую настоящую работу «программистом». Просто сидеть и заливать конфигурации настроек в пейджеры мне было скучно. В то время компания расширяла ассортимент услуг и я, на свою голову, проявил инициативу и занялся разработкой проекта биллинговой системы для интернет и телефонии. В качестве поощрения получил в ~24 года должность начальника маленького, но гордого отдела ИТ. Руководство желало получить «гибко конфигурируемую систему с настраиваемыми тарифными планами». Проект разрабатывался примерно год, с поэтапным вводом в эксплуатацию. Каждый раз всех всё устраивало, я писал тонны документации, которую, как я потом понял, никто не читал. И вот тут суровая реальность упала всей своей массой на сознание юноши‑идеалиста. Если по части интернета никаких особых проблем не было: данные брались с аксесс‑сервера cisco по radius протоколу и конвейером обрабатывались модулями тарификации, то с телефонией такой благодати не было. Телефонная станция была подключена к сети SDH/STM-1, абоненты платили стандартную абонплату (почти все) + междугородняя АТС присылала в нашу контору большие простыни в ASCII формате с выгрузками о том, кто, по какому направлению, когда и сколько звонил и на какую сумму. Месяц от месяца эти форматы менялись и для загрузки этой биллинговой информации в нашу базу приходилось постоянно доделывать парсер. Плюс к этому, регулярно менялось законодательство, связанное со льготами и прочими послаблениями для отдельных категорий граждан, и нужно было это тоже учитывать, включая даты начала и конца действия льготы. А ещё руководство фирмы решило, что за просрочки по оплате будут пени и штрафы для юрлиц — тоже надо автоматически считать. И всё бы хорошо, но решило оно это когда в эксплуатацию были введены три из планируемых четырёх стадий внедрения. И ещё, появилось требование, чтобы система могла на основе «первичных данных» всё заново для всех абонентов пересчитать, учитывая предыдущие настройки тарифов, льгот, выгрузок с междугородней АТС (которые каждый месяц могли быть в разном формате) и так далее за любой нужный период времени.

О чём это я? О работе в условиях изменяющихся требований и морального прессинга.

Я не был к этому готов. Приходилось работать днём и ночью, без выходных... В итоге, кое‑как доделав систему, я уволился. Ещё пару месяцев не мог себя заставить работать, а в это время из моей бывшей конторы широким потоком лилась молва о том, что вот, некий плохой программист всё сделал не так, сломал и сбежал. После меня контора обратилась к профессиональным автоматизаторам, которые что‑то делали на 1С. Через какое‑то время, может быть, года через два, автоматизаторы обратились ко мне с предложением то ли принять участие, то ли помочь с тем проектом, т.к. его нужно было «быстрее сдать».

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

В одном интересном месте

Следующие события происходили около 20 лет назад в тогда молодом, дружном и динамично развивающимся дальневосточном стартапе, эксплуатирующим мою готовность вдjobывать почти круглосуточно в обмен возможность изучения существующих и изобретение новых технологий email‑рассылок. Платили хорошо. При нашей информационной поддержке были проданы тонны пилюль, удлиняющих то, что владельцам казалось слишком коротким, БАД‑ов для усиления когнитивных способностей (что лишний раз доказало их бесполезность) и подписок на сервисы с пикантным контентом для тех, кто уже удлинил. Просматривая (ради контроля качества, конечно) контент отлаживаемых сервисов, я проработал целый год. Больше не смог.

Был сделан вывод: деньги всё‑таки пахнут. Не за всё надо браться, даже если оплата ОК.

Как там "у них"

Через несколько лет и других, менее интригующих, проектов, я оказался в нидерландском стартапе, занимавшемся разработкой системы аутентификации для корпоративного сектора Европы, Азии и США. Прошёл собеседование как Asp.Net developer и все следующие годы работал C++, Python, Windows Mobile, Android/Java & iOS/ObjC/Swift разработчиком. Это как раз на тему понимания самим бизнесом, что им нужно, а что не нужно. Платили на тот момент хорошо, и я использовал максимум предлагаемых возможностей для профессионального роста. Глаза горели, шаловливые пальчики стучали по кнопочкам... Был багтрекер и команда QA. И это весь наш тогдашний «процесс». Я проработал в этом стартапе 4 года, когда нас купила гораздо более крупная, покойная ныне, британская контора. Умные люди, вроде моего голландского босса и его босса стали руководителем департамента и вице‑президентом соответственно. Нашей команде заменили YouTrack на собственное корпоративное изделие по имени HP ALM Octane, сделали ежедневные митинги, ежедвунедельные демо‑митинги, ежемесячные доклады по используемым в работе технологиям... Через пару лет работы в этой дружной корпоративной семье, в надежде немного продвинуться «наверх» и осознавая, с подачи босса, что некоторые кастомеры хотят интегрировать доступ к нашей системе аутентификации в свои мобильные решения, я предложил начальству разработку SDK для кастомеров. Они подумали и дали добро. Я погрузился в разработку нового проекта, согласование макетов, документации и решение прежних своих задач, которые с меня никто не снял, ибо «передать пока некому, а ты в этом лучше разбираешься». Через полгода была готова первая версия SDK. Я уже рассчитывал на некий перерыв или паузу, но тут оказалось, что сопровождать SDK пока тоже некому. И это поручили мне. Моим первым кастомером было то ли министерство юстиции, то ли МВД одной ближневосточной страны. Между этим ведомством и британской конторой была прослойка в виде тамошней местной внедренческой фирмы. Запросы и багрепорты мне присылали внедренцы, а эмоциональные тексты из какого‑то отдела госстурктуры, где свои айтишники разрабатывали решение со своей стороны. Я глубоко погрузился в желания и чаяния клиента, всячески пытаясь их удовлетворять. В это время SDK продали ещё одному кастомеру из Мексики. В итоге, утренние созвоны начинались с Шалом алейхем, а вечерние с Ола (или как‑то так). Рассчитывая на какое‑то повышение, если не по оплате, так по должности, я продержался ещё года полтора. А потом пришёл КОВИД, ставший, вместе с некоторыми другими факторами, благовидным предлогом моего добровольного ухода.

Вывод был сделан: не всегда глубокое погружение в корпоративность и хотелки клиентов возвращаются в виде хоть какого‑нибудь роста.

P.S. Это моя первая публикация на Habr. Если читателям будет интересно, готов написать продолжение ложных воспоминаний.