Моя первая настоящая работа была странной.
2013 год. Четвёртый курс информационной безопасности, я вроде разбираюсь в визуальном бейсике и ищу вакансии программиста на hh. Их там не то что бы сильно много, поэтому через десять минут поисков я отправляю резюме на какой-то завод, где в вакансии есть нужные слова. Они приглашают меня на собеседование, и через три дня у меня есть работа.
1С-программистом с нулевым знанием 1С. С записью в трудовой «Системный администратор» с нулевыми знаниями системного администрирования. Ну то есть как — эникействовать же все могут, вот и могу. Наверное.
Так прошёл целый год, полный переписывания легаси на 1С, софта для этикеток на С++ и дельфи, включения бухгалтерских компьютеров обратно в розетку и, конечно, вообще без визуального бейсика.
Этот случай так запал мне в душу, что я на всякий случай запомнил почти все странности оттуда (и ещё с других мест, где мне нужно было работать с программистами). Байки, во. Пусть будут байки о разработке.
Дисклеймер. Всё пишу по расплывчатым воспоминаниям, поэтому если бывшие коллеги читают это — привет на сто лет.
Странное собеседование
Представьте себе небольшой, но гордый заводик где-то в центре Петербурга. Производят торговое оборудование. Работают прямо с распада СССР, что-то там себе пилят и внедряют инновационные разработки типа ещё более продвинутых этикеток для торгового оборудования. Средний возраст сотрудников точно за 45 лет. Файлопомойка в сети, ограничение доступа к «Одноклассникам» и столовая прямо в здании с очень дешёвыми обедами.
Вот он выглядит ровно так, как вы себе представили.
Ожидание: сейчас расскажу про свои проекты на визуальном бейсике и меня похвалят и возьмут работать, буду там везде свой msvbvm60.dll добавлять без разбора.
Собеседование вообще разошлось с моими ожиданиями. Оно выглядело примерно так:
— (хмуро смотрит в резюме) Значит, вы пишете на Visual Basic?
— Да, вот, есть несколько проектов, могу расск…
— А на 1С не пишете?
— Нет, на 1С не пишу.
— Вообще-вообще-превообще?
— Да, совершенно точно, даже в глаза не видел.
— Так, а давайте мы будем вам платить чуть меньше на испытательном, а вы пока будете учить 1С по вон тем книжкам (показывает на полку с книжками)?
— А вам точно надо так?
— Да, мы просто давно уже ищем, а никто не соглашается работать у нас сисадмином.
— Но ведь сисадмины не пишут на 1С.
— Да, но нам нужно, чтобы сисадмин писал на 1С. У нас уже один такой есть, надо ему помогать.
После недолгих уговоров я согласился — зарплата для меня-четверокурсника была нормальной, но вопросы остались. В итоге я проработал на заводе почти год.
Два отдела и ещё один
Следующей смущающей вещью на заводе было странное разделение отделов.
Ожидание: все программисты понимают, что происходит, и всеми руководит кто-то один.
Программисты софта для оборудования сидели на одном этаже и тихо пилили свой софт для оборудования. Никто никогда не знал, что они там пилят, но они, кажется, менялись файлами просто через локальный сервер в сети завода.
Ещё были какие-то другие программисты, которые вроде тоже пилили софт для оборудования, но каким-то особым, одному гендиру известным образом. Если бы история происходила в 2021, то я бы предположил, что они просто обкатывают Svelte.
И были мы с 1С-начальником — бегали втыкать выпавшие сетевые провода, перезагружали зависший Офис и писали бухгалтерские чудеса на 1С. Поэтому и сидели прямо в бухгалтерии. Мне всегда казалось, что это для того, чтобы говорить «Проверяйте свои обработки уже наконец пожалуйста мне пора на пары бежать», не выходя в другую комнату.
Странность была в том, что отделы никак друг с другом не взаимодействовали. Никто никогда ничего не обсуждал, не было планёрок, встреч и вообще ничего. То есть вроде отдел разработки есть, но все существуют сами по себе. Понятно, что на заводе из девяностых об аджайлах и скрамах никто не слышал, но там, кажется, никто не слышал даже об общении.
Отель «У погибшего программиста»
Ожидание: ну даже если не VB, то хотя бы буду учиться 1С, а не заниматься всем подряд.
Однажды ко мне пришёл 1С-начальник и сказал — «вот у нас раньше работал программист, был сам по себе (как удивительно, правда?) и написал типа 10 тысяч строк кода на С++, чтобы принтер печатал этикетки. Это было года три назад, он уже уволился, а теперь формат этикеток изменился и надо софт исправить.
Ах, да, ещё теперь принтер работает по ком-порту, а раньше как-то там по-другому. Ах, да, ну и там просто всё сломалось, надо починить. Короче, вот архив с кодом, чини».
Я не рискнул спрашивать, почему это должен делать один-эс-вб-эникей-я, а не те два отдела программистов на Свелте++. Поэтому пришлось лезть в это легаси со своим знанием С++ на уровне «за этой курсовой по связным спискам время идёт в семь раз медленнее. Переждём сессию здесь». Не буду врать, деталей не помню, но в итоге что-то где-то как-то какими-то молитвами чудом заработало.
Сколько раз я поминал того программиста и какими словами — история умалчивает. А ведь можно было хотя бы документировать. Или хотя бы дать тому программисту внятное ТЗ. Или хотя бы пользоваться своим софтом для этикеток чаще раза в квартал.
А теперь, пока я это пишу, думаю — ведь наверняка был следующий программист, которому пришлось разгребать кучу кода уже за двумя молодцам. Извини.
Чат в Jabber и жалкие попытки поговорить
Работа на заводе закончилась, с тех пор прошло четыре года околомаркетинговых штук, статей на Хабре, вселенского успеха и мирового признания.
Ожидание: ладно, хватит писать статьи, вот сейчас-то устроюсь по специальности и буду гонять зловредов туда-сюда.
В реальности я немного промазал и приземлился на работу техническим писателем в антивирусной компании, которая делала отечественный антивирус. И логично, что технический писатель в антивирусной компании, которая делала антивирус, должен был бы общаться с разработчиками этого антивируса.
Ожидание: все будут охотно делиться информацией, ведь это разработчики и у них есть столько интересного.
Но как бы не так.
В очень маленькой компании, где каждый работает за троих, у разработчиков и руководства обычно есть всё, кроме времени на разговоры с техписом. Поэтому я терпеливо ждал, пока ребята освободятся, чтобы прочитать и написать ещё одну страницу документации. А потом ещё одну. Всё осложнялось тем, что в 2017 году единственным средством, кроме «прийти ногами и отвлечь от разработки антивируса» был чат в Джаббере, который почти никто не проверял вовремя.
То есть процессы были построены так, что если ты не разработчик антивируса в антивирусной компании, то и нечего высовываться. Поэтому я прекрасно провёл время в ожидании, подучил питон, и за месяц до того, как компания закрылась, торжественно уволился одним днём.
Не знаю, что стало с теми разработчиками и руководством после закрытия компании, но не удивлюсь, если джаббер там до сих пор работает.
А что смутило вас в разработке софта?
Это несколько моих баек о работе в разработке и около разработки софта. Расскажите свои? Чего вы не ожидали перед тем, как прийти на первую работу? Что во фронтенде или там в мобильной разработке показалось вам странным, хотя со стороны было абсолютно очевидно, что в здравом уме такого не может быть?
Давайте устроим в комментах добрую ностальгическую беседу с флёром недопонимания. Как раз понедельник же, самое время. Так победим!
Комментарии (21)
speakingfish
02.08.2021 18:29+2Ожидание: все будут охотно делиться информацией, ведь это разработчики и у них есть столько интересного.
Устроившись на одну работу и через какое-то время начав делать задание, столкнулся с необходимостью получения небходимых мне данных. Я писал код, все потихоньку футболили меня по кругу с такими запросами, пока наконец один сотрудник, хорошо отметивший на работе какое-то событие, мне не сказал:
— Вот ты всё ходишь и требуешь от нас свои данные. Но! Ты не то ищешь! Тебе не нужны данные! Точнее, тебе нужны не данные! Тебе нужен человек, который предоставит тебе эти данные!
Через неделю я уволился (не только по этой причине).
Danik-ik
02.08.2021 19:43+2Чего я не ожидал, когда из младоэникеев пошёл в программисты, на завод (где-то 2001 год):
Того, что sql это настолько просто, что его можно выучить прямо на практической части собеседования (в объёме достаточном для прохождения этого собеседования)
Что мне скажут, буквально: «Будешь хорошо работать — дадим компьютер». В реале два-три месяца мыкался по рабочим местам отпускников
Что никого не волнуют технология разработки, методологии и тенденции развития искусства программирования
Что воспринял нормально, но потом начал бороться — безуспешно, правда:
Что разработкой ПО может заниматься не команда, а толпа одиночек.
выкинула меня тогда из всеобщего пофигизма книга Кента Бека про ХР. После этого стал использовать CVS (Git еще не родился), постигать ООП в частности и абстракции с обобщениями вообще (в этот момент навсегда отплевался от пятого VB)... Было весело.
yellowmew
02.08.2021 20:24+5«Будешь хорошо работать — дадим компьютер»
меня подвели к горе хлама и сказали "соберешь - у тебя будет компьютер"
Но мне было легче, я реально эникеем пришел тогда работать)
pyur
03.08.2021 11:04«Будешь хорошо работать — дадим компьютер» жизненно.
Тот, кто через такое прошёл, уже никогда не будет капризничать "Мне все должны!".
vvbob
02.08.2021 23:29+2Про завод в Питере прямо моя история. Разве что опыта у меня было побольше, уже не студент, и писал я на С++, на плюсы и пришел устраиваться. В итоге предложили поработать программером на Яве. Учитывая что з/п была мидловская по тем временам, а я только приехал из провинции и деньги у меня уже почти закончились, предложение я немного удивленно принял. О чем не жалею - и Яву изучил, и заработал неплохо, и работа оказалась довольно интересной, правда через несколько лет з/п так и не увеличили, интересный проект закончился, началась какая-то мертворожденная кака, отчего я оттуда и свинтил. Но это, уже, совершенно другая история (Ц)
dartraiden
03.08.2021 01:21Jabber это ещё более-менее современно. В некоторых отраслях (полиграфисты, вроде) до сих пор канал общения - ICQ. Пару лет назад видел человека со 100+ живыми контактами, региональные дилеры чего-то там.
Ну и у меня самого один контакт в ICQ никак не желает перейти на что-то получше, отчего приходится держать эту самую ICQ.
ruomserg
03.08.2021 07:37+1… это еще что! Я до сих пор убежден, что лучше электронной почты — нет средства общения. А если вот прямо совсем-совсем сейчас надо, то придется абоненту придется сделать усилие и позвонить по сотовому!
vvbob
03.08.2021 08:11+4А я лично считаю что перезвоны - это канал для совсем экстренных случаев, когда задача идет в максимальном приоритете. Чаты позволяют общаться асинхронно, а звонок вырывает тебя из текущей задачи и заставляет переключатся. Поэтому, звонить человеку из-за какой-либо ерунды (без предварительной договоренности о созвоне), считаю просто хамством и неуважением чужого времени.
ruomserg
03.08.2021 09:20+2Полностью согласен, что звонить по поводу и без повода — не следует. Я же выше начал с того, что упираюсь всеми силами чтобы сохранить E-mail как основной канал коммуникации. Если проблема не относится к числу «кто-то умер» — напишите письмо, в рабочем порядке разберемся. Ну а если, блин, срочно — тогда звоните… Или лучше напишите письмо с деталями, и потом позвоните. Мессенджеры мне лично не понравились, потому что соединяют недостатки обоих способов связи. С одной стороны, они отрывают от работы почти как телефонный звонок (а если отключить уведомления — то потом поди восстанови контексты всех сообщений где тебя тэгнули). С другой стороны, не обеспечивают информативность голосовой связи (если не считать голосовых сообщений — но их вообще следует запретить нахрен). Я предпочту иметь два специализированных канала коммуникации (e-mail + звонки), чем один универсальный (мессенджеры).
vvbob
03.08.2021 09:54Я обычно работаю в полноэкранном режиме в Идее, всплывающие сообщения отключаю (при том что оповещения приходят). Так вполне можно нормально работать. Работаю, периодически отрываюсь, когда устаю и переключаюсь на мессенджеры, читаю что там прилетело за время работы. Так я и на связи, и не отвлекаюсь от работы.
А мессенджеры все-же хороши для решения оперативных вопросов, когда вопрос не такой срочный что-бы отвлекать человека от текущей задачи звонком, но и не из тех, которые могут ждать несколько дней, и которые можно решать через почту или комментарии в жире..
Информативность - тут бы я поспорил. Часто звонок по информативности проигрывает нескольким предложениям в чате. Сколько раз такое бывает - созваниваются и полчаса бормочут то, что можно уложить в пару предложений, без потери смысла.
ruomserg
03.08.2021 11:30OK. Резюмирую. Созвон хорош там, где нужно именно что-то обсудить. Самое главное — по реакции и ответам (даже междометиям) человека — можно понять, он еще с тобой или нет. И если нужно — объяснить еще раз или по-другому. По телефону категорически неудобно обсуждать код. В этом случае лучше видеозвонок с расшаренным экраном. Опять же в последнем случае полоса пропускания шире: работают два канала — руки что-то набирают на экране, голосом — комментируем. Тут вопросов нет.
Чистый мессенджер хорош в ситуациях: «У нас не печатается этикетка//Сфотографируйте что печатается ?//Сфотографируйте переднюю панель? //Нажмите эту (обвел на фото) кнопку// и т.д.». То есть нужно передавать невебральную информацию, и делать это в режиме реального времени.
Для сообщений с bulk precedence отлично работает электронная почта. Там проще цитировать, чем в мессенджере. Все сообщения индексируются почтовым клиентом, и прочее, и прочее и прочее. Если речь идет об обмене содержательными текстами — то это как раз жанр письма (раньше — бумажного, сейчас — электронного). Аналогом сумасшествия в месенджерах является гипотетический чат в начале прошлого века с использованием телеграфных аппаратов… Даже тогда люди уже понимали, что срочные сообщения (а телеграф — это именно срочные сообщения) необходимо передавать адресно, а не рассылать всем-все подряд…
AllexIn
03.08.2021 08:27Звонок это прям очень плохо.
Лучший канал общения - комментарии к тикету в джире. На крайний случай - IM. На самый крайний - звонок.
ruomserg
03.08.2021 09:22С учетом того, что изменения тикетов можно настроить посылать в E-mail — мне нравится. IM я ограничиваю ситуациями, когда нужно быстро что-то сфотать и прислать с комментариями.
rrrad
22.08.2021 18:23Изменения тикетов в жире - потенциально слишком шумный источник событий. Подходит либо тем, через кого проходят 1-2 задачи в день, либо конечным разработчикам, которым прилетают фичи, которые точно будут только они пилить и то, при условии, что workflow на строен на то, что задача потом закрывается, в на тестирование создаётся новая. Ну либо надо заиметь привычку отписываться от задач, но это вариант для роботов.
Dicht
03.08.2021 08:49Первая работа в ИТ, лично у меня, была наоборот удачная - взяли в младшие сетевые инженеры и приставили ко мне двух очень толковых мужиков. Ох как мне стоило лучше слушать и запоминать, но юность …
А вот второе место было в духе «завода». Это была по сути аутстафф контора, где меня выделяли куче клиентов как фуллстэк эникея. Делать приходилось вообще все: установка видеонаблюдения, сборка локальных сетей с нуля, настройка серверов в этих сетях, разработка, заправка картриджей для принтеров (куда ж без неё).
А как «шикарно» было возить пару системников на руках, с другого конца Москвы, сначала на автобусе, а затем в метро.
Естественно, делалось все с качеством ниже среднего, хотя я очень старался быстро учиться и делать работу лучше. Но босс был доволен, клиенты платили. Да и мне платили прилично за половину дня и без проблем давали ходить в универ когда мне нужно.
Однажды отправили к каким-то польским ребятам, разработать сайт под ключ. Парни на русском говорили не очень, поэтому все больше приходилось на английском (в то время у меня был максимум уровень B1 и сомнительная беглость речи). Я совсем чуть-чуть знал CSS и PHP, совсем не знал SQL и толком ничего не знал о дизайне веб-сайтов. Понятия не имею как, но в итоге я отрисовал им 3 варианта дизайна, все сверстал, обернул в PHP и jQuery, развернул MySQL, передал напарнику на поддержку и со спокойной душой уволился.
vvbob
03.08.2021 08:55Однажды отправили к каким-то польским ребятам, разработать сайт под ключ. Парни на русском говорили не очень, поэтому все больше приходилось на английском
Странно, неужели английский понятнее? Как-то в быту общался с поляками, не знавшими русский (как и я польский), и ничего в общем-то нормально друг-друга понимали, если не говорить слишком уж бегло, языки то близкие.
Dicht
03.08.2021 09:44Я тоже был удивлён, но тут, вероятно, сказывалось то что нужно было обсуждать массу деталей и это накладывало дополнительные требования на понимание глаголов и прилагательных. В какой-то мере помогал украинский, который я учил в начальной школе. Но с английским было все равно проще, его мы все знали на схожем уровне.
Много позже я имел опыт изучения чешского, вот он сильно похож, теперь поляков понимаю достаточно хорошо.
BobArctor
03.08.2021 11:43"Бытовой" польский понятнее потому что опирается на более старый словарь(всякие разные перси\очи\брюхо хоть в школьном курсе литературы но встречались).
"Технический" для восприятия сложнее в силу используемого словаря, особенно если не используются англицизмы.
Danik-ik
03.08.2021 16:13Приходилось читать по болгарски (понятно без малого всё) и слушать болгарскую речь (вообще ничего не понимал). Тоже язык родственный...
babenek
03.08.2021 12:03+1Общение - важно.
Моя байка:
Во время работы в заводе пытались внедрить информатизацию двум бухгалтерам. Кажется, уже было 2 версии каких-то самописек, которыми они не пользовались, а продолжали упорно вбивать данные в эксель. 1С не рассматривалась - это ж деньги тратить надо!
Пришел, поговорили о жизни, какова была история прежних внедрений. Оказалось, что требования к отчетам менялись быстро, а софт, ясное дело - нет.
Бухгалтеры привыкли вручную верстать таблицы в экселе, пусть и немного диким способом. Прошу показать процесс:
- Вот мы вносим сюда количество, сюда - цену, сюда (берёт ручной калькулятор, считает) - результат ...
- А вот если в экселе вставить формулу... - и я показал им немного магии.
В итоге, оказалось, что все их нехитрые отчёты прекрасно автоматизировались обычным экселем и ликбезом.
korolevpl
"Ожидание: все будут охотно делиться информацией, ведь это разработчики и у них есть столько интересного."
Я тоже сталкиваюсь с этим явлением. Думаю, некоторые программисты не могут рассказать о программе, потому что сами плохо понимают как она работает и какое у нее назначение. Вполне возможно, что такие программисты приложили руку частично (кусочками) и ровно так как сказал лид. Это следствие ротации кадров. Другая причина - утилитарный подход к работе, когда делать таски (писать код) - это все равно, что задачи по математике решать из решебника. Нет всестороннего описания таски - значит нет таски. Обсуждать, дизайнить и документировать решение таким программистам некогда и им это не надо, потому это не их работа. При этом, через одного мидлы и сеньоры. Так и живем.