Жизнь

Программисты. Форма и содержание

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

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


Протасов Станислав

На протяжении 5 лет занимается разработками программного обеспечения. Работал в компаниях «КвадроСофт», «АргусСофт-интернейшнл» и «DataArt». Затем перебрался в Москву, в отдел внутренней разработки логистической компании DHL Express. В данный момент — инженер-программист в компании Parallels.

Преподавал в ВГУ, сейчас читает курс «технологии программирования» в МИЭМ (НИУ ВШЭ).


Сразу хочу оговориться, что я в курсе высокой динамичности рынка труда для программистов. Знаю, как сместились акценты в технологиях за последние года 4 (в первую очередь, благодаря доступным SDK для мобильных платформ). Но всё же во многом рынок IT меняется неповоротливо, революции на ближнем горизонте не предвидится, а значит, мне пока есть чем поделиться с вами. За время моего существования мне довелось побывать в четырёх ипостасях человека-связанного-с-программированием. О каждой из них я попробую немножко рассказать.

Стартап

Начинал я в качестве одного из членов коллектива, который, вероятно, сегодня назвали бы стартапом. А может и не назвали: во-первых, в 2007 году это слово не было столь популярным, а во-вторых, сейчас под «стартапы» подвели какую-то такую замудрёную терминологическую базу (включая любимые всеми инновации), что я уже ни в чём не уверен. В любом случае, это был маленькая контора с замечательной оргструктурой (3 директора + 2 программиста), которая за 2 года успела подрасти до потолка в 10 сотрудников (но шагнуть за этот стандартный порог так и не смогла), поагонизировать и, после моего (и моих друзей) ухода, возродиться из пепла аки феникс компания Nettle.

Отличием компаний того времени от современных начинателей было в отсутствии необходимости ломать голову над «инновационной идеей, которая выстрелит», писать под неё бизнес-план и мозолить глаза венчурным инвесторам в лифте. Тогда работал до сих пор почитаемый мною превыше всего капитал — личные связи. Тот капитал, который сейчас достижим посредством «networking»-вечеринок, 5 лет назад был продуктом сложного синтеза детского сада, родственников, пьянок, молодёжных увлечений и института (когда меня приглашали на работу, я был изрядно поддатым третьекурсником). Именно контакты приносили первые заказы. Иногда даже в форме блата.

Когда предприимчивый студент понимал, что дальше он один не справится, появлялось новое ООО «Чтоугодно-Софт». Работа в стартапе — это романтика. В первую очередь потому, что начинатели строят процесс кодирования максимально удобно для себя. Ни о каких технических писателях и, боже упаси, тестировщиках речи идти не может. Если у разработчиков мало опыта, то работа в команде может превратиться в рай-как-он-им-видится. Я серьёзно. Как вы понимаете, этот рай отлично подчиняется теории вероятностей и может просто не взлететь... примерно в 70% случаев. Но какой красивый будет разгон!

Главным преимуществом стартапа перед любой другой формой разработки является, на мой взгляд, возможность и необходимость создавать относительно новое. Когда ты одновременно архитектор, аналитик, программист, тестировшик, служба поддержки и PR, ты чувствуешь личную ответственность за продукт. Он тебе как сын (ну, кому-то дочь). И именно поэтому я до сих пор считаю своей самой важной разработкой «Электронный Нос». В стартапе интересно работать, даже если ваш продукт — система складского учёта. И абсолютно плевать на печеньки и размер белой части зарплаты. Главное в этой балалайке — атмосфера.


Тропа промышленной разработки

Когда стартап не взлетает, что-то перещёлкивается в голове (а у меня ещё и переклинилось намертво), и хочется огородить себя от возможной опасности ждать зарплату за 2009 год в 2012. Тут ты узнаёшь, что в твоём городе есть компании с численностью больше сотни человек, своей корпоративной культурой, системами тайм-трекинга и печеньками. И ещё узнаешь, что есть слово «резюме». Иногда говорят о важности индивидуального подхода при наборе сотрудников и о неприменимости резюме. Я склонен не согласиться. Резюме — отличный фильтр, здорово, что они есть. Да, появляется шанс выплеснуть с водой аутичного подростка-вундеркинда, но жалеть об этом с точки зрения статистики просто глупо. И хотя по формату я всего лишь пересел из одной комнаты на 10 человек в другую такую же комнату, всё сильно изменилось. Московские коллеги, созвоны, инструменты коллективной разработки (jira, svn, ...), большой проект, где я уже не бог, но лишь заменяемый винтик. Я вступил на тропу промышленной разработки.

