Нелегкое дело ведущего разработчика Microsoft Technologies Division EPAM Systems
Об авторе
Алексей Задорожный, 25 лет.
2005 — окончил БНТУ, Факультет Информационных Технологий и Робототехники, специальность — Программное Обеспечение.
Август, 2004 — EPAM Systems, практика
Сентябрь, 2004 — EPAM Systems, младший разработчик
Январь, 2005 — EPAM Systems, разработчик
Июль, 2006 — EPAM Systems, старший разработчик Microsoft Technologies Division
Январь, 2008 — EPAM Systems, ведущий разработчик Microsoft Technologies Division
Участвовал во многих проектах, в том числе для таких известных компаний как Reuters и London Stock Exchange.
Хобби: science fiction
В компании EPAM Systems есть большое подразделение, занимающееся разработкой программного обеспечения на технологиях Microsoft. Соответственно под ведущим Microsoft-разработчиком в данной статье будем понимать не работника корпорации Microsoft, а разработчика в подразделении Microsoft в EPAM Systems.
Особенности работы с Microsoft
Наверное, не стоит рассказывать что такое компания Microsoft. Ее продукты можно найти в каждом доме, на каждом персональном и рабочем компьютере. Microsoft доверяют миллионы людей во всем мире. Это флагман на рынке IT, который постоянно движет свои технологии вперед, придумывает новое, развивает старое. Поэтому, работая с продуктами Microsoft, скучать не приходится, постоянно есть куда развиваться и к чему стремиться.. Иными словами, работая с платформой Microsoft, есть шанс всегда быть на острие индустрии, а это очень интересно и престижно. Кроме того, технологии Microsoft охватывают все необходимые для разработки серьезных приложений области:
- серверная операционная система
- система управления базами данных
- Web-сервер
- среда разработки
- язык программирования
- библиотеки готовых компонентов
- и многое другое
Практически все необходимые инструменты для работы c Microsoft технологиями предоставляет сама Microsoft, от мощнейшей интегрированной среды разработки — Visual Studio, до самых мелких вспомогательных утилит. Основные инструменты: Visual Studio, SQL Server Management Studio, MS Office и т.д. Дальнейший список зависит от специфики и требований проекта.
Что это дает разработчику? Это дает более-менее единые и стабильные подходы и стандарты, связывающие все эти области, что облегчает разработку, интеграцию и сопровождение программного обеспечения. Так же Microsoft старательно поддерживает и развивает единую базу знаний Microsoft Developer Network (MSDN), в которой можно найти ответ практически на любой вопрос, касающийся всех вышеперечисленных технологий и средств. Можно долго спорить о том, лучше это или хуже аналогичных технологий и средств других производителей, но это есть, этим пользуются и, на мой взгляд, это очень удобно.
Обязанности ведущего разработчика
Конечно, ведущий разработчик обязан писать код, причем делать это быстро, правильно и качественно, подавая пример младшим товарищам. На данной ступеньке карьерной лестницы это все еще доминирующая составляющая обязанностей. Но, в отличие от разработчиков меньшего уровня, круг обязанностей ведущего разработчика более широк и акцент сильнее смещен в сторону от написания кода. Ведущий разработчик обязан принимать участие в решении задач более высокого уровня, таких как:
- проектирование
- управление командой
- непосредственное общение с заказчиком
- обучение младших специалистов
- рецензирование кода других разработчиков
- разработка документации
В основном разработка ведется на MS .NET Framework, то есть теоретически можно использовать любой из поддерживаемых данной платформой языков, но наиболее популярным и распространенным является C#, следовательно, лучше всего совершенствовать навыки владения именно им.
Кроме того, главная обязанность ведущего разработчика, как и любого другого специалиста в нашей отрасли — постоянное развитие и обучение. Сама отрасль развивается настолько быстро, что даже будучи хорошим специалистом сегодня, можно оказаться не у дел через год-два. Например, еще недавно интернет сайты писали на ASP, а настольные приложения на C++, теперь же в моде ASP.NET и С#. Практически каждый год Microsoft выпускает что-то новое: либо новую версию уже известного продукта, либо что-то совершенно новое. Следить и поспевать за этим довольно непросто, но основы информатики и программирования не меняются до сих пор. То есть теория баз данных, структур данных, основы сетевых коммуникаций, базовые принципы ООП и тому подобные вещи не меняются революционно, следовательно, хорошо зная эти основы, намного проще изучать их новые «обертки» и представления. На данный момент последним «писком моды» являются все последние продукты Microsoft такие как .NET Framework 3.5, C# 2.0, SQL Server 2005, Silverlight. В нашем отделе SQL Server используется очень широко; на некоторых проектах начинают использовать Silverlight, а некоторым по душе NET Framework 3.0-3.5.
Расширенный круг обязанностей ведущего разработчика подразумевает бОльшую ответственность. Ответственность не только за себя, но и за других членов команды. От твоих решений и действий зависят другие члены команды, успех всего проекта. Хорошо, что есть старшие коллеги, готовые в любой момент дать совет, проконсультировать, оказать помощь. А впоследствии и я окажусь на их месте.
Кесарю-кесарево
Имя Microsoft в названии отдела присутствует не потому, что является основным заказчиком, а потому, что мы используем их технологии и инструменты для разработки приложений для других компаний. Конечно, некоторые проекты EPAM готовит и для Microsoft, но крупнейшими заказчиками нашего отдела являются такие всемирно известные компании как Reuters, London Stock Exchange, а также много других крупных компаний со всего мира.
Специализация компании EPAM Systems — программное обеспечение для бизнеса, и это накладывает отпечаток на специализацию работников: наиболее востребованными являются навыки разработки Web-сайтов и Web-сервисов. Но чаще всего любые сайты и сервисы в дополнение требуют хранилища данных и вспомогательных программ. Поэтому в реальности заниматься приходится и базами данных на Microsoft SQL Server и Windows приложениями, и другими вещами, на первый взгляд, не связанными с сайтами и сервисами.
Безусловно, у каждого человека есть какие-то предпочтения: кого-то больше тянет заниматься презентационной частью, то есть интерфейсом программы или сайта, а кому-то интереснее базы данных и внутренняя логика приложения. Но, в общем и целом, каждый разработчик должен уметь справиться с практически любо задачей, другое дело это сколько при этом будет затрачено усилий и времени, и какое качество продукта при этом будет получено. Все это прекрасно понимают в компании, поэтому совсем «не своим» заниматься часто и подолгу не приходится, т.е. пожелания разработчика учитываются и в основном каждый занимается тем, что ему больше по душе. Команда разработчиков подбирается в соответствии с квалификацией и экспертными знаниями разработчиков в определенной области и. Но во время работы над проектом вполне может поменяться приоритет и тогда либо подбирают других людей, либо текущая команда улучшает свои навыки в новой приоритетной области. В общем и целом, каждый из наших разработчиков обладает довольно широким кругом знаний и может в кратчайшие сроки разобраться и выполнить любое задание.
Рабочий день
Как известно, стандартный рабочий день длиться с 9:00 до 18:00 с перерывом на обед с 13:00 до 14:00. Но строгое соблюдение этого графика, как правило, в нашей компании не требуется. Например, если человек — «сова» и ему удобнее работать с 11:00 до 20:00, это допускается. Главное чтобы работа была сделана качественно и вовремя, и заказчик всегда оставался довольным. А это достигается не просиживанием рабочих часов «от звонка до звонка», а выполнением своей любимой работы, приносящей удовольствие.
Но свободный график — это палка о двух концах : бывают случаи, когда приходится задержаться на работе или поработать в выходной день, по разным причинам. Например, если вы допустили досадную ошибку, а программу нужно сдавать срочно (у каждого проекта есть конкретные сроки реализации), то тут уж пенять не на кого и нужно сидеть, исправлять и дорабатывать. Изредка случается, что заказчик в последний момент осознает, что ему срочно надо добавить какую-нибудь функциональность в программу и сделать это нужно «вчера», тогда команда может пойти навстречу и выйти в нерабочее время, чтобы доделать все что нужно, тем самым поддержать хорошие отношения с заказчиком. В обоих случаях это не проходит бесследно и ценится как компанией, так и заказчиками.
Основное средство коммуникации внутри компании и с заказчиками — это электронная почта(e-mail), поэтому обычно рабочий день начинается с просмотра новых писем (не новостных рассылок с развлекательных сайтов, а рабочих писем на корпоративном почтовом ящике J). В этих письмах обычно приходят новые задания, разнообразные запросы, ответы на уточняющие вопросы к заданиям и тому подобное, то есть то, что может повлиять на планирование рабочего дня. В этот момент может понадобиться написать несколько быстрых ответов на запросы, если быстро ответить не удается, то лучше выделить это в отдельную задачу с соответствующим приоритетом и заняться ей позже. После обработки писем получаем список новых задач и уточнения к текущим, на основе чего модифицируем глобальный список своих задач. Далее выбираем из этого списка несколько задач на день на основе поставленных сроков и приоритетов, и начинаем работать над этими задачами. Если вы руководите командой разработчиков, то список задач вырастает и планировать их нужно не только по времени, но и разделяя по членам команды, учитывая способности, заинтересованность, загруженность других людей в своей команде.
Конечно, электронная почта не самый быстрый способ общения, но тоже имеет ряд положительных и полезных свойств. Письмо, по сути, может являться достаточным документом, на основе которого могут приниматься решения, начинаться или останавливаться работы, при этом письмо труднее потерять или забыть. Часто нужно применять более быстрые способы общения как телефон или разнообразные текстовые месенджеры(MSN, Skype). Лучший способ общения — это, безусловно, собраться и поговорить вживую. Но в любом случае после таких разговоров необходимо закрепить принятые решения, так сказать, на бумаге и один из удобнейших способов это сделать — написать письмо всем участникам с перечислением обсужденных вопросов и принятых решений (так называемый meeting follow up-MFU). Так что, электронная почта — важнейший инструмент в нашей работе.
Тем не менее, общение face-to-face никто не отменял, и оно также занимает значимую часть в нашей работе. Так как большая часть заказчиков находится за пределами Беларуси, то нередки командировки в различные страны мира. Встреча с заказчиком — самый быстрый, надежный и удобный способ понять чего хочет заказчик от проекта, получить ответы на все возникшие вопросы, получить согласие с вашими предложениями и одобрение ваших идей. Такие встречи экономят время и деньги обоих участников процесса.
Карьера
Я работаю в EPAM Systems уже около четырех лет. До работы в EPAM не имел серьезного опыта работы в данной сфере. Знаниями Microsoft .NET платформы, к слову, тоже не обладал. После четвертого курса ВУЗа был на практике в компании в роли тестировщика, после чего был приглашен на учебный курс по .NET Framework. По успешному завершению курса, был принят на работу младшим разработчиком. До работы в компании я увлекался другими языками и технологиями, в первую очередь меня привлекала разработка именно Web-приложений, а MSD явился одним из путей к реализации этого влечения. Теперь не жалею, скорее наоборот, очень даже рад скорости развития Microsoft технологий и возможности постоянно работать с чем-то новым. Это позволило мне в короткие сроки стать ведущим разработчиком, и я думаю это еще не конец путиJ.
В EPAM Systems для карьерного роста есть все условия. Постоянно проводится огромное число внутренних семинаров, где более опытные коллеги делятся полезным опытом и знаниями со всеми желающими. Часто проводятся серьезные курсы с привлечением сторонних преподавателей и специалистов высокого уровня. Есть разнообразные курсы иностранных языков с профессиональными преподавателями, как общие для повышения уровня владения, так и специализированные, где, например, рассматриваются хитрости деловой переписки или телефонных переговоров. Ежегодно проводятся конференции, где собираются сотни человек из разных офисов компании, работающих в смежных областях, читают доклады на интересующие многих темы, рассказывают о выдающихся достижениях, знакомятся и делятся полезным опытом и знаниями между собой. Поэтому для профессионального роста есть все возможности, было бы желание.
Кроме того, в компании тебя окружают хорошие специалисты и профессионалы своего дела, у каждого из которых можно найти чему поучится. При этом большинство из них рады делиться своими знаниями, а остальные совсем не против, если кто-нибудь сам эти знания из них вытянет J.
Что дальше?
Чтобы стать ведущим разработчиком, надо иметь опыт, обладать экспертными знаниями в своем деле, проявлять инициативу, брать ответственность на себя, иметь хорошие отношения с коллегами и многое другое, в общем, надо хорошо делать свое дело — это самый быстрый и надежный путь.
А уже после достижения этой ступеньки у ведущего разработчика есть два пути дальнейшего развития.
- Первый — пойти по пути совершенствования глубины технических познаний и мастерства кодо-писания, и стать Главным разработчиком (Chief Software Developer) — это высшая ступенька развития разработчика как технического специалиста.
- Второй путь — развивать познания процессов, навыки управления командой и проектом, и стать Ведущим команды разработчиков (Software Development Team Leader). Ведущий команды разработчиков — это первая ступенька в очень длинной и захватывающей лестнице к высотам менеджерского искусства.
Выбор всегда остается за человеком: кому-то нравится «копаться» в коде, а кому больше по душе управление людьми. Выбор, как всегда, за вами.
Плюсы и минусы
Один из основных недостатков работы программистов — сидячий образ жизни. Довольно много приходится сидеть перед компьютером, поэтому очень важно иметь какое-нибудь активное хобби, заниматься спортом, чтобы совсем не «зачахнуть». У нас в компании популярны различные спортивные секции, клубы по интересам (автогонки, страйкбол, альпинизм и т.п.), где сотрудники могут отвлечься от работы и посвятить себя любимому хобби. Но основное достоинство работы в MTD — постоянное развитие. Это работа для творческих людей, генераторов идей, которые не любят скучать и хотят идти в ногу со временем.. На мой взгляд, чтобы стать хорошим разработчиком, достаточно простого желания учиться и развиваться как специалист, и всегда быть открытым новому.
Что почитать
Д. Рихтер — Программирование на платформе Microsoft .NET Framework
Э. Гамма, Р. Хелм — Приемы объектно-ориентированного проектирования. Паттерны проектирования
С. Макконнелл — Остаться в живых! Руководство для менеджера программных проектов
Ссылки
О компании Microsoft
Основанная в 1975 году корпорация Microsoft является признанным мировым лидером в производстве программного обеспечения, предоставлении услуг и разработке Интернет-технологий для персональных компьютеров и серверов. Корпорация Microsoft разрабатывает и выпускает широкий спектр программных продуктов. В их число входят настольные и сетевые операционные системы, серверные приложения для клиент-серверных сред, настольные бизнес-приложения и офисные приложения для пользователей, интерактивные программы и игры, средства для работы в сети Интернет и инструменты разработки. Продукты Microsoft® продаются более чем в 50 странах мира, переведены более чем на 30 языков и совместимы с большинством платформ персональных компьютеров.
www.microsoft.com
Microsoft Technologies Division
Отдельное подразделение, сфокусированное на Microsoft технологиях, появилось в EPAM Systems в 2003 году — вскоре после того, как компания Microsoft представила миру новую платформу разработки приложений — .NET. Время показало, что данное направление оказалось востребованным как заказчиками, выбирающими .NET в качестве основы построения своих решений, так и программистами, желающими ориентироваться и специализироваться в спектре MS технологий. Все эти годы подразделение было (и остается) одним из самых быстрорастущих подразделений, благодаря чему в данный момент мы можем предлагать заказчикам свою экспертизу в MS технологиях как одну из стратегических специализаций компании (наряду с J2EE, SAP NetWeaver). Наши программисты участвуют как в крупных проектах для гигантов мировой софтверной индустрии, так и в небольших проектах «нишевых» производителей ПО. Помимо написания типичных десктопных и web-приложений, часто приходится участвовать в разработке серверных и интеграционных компонентов для построения сложных программных решений, при этом приобретая знания и навыки, выходящие за границы того, что называется Microsoft Technologies. Это отдел компании EPAM Systems, работающий с технологиями Microsoft и обладающих глубокими знаниями и уникальным опытом в следующих областях:
- ASP.NET (Web Forms, Web Controls)
- Windows Forms, Windows Controls
- ADO.NET
- Enterprise Services (COM+, MSMQ)
- XML Web Services
- .NET Remoting
- Mobile Toolkit
- Interoperability (COM, PInvoke)
- C#, J#, VB.NET, Managed C++
В июле 2006 года EPAM Systems достигла самого высокого уровня компетентности и экспертизы в технологиях корпорации Microsoft, что подтвердилось присвоением компании статуса Золотого сертифицированного партнера Microsoft.
08.06.08, "Мой Компьютер", (c) EPAM Systems