18 IT-CAREER Мой Компьютер №17 /40/ КАРЬЕРНЫЙ РОСТ В IT-ИНДУСТРИИ ИНЖЕНЕР СОПРОВОЖДЕНИЯ Если молодой человек решает связать свою судьбу с IT-индустрией, перед ним неизбежно встает вопрос: какую именно профессию выбрать? На первый взгляд вариантов не так уж и много: можно стать программистом, тестировщиком ПО, бизнес-аналитиком и т.д. Но существует еще одна, незаслуженно оставленная в тени профессия. Пока оставленная, так как сегодня мы исправляем эту оплошность, рассказывая о специальности инженера поддержки и сопровождения ПО, или, иначе говоря, Software Maintenance Engineer (SME). нюанс. А в процессе использования системы у заказчика возникает все большее и большее количество Окончил Белорусский государвопросов, которые могут быть ственный университет инфорсвязаны с производительностью, матики и радиоэлектроники, юзабилити, надежностью и безоспециальность—инженер-систепасностью программы. Кроме того, мотехник; заказчику может понадобиться Начинал карьеру как разработпомощь в настройке и переустачик на С++, Lotus Domino/Notes, новке, администрировании или web-developer; оптимизации. В его штате может и С 2003 года работает в комне оказаться квалифицированных пании EPAM Systems в отделе специалистов, способных обслусопровождения; живать готовый продукт, особенно Главный программист (Software если его бизнес никак не связан Maintenance Team Leader); с IT. Каким бы классным ни был Хобби: бильярд, сноуборд, больпродукт, он будет бесполезен, если шой теннис, музыка. заказчик не сможет работать с ним. Одно из ключевых отличий ности занимаются специалисты— Правда жизни классического девелопера от инжеSoftware Maintenance Engineers нера по сопровождению заключаЛюбому разработчику ПО (SME), в должностные обязанноется в том, что разработчик создает знакомо ощущение морального сти которых входит обеспечение элегантную программу, SME умеет удовлетворения и облегчения, грамотной работы программы, заставить ее хорошо работать. наступающее сразу после сдачи причем в полном соответствии с Но даже самый хороший продукта. Иногда мы гордимся требованиями заказчика. проект не может оставаться без «сотворенным», а иногда поводов Так кто же такой SME, чем изменений на протяжении долгого для этого не так уж и много, он обычно занят и что должен времени, ведь задачи меняются, особенно если вспомнить сверхзнать и уметь? цели бизнеса—тоже. Вот и возурочную работу по выходным, никает желание что-то улучшить, нервотрепку со сроками и постоSME и программист сделать по-другому либо привнести янно меняющимися требованиями. Временами даже становится Очевидно, что все IT-специа- какую-то новую дополнительную функциональность, совершенно не немного стыдно при мысли о листы, работающие в софтверпредусмотренную заранее, на этапах ненайденных заказчиком багах. ной компании любого масштаба, проектирования и разработки. Чем Но в любом случае разработчики выполняют одну общую задачу— больше продукт используется и чем склонны «забывать» о своих разрабатывают ПО. Программа он сложнее, тем разнообразнее статворениях вскоре после окончания либо программный комплекс— новятся запросы заказчика. работы и устремляться вперед, к основной продукт, который Именно поток запросов созданию новых программ—несокомпания в итоге предоставляет представляет собой точку отсчета мненно, шедевров. И это психолозаказчику. Вполне закономерно, для SME, так же, как техническое гически объяснимо. что именно здесь сосредоточена Это именно тот момент, ради основная часть ее трудовых ресур- задание—точку отсчета для разработчика. В этом проявляется еще которого заказчик и обращался к сов. И, тем не менее, существуют одно отличие SME от обычного разразработчикам: продукт ввозадачи, с которыми классические дится в эксплуатацию и начинает разработчики не умеют, не любят и работчика: инженер сопровождения работает в первую очередь с заказжить полноценной жизнью. Как в итоге не могут справиться. чиком, с человеком, а только потом раз в эффективном использоваИтак, наши доблестные с программой! Заказчик, его нужды нии программы и заинтересован девелоперы представили на суд и проблемы находятся в центре заказчик, которого редко волнуют заказчика новый проект, выполвнимания SME. Именно с заказчиком, нюансы внутренней реализации ненный по последнему слову чаще всего напрямую, приходится или красота и мощь архитектурных техники и с применением переобщаться SME для выполнения решений. А эксплуатация слождовых программных технологий, ной программной системы, как предоставляющий заказчику новые большинства своих задач. А вот у разработчиков, наоборот, не принято правило, изобилует проблемными долгожданные возможности и тесно контактировать с представитеситуациями: у всех перед глазами делающий его жизнь радостной и лями клиента: для этого существуют есть яркий пример ОС Microsoft беззаботной. Однако это произвепроектные координаторы и менедWindows, обновления к которой дение искусства еще необходимо жеры, руководители направлений выходят с завидной периодичнограмотно установить, а часто и и, наконец, та же спецификация. В стью. Понятно, что привязывать встроить в среду, где оно должно команде Software Maintenance (SM) разработчиков к эксплуатации будет работать. Иногда для этого каждый инженер не боится общаться программы не всегда эффекнужно написать объем кода, котос клиентами и умеет это делать: тивно. Поэтому поддержкой и рый сравним с объемом самого общение—один из primary skills для сопровождением ПО в повседнев- продукта. И это только первый SME. Как видим, SME—это не RUP-модель развития проекта программист, это специалист более широкого профиля. И Phases иногда ему приходится быть Inception Elaboration Construction Transition Disciplines и программистом, и тестером, и проект-менеджером, и Buisness Modeling даже бизнес-консультантом, Requirements performance-аналитиком или Analysis & Design специалистом по юзабилити. Грамотный английский Implementation язык (как устный, так и письTest менный) и способность вести Deployment разговор с использованием Configuration & терминов бизнеса заказChange Mgm/t чика являются хорошим Project подспорьем для SME. Ведь Managment не всегда представитель Enviroment клиента является технически Initial Elab #1 Elab #2 Const #1 Const #2 Const #3 Tran #1 Tran #2 грамотным специалистом. Юрий Таболич, 27 лет. • • • • • Iterations И пусть чаще всего это именно так, всегда надо быть готовым к тому, чтобы объяснить техническую проблему и пути ее решения человеку, далекому от программирования. Здесь даже не так важно знание технического английского, сколько умение доступно объяснить, аргументированно объяснить заказчику свою точку зрения. В любой ситуации есть свои положительные стороны: часто клиенту выгоднее пригласить on-site SME для оперативного решения проблемы «на месте», поэтому командировки в Software Maintenance случаются довольно часто. Конечно, нельзя утверждать, что карьера в SM во многом состоит из перелетов и жизни в гостиницах, да и никто не берется вести такую статистику, но на моей памяти ни один достаточно крупный проект не обходился без посещения офиса заказчика. Умение решать нетипичные проблемы, пользоваться накопленным опытом и применять системный подход, способность поставить себя на место заказчика—вот что важно для SME. Ведь бывают ситуации, когда решать проблему надо быстро, и времени на то, чтобы посидеть в спокойной обстановке и все продумать, попросту нет: каждая минута простоя серьезной enterprise-системы зачастую обходится слишком дорого. А иногда надо уметь быстро найти временное решение, которое, скорее всего, не будет оптимальным и очень красивым, но самое главное—оно даст возможность системе продолжить работу, пока команда разберется в первопричинах ошибки и исправит ее. Разрушители мифов Существует миф, что SME не пишут свой код, а только исправляют чужие баги. Это неверно: в любой программе количество ошибок есть число конечное, и большинство из них обнаруживается еще на этапе самой разработки. Речь идет об ошибках, из-за которых сдача проекта становится попросту невозможной,—это баги, и именно их устанавливает команда тестирования. Инженерам сопровождения достаются самые «вкусные» ошибки, которые требуют нетривиального подхода как для их обнаружения, так и для устранения. А когда ошибки устранены и приложение работает стабильно, возникает навязчивое желание чтото улучшить или изменить. В результате формулируются запросы на изменения, которые целиком и полностью выполняются инженерами сопровождения. На моей памяти были проекты, в которых 80% кода было переписано заново уже после сдачи в эксплуатацию. Таким образом, инженер поддержки при работе с кодом получает такую же (а иногда и большую) степень свободы, как и рядовой разработчик. Бытует также мнение, будто SME начинают работу с проектом только после его ввода в эксплуатацию. Да, так часто и происходит, особенно если проект приходит в ГЛОССАРИЙ • Enterprise-паттерн—программный шаблон (паттерн), используемый при разработке приложений уровня корпорации (enterprise); • IDE—Integrated development environment, или интегрированная среда разработки; • On-site—командировка, нахождение специалиста у заказчика. • Performance-аналитик—профессия, связанная с анализом, поиском и • • определением низкопроизводительных мест и частей программно-аппаратного комплекса или системы;. Primary skills—основные навыки, в IT-сфере—технические либо управленческие; Usability (юзабилити)—термин, описывающий простоту и удобство работы с пользовательским интерфейсом программ. Software Maintenance «извне». Такая ситуация объяснима, ведь не всегда заказчик успевает сообразить, что, помимо готового продукта, ему еще требуется много различных сервисов. Но достаточно часто компания-разработчик ПО успевает убедить клиента, что для нормальной и эффективной жизни приложения ему нужна постоянная квалифицированная помощь. И если система изначально разрабатывается компанией с нуля, есть смысл вводить SME в проект уже на этапе его разработки. Это упрощает процесс передачи знаний, а также дает людям, которые в дальнейшем будут сопровождать систему, необходимый багаж знаний о технических деталях проекта. К тому же, так как SME способны эффективно выполнять задачи классических разработчиков, введение их в проект обосновано еще и с экономической точки зрения. Если взглянуть на диаграмму RUP-модели развития проекта, становится заметно: первая фаза, в которой задействованы все специалисты,—это construction (производство). Именно на этом этапе целесообразно вовлечь в процесс разработки SME: в зависимости от скиллов они могут эффективно помочь проектной команде в решении различных вопросов. К этому моменту, как правило, и заказчик уже начинает осознавать, что создать продукт, идеально соответствующий его нуждам, сразу не получится, надо быть готовым к длительному и не всегда приятному процессу «тюнинга» системы. Что же до SME—да, им приходится активно участвовать в классическом процессе разработки, зато взамен они получают способность сопровождать проект практически сразу после сдачи и без затрат дополнительного времени на разгон. По-настоящему важно участие инженеров сопровождения на последнем этапе работы над проектом—transition. Именно в этот момент SME перехватывают инициативу у девелоперов, помогая выполнять первичную установку, настройку, внедрение системы, справляться с первой волной запросов. Постепенно роль разработчиков уменьшается—как правило, в первый же месяц после сдачи проекта из них в команде остается один-два человека, в качестве консультантов. Согласно классическому RUP, разработка системы на фазе transition заканчивается. Однако, как я уже говорил, на самом деле и для программы, и для заказчика все только-только начинается. Сравнение типичных разработчиков и инженеров сопровождения напоминает аналогичную ситуацию с регулярной армией и спецназом: первые почти всегда знают на недели вперед, чем они будут заниматься и что предстоит совершить; вторые же каждый день узнают о новых запросах и требованиях заказчика, и потому общий динамизм и разнообразие задач у SME на порядок выше. Ведь если на этапе разработки воображение и энтузиазм заказчика можно охладить спецификациями, проектным планом и другими соглашениями, и эти задачи, как правило, замыкает на себе проектный менеджер, то на этапе сопровождения каждая новая идея клиента прямиком доходит до команды, и все принимают активное участие в ее обсуждении и сопоставлении со здравым смыслом и возможностью технологически реализовать. Команда Software Maintenance, как правило, в несколько раз меньше группы разработчиков. В связи с этим каждый человек выполняет больше функций и несет большую ответственность: один и тот же специалист может одновременно выступать в роли координатора, ключевого разработчика, бизнес-аналитика, тестировщика и технического писателя—все зависит от способностей человека и от нужд проекта. Разнообразие стоящих перед ним задач, даже в рамках одного проекта, позволяет постоянно профессионально совершенствоваться, причем как в техническом плане, так и в области коммуникаций и менеджмента. Грамотный SME уже через 1-2 года работы может самостоятельно вести весь проект, начиная с документации и общения с заказчиком и заканчивая написанием кода, сборкой всего программного пакета и его конечной настройкой на оборудовании заказчика. Просто SuperMEn Назову еще одно существенное отличие SME от типичных разработчиков—способность быстро обучаться. Это отнюдь не означает, что другие члены проектной команды не обучаются, просто для них это не является жизненно важной необходимостью. А для SME это—как воздух. Несомненно, работая в Software Maintenance, со временем можно стать узкоспе- КАРЬЕРНЫЙ РОСТ В IT-ИНДУСТРИИ циализированным высококлассным профессионалом, гуру в своей области. Однако в силу специфики работы SME, как правило, владеет многими смежными и даже противоположными, казалось бы, навыками. Постоянное изучение чего-то нового—это часть профессии, метод работы. Нежелание годами заниматься одной и той же технологией, тяга к чему-то новому—вот верные признаки Software Maintenance. Итак, коммуникабельность, быстрая обучаемость, сообразительность, ответственность—основные отличительные черты SME. Видите, в этом списке нет ни языка программирования, ни знаний аппаратных платформ, ни системного ПО, потому что инженер сопровождения ПО—это прежде всего инженер. «Чистым» программистом его можно назвать только с натяжкой. А грамотному инженеру, конечно же, не составляет труда разобраться и освоить на должном уровне и язык программирования, и любую аппаратную и программную платформу. Вот чего в Software Maintenance точно нет, так это «искусства ради искусства»: вся работа подчинена одной цели—«make customer happy» («сделать так, чтобы заказчик был доволен»). И если для ее достижения необходимо разобраться в существующей программе, изучить новую систему или модуль, сконфигурировать сервер или технически грамотно объяснить заказчику, что происходит и почему, то мы это делаем и не переживаем по поводу того, что не удалось при этом применить новый модный enterprise-паттерн или последнюю версию сторонней библиотеки. Достаточным минимумом для начала карьеры в Software Maintenance является общая техническая грамотность, ведь инженеру поддержки для выполнения своей работы необходимо понимать, что происходит, как и зачем. Каждый из этих вопросов исключительно важен: нельзя же при работе с «живыми» программными продуктами абстрагироваться от задач, которые они выполняют, невозможно не разбираться во внутренностях программ и технологий. Наконец, необходимо четко представлять варианты использования системы с точки зрения конечного пользователя. умение «не потерять за деревьями лес». Рабочий компьютер SME со стажем представляет собой занимательное зрелище: это десятки, сотни установленных программ и сред, добрая половина из которых на самом деле используется в повседневной работе! Ведь если программисту, для того чтобы продолжить писать свою часть кода, достаточно одного грамотно настроенного IDE плюс полдюжины полезных утилит, то SME каждый день может понадобиться выполнить несколько десятков существенно различающихся задач, для каждой из которых придется иметь свой собственный набор инструментов. Конечно, день на день не приходится, бывают моменты, когда можно надеть наушники, отрешиться от всего и мирно заниматься рутиной под любимую музыку. Однако это случается нечасто, значительно чаще бывает, что к вечеру забываешь, чем занимался утром. Лично мне такой стиль работы по душе, как и то, что не приходится по 8 часов подряд сидеть в одной позе за компьютером: по ходу работы приходится общаться со многими людьми. Согласитесь, полезнее и эффективнее встречаться с коллегами лицом к лицу. Как стать SME Карьера инженера сопровождения в компании EPAM Systems внешне сродни карьере разработчика: те же ступени развития—сначала Junior SM Engineer (младший SM-инженер), далее SM Engineer (SM-инженер), Senior SM Engineer (старший SMинженер), Lead SM Engineer (ведущий SM-инженер) и, наконец, SM Team Leader или Chief SM Engineer (главный SM-инженер). Можно смело утверждать, что карьера инженера сопровождения развивается гораздо динамичнее и быстрее, нежели классических разработчиков. Связано это как раз с теми особенностями работы, о которых я уже говорил: разнообразие задач, технологий и проектов. Все это предоставляет большие возможности для профессионального роста. И если профессиональные интересы классических разработчиков, как правило, вращаются округ какой-то одной технологии, одного языка программирования и т п., то для SME просто необходимо Обычный день SME систематически накапливать разносторонние знания, Обычный день SME чаще всего начинается с причем из разных областей и дисциплин. чтения почты. Даже если накопилось достаточно В Software Maintenance приходят разные срочных дел, все равно есть шанс, что пока ты спал, специалисты, и по разным причинам: так, классипроизошло еще что-то феерическое, что потреческих разработчиков в SM привлекает динамика, бует незамедлительной реакции. Умение четко техническая сложность задач, возможность сменить ориентироваться в больших объемах информатехнологическое направление (например, с Java на ции, классифицировать входящую корреспонден.Net); тестировщиков—возможность приобщиться цию и эффективно использовать для этого все к программированию без владения фундаментальимеющиеся инструменты (почтовые программы, ными теоретическими знаниями в этой области и системы поиска, различные утилиты и т.п.) прихот.д. В общем, поле деятельности—широкое, а работа дит, конечно, со временем, ведь на самом деле это интересная и перспективная. Ведь на самом деле для того, чтобы начать карьеру SME, Полезные ресурсы в сети надо еще меньше, чем разработчику: всего лишь уметь общаться http://en.wikipedia.org/wiki/Software_maintenance и искренне хотеть учиться! Так www.sei.cmu.edu/cmmi/presentations/sepg04.presentations/sw-maint.pdf что—learn a language!!! • • EPAM ШАГАЕТ ПО СТРАНЕ. ГДЕ БУДЕТ СЛЕДУЮЩИЙ ШАГ? Так повелось, что в столице аккумулируется все лучшее, что есть в республике: лучшие кадры, лучшее техническое оснащение, лучшие условия для учебы и работы. Но ведь в областях тоже есть талантливая молодежь, которой нужно дать шанс для развития! Именно для такой молодежи компания EPAM Systems открывает сеть учебно-практических компьютерных лабораторий в областных центрах. 12 октября 2007 года на факультете математики и информатики Гродненского государственного университета им. Я.Купалы при поддержке Парка высоких технологий распахнула свои двери совместная учебнопрактическая компьютерная лаборатория ГрГУ-EPAM. В лаборатории будут проводиться занятия по учебным программам ВУЗа, а также углубленные факультативные занятия, в организации которых приняли участие ведущие специалисты EPAM Systems. Студенты 3-5 курсов на основе специально разработанных учебных проектов смогут приобрести практические навыки по процессам разработки программного обеспечения, получить представления о проектных рисках, управлении версиями, принципах и приемах работы с заказчиком. Константин Голунко, руководитель гродненского офиса EPAM Systems: «Сделан очередной шаг в нашем многолетнем сотрудничестве с Гродненским государственным университетом. Открытие совместной лаборатории позволит максимально приблизить учебный процесс к требованиям современного производства, обеспечивая тем самым возможность именно здесь, в Гродно, готовить специалистов мирового уровня в области информационных технологий». Павел Шагойко, Director of Resource Development белорусского отделения EPAM Systems: «Наши лаборатории—это не просто оборудованные современной техникой учебные классы, но и каналы, по которым мы имеем возможность передавать практический опыт в систему высшего образования. EPAM Systems делает все возможное, чтобы передовые технологии в IT-сфере стали доступны как можно большему количеству студентов». Это пятая по счету лаборатория, которую открывает EPAM Systems в 2007 году, такие же уже успешно функционируют в Минске (БГУИР, БГУ, БНТУ), Могилеве (Белорусско-российский университет), Гомеле (Гомельский государственный университет им. Ф.Скорины). В ближайшем будущем планируется открытие такого тренинг-центра и в Витебске (Витебский государственный университет им. П. М. Машерова), а в дальнейшем—в Бресте. Более подробно об этом вы сможете прочитать, если зайдете на сайт www.epam.by Мой Компьютер №17 /40/ IT-CAREER В ПРОГРАММИСТЫ Я Б ПОШЕЛ, ПУСТЬ МЕНЯ НАУЧАТ! Рынок IT-индустрии стремительно развивается, и с каждым днем спрос на высококвалифицированных программистов растет. Но что делать тем, кто учился в те времена, когда о персональном компьютере в каждом доме говорили как о «чуде»? Неужели «ставить крест» на карьере в IT-сфере? Ничего подобного! EPAM Systems совместно с ГУО «Институт технологий информатизации и управления» Белорусского государственного университета приглашают лиц, имеющих высшее техническое образование (выпускников БГУ, БГУИР, БНТУ 2008 года), желающих получить престижную и востребованную специальность «разработчик Java-приложений», на тренинг по переподготовке специалистов. Программа разработана ведущими специалистами компании EPAM Systems совместно с преподавателями БГУ и составлена таким образом, чтобы в краткие сроки подготовить специалистов в области Java-программирования. Слушатели изучают основы объектно-ориентированного программирования, разработку программных систем с использованием Java и XML, приемы профессионального программирования в области клиент- серверных технологий, системы управления базами данных, тестирование информационных систем и многое другое. Начало тренинга—ноябрь 2007 года. Продолжительность тренинга—4 месяца (форма обучения—вечерняя, 3 раза в неделю по 4 академических часа). Место проведения—главный корпус БГУ (пр-т Независимости, 4) и учебные лаборатории компании EPAM Systems. Набор—поток в 120 человек. Зачисление в группу тренинга производится по результатам собеседования и технического интервью. Для того чтобы вас пригласили на собеседование, необходимо: • Скачать и заполнить анкету EPAM Systems. •Прислать анкету с пометкой «Переподготовка специалистов» в отдел персонала на адрес: [email protected]. Требования к составу слушателей—отсутствие обязательств по распределению, владение английским языком на уровне беглого чтения и понимания технической документации. * Преимущество при зачислении в группу тренинга дает знание хотя бы одного языка программирования, опыт работы в IT-сфере или по смежной специальности. Обучение—бесплатное. Всем успешно закончившим тренинг выдается сертификат установленного образца о повышении квалификации. Слушатели, которые успешно прошли обучение, получают возможность начать карьеру в EPAM Systems. Подробную информацию обо всех тренингах и вакансиях EPAM Systems можно получить на сайте www.epam.by/job. 19