Так я узнал, что есть русские люди, которым платят за то, чтобы они писали неадекватный текст на английском для русских разработчиков. Что есть люди, задача которых — изящно тыкать тебя носом в твои же косяки, и которые для проверки работоспособности интерфейса выдёргивают сетевой кабель из системного блока. Что есть люди, которые на IT-проекте работают в Excel'е и Word'e (брррр). Ты изучаешь многие инструменты, о предназначении которых раньше и не подозревал (а если бы тебе сказали, что для этого есть инструменты, покрутил бы у виска). Ты учишься работать в рамках выбранной «главным» архитектуры. По первости кажется, что все вокруг как минимум на порядок круче тебя: они походя употребляют слова «маппинг», «хибернейт», «IoC», ... Ты лезешь читать на википедию и понимаешь, что пропасть просто непреодолима, ведь эти люди осмысленно используют то, в чём ты не очень-то можешь сам разобраться. Это спустя год ты понимаешь, что на этом проекте DI-IoC для интерефейса в 1000 строк с единственной реализацией нафиг не нужен. Но ты-то только вышел из-за парты, а тут такие зубры... И тут уж как повезёт. Попадётся тебе отзывчивый коллега или ментор — ты быстро усвоишь азы командной разработки, полюбишь scrum и научишься обманывать системы учёта рабочего времени. Если не повезёт — всё то же самое, но чуть дольше. А ещё понятная система карьерного роста: Junior -> Middle -> Senior -> Team Lead -> Project Manager. Что же в сухом остатке? Промышленная разработка не скрывает своих карт: удобный офис, стабильная зарплата, соцпакет-ДМС (что немаловажно!), кофе-машина на этаже, корпоративы и «молодой и динамичный коллектив» (что бы это ни значило). Всё супер, только вот крыльев больше нету.

Отдел внутренней разработки

А потом может случиться непоправимое. По какой-либо превратности судьбы вы окажетесь в отделе внутренней разработки. Следует очень хорошо понимать, что в 146% случаев отделы внутренней разработки на момент вашего прихода уже существуют. Причём давно. В зависимости от того, на чём специализируется компания, отдел может придерживаться одной из двух стратегий: писать всё самостоятельно и внедрять коробочные продукты на деньги компании или же аутсорсить, как минимум, часть работы (разного размера «лавочкам» и фрилансерам). Куда бы вы ни попали — знайте: вас «обманули». Так как отдел существует давно, его руководство, «старожилы» и аутосорсеры уже все написали.

В действительности, работа в отделе внутренней разработки большой компании сопряжена с очевидными фактами. Во-первых, сфера ваших обязанностей очень размыта: к вам с претензией придёт старший бухгалтер, курьер, менеджер коробочного продукта и сотрудник отдела безопасности. Вам будут звонить во внутренний (как и ваш отдел) телефон, стоящий на вашем столе. Во-вторых, полюбившееся понятие «команда» развалится на куски, потому что на одного человека в вашем отделе приходится 10+ проектов. Теперь вы один-против-света. Ну и, в-третьих, львиную долю вашего времени вы будете поддерживать уже созданные не вами решения сомнительного качества. А в оставшееся — поддерживая традицию, создавать продукты-на-костылях. Потому что времени на тщательное тестирование и проработку у вас просто не будет. А ваш отдел, подобно стартапу, не имеет своих техписов и тестировщиков.

Иногда я напоминаю себе студента, который начинает решать задачу с операторных скобок begin...end, а не с ручки-бумажки. Так в чём же плюс? Работая над продуктами, замечания по которым ты получаешь незамедлительно и неформально, изучаешь большое количество тонкостей в применяемой технологии. До работы в internal development мне никогда не приходилось оптимизировать базы и запросы хотя бы потому, что никогда до этого я не видел реальных данных, никогда не мог почувствовать на себе, сколько операций приходится сделать оператору call-центра при расчёте стоимости доставки из Новосибирска в Костомукшу, как дорого (в денежном эквиваленте) курьеру каждое лишнее движение, никогда не подозревал, сколько времени может ждать менеджер составления важного для него отчёта. Вы превращаетесь в мини-Шерлоков, расследующих утечки памяти, рассогласование данных и Stack-trace'ы. Вы ищете и правите архаичный софт на вверенных вам серверах, который был написан на допотоных языках вашим пред-предшественником. Вы получаете бесценный опыт решения IT-задачи в широком смысле этого слова. Короче, экспа +100500, lvl 86.

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

Преподавание

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

  • Неожиданно: на заглавном фото Светлана Полищук — iOS-программист Интерактивного Агентства «Мануфактура»

Поделиться: