вторник, декабря 18, 2007

Тяга к перемене мест

В моей жизни произошло большое событие - спустя 4 года работы я перешел в другую компанию. С 3 октября 2007 года я работаю в харьковском офисе компании Exadel Inc.

С чем связан мой переход?
1) Достиг в NIX Solutions Ltd всего, чего там можно было достигнуть без увольнения людей, что были выше меня - Иван, Витек.
2) Захотелось посмотреть на опыт другой команды в построении успешной компании - разработчика заказного ПО.
3) Надоело учить каждое новое поколение студентов основам программирования и создания коммерческих продуктов, захотелось приобщиться к команде людей, опыт которых побольше моего (сложилось у меня ошибочное, как я надеюсь, мнение о том, что в 25 лет я знаю все о разработке ПО :) ). Думаю, что от этого не уйти и на новом месте, но по крайней мере свой уровень подниму.
4) Внести свежую струю в профессиональную деятельность. В Никсах моя загрузка была на уровне 20-30%. И это было хорошо, я расчитывал тратить свободное время на собственные проекты как внутри фирмы, так и касающиеся лично меня. Но поставил себе срок, если через полгода ни один из моих проектов не выйдет в live - меняю компанию. Так и получилось, что в конце августа 2007 мне поступило предложение от Exadel.

Ощущения от 2.5 месяцев работы:
1) Технический уровень сотрудников на программистских должностях очень сильный - просто небо и земля. Junior девелопер должен иметь не менее года работы в коммерческих проектах и свободно владеть Core java, Struts, Spring и понимать вебную сущность разрабатываемого ПО. В Никсах это уровень девелопера. Сотрудниками Exadel являются люди, которые пишут книги по JavaScript, JSF, Seam. И это воодушевляет :)
2) При этом менеджерский состав показался слабоватым по сравнению к Никсами. Ну или может мне просто не повезло с моментом прихода на фирму в момент ее бурного роста и открытия 2 филиалов в Украине - в Харькове и Донецке. Все управление завязано на минском офисе и потому есть некоторые пробуксовки в принятии решений и распределении ответственности. Уверен, что это вскоре пройдет, как только управленческое звено в украинских офисах хоть немного окрепнет. В Никсах же менеджерское звено заточено в боях с неопытными разработчиками и вся система управления пронизана перекрестным контролем. Это позволяет вовремя реагировать на проблемы в девелопменте и в общении с заказчиком. Но это выливается в большую нагрузку на начальника производства.
3) Новый круг задач. Я пошел на понижение - в данный момент выступаю в роли Senior Java Developer. Помогаю ребятам править баги в большой системе, разработанной харьковским офисом. Время от времени прохожу интервью с заказчиками (на Никсе подобное не практиковалось). Есть желание дорости до роли Project Manager (PM), к тому же и на мир посмотреть должно получиться, т.к. по установленной в Exadel схеме ПМ сидит на стороне заказчика.

Благодарности.

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

Иван - сильный мужик со стальными яйцами. Идеальный начальник производства для Никса, так уж сложилось, что место создано под него. Не могу представить его в другой компании. Уже много лет болеет за Никс, и много здоровья оставил в борьбе за благополучие девелоперов и заказчиков. Очень башковитый и очень ответственный.
Мак - моя опора и поддержка в бурном море Java технологий. Ему это очень интересно и он готов делиться этими знаниями с окружающими, если они того хотят. Дайте ему время от времени разбираться в новинках, а потом давайте работу в реальных проектах, но не пускайте к нему заказчиков. Баланс в этих занятиях покажет все его способности.
Никл - человек с обостренным чувством прекрасного. Настолько ленив, что делает свою работу очень тщательно и с первого раза.
Серж - ленивый теоретик с большим потенциалом. С целям и приоритетами в его жизни есть проблемы (судя по выполняемым в первую очередь таскам), но светлая голова однозначно есть. Общение с ним запускает соображалку, но на личном примере он свои же умные изречения не воплощает.
Гарри - прирожденный сейлс, с большим жизненным опытом и шилом в одном месте. Именно он на личном примере показал как нужно мотивировать команды, как нужно показывать людям, что компания ценит их. Не всегда менеджерское звено могло адекватно это транслировать, но Гарри способен зажигать. Переезд джава отдела в южный офис и более редкое общение с ним также сыграло свою роль в моем уходе.
Андрей Таранцов - отдал мне баннернет и толкнул меня в сторону должности ПМа
БСВ - показал, что не всегда созданное своими руками будет работать лучше, чем готовое open-source решение (сколько багов мы выловили в нашей реализации Commons File Upload :) )
Сокол, Коба, Ерка, Юрбар, Мицик - в работе с вами над проектами я сделал кучу ошибок, а вы были достаточно мудры (или молоды и неприхотливы :) ) , чтоб не заметить их и пройти через тернии работы со мной к звездам положительных фидбеков от наших заказчиков.

Спасибо, NIX Solutions - ну здравствуй, Exadel

среда, декабря 12, 2007

Требования к ПМ (Project Manager) в одной из харьковских фирм

Вышел на меня недавно один хедхантер. Зовет к себе ПМом. Начали общаться, я и попросил список требований к ПМу, который эта фирма хочет увидеть в соискателе. Получился примерно такой текст:

General: Ability to estimate, track, and refine complex projects, scope and create high quality deliverables on time utilizing advance software engineering skills and proven methods. The candidate should be experienced in managing customer expectations as it relates to software deliverables, timelines, and resources. Ability to build, manage, and motivate effective software development teams utilizing project management skills and methods.

Methodologies: Deep understanding of SDLC (System Development Life Cycle) methodologies (RUP, MSF, Agile, CMM, etc), QA (Quality Assurance, Testing, Release Management, Six Sigma, etc.) techniques and methods, Requirements Management methodologies.

Technical Documentation/Process: Ability to define high and low level requirements, functional specifications, code documentation and reviews, establish proper release management procedures, create test plans and institute a set of automated regression tests, identify project risks and opportunities, and provide constructive recommendations to the team and to the client. The candidate should be experienced in project communication techniques to include detailed weekly status reporting, risk reporting and project tracking.

Technical skills: Expert knowledge of OOA, OOD, OOP concepts. Programming Languages: C/C++, Java, C#, functional languages. Solid knowledge of ANSI SQL, RDBMS: Oracle (PL/SQL), MS SQL, DB2. Operating Systems: Windows NT/2000, POSIX: Unix (Sun and/or HP, Linux). Good understanding of networking protocols, services, and applications. Basic knowledge of System Administration, Security Policies.

Довольно внушительный список для должности, разговор о которой начинается от $3000 (по словам хедхантера)

Большинство слов конечно знакомы, но некоторые вещи лично у меня вызвали непонимание. Зачем ПМу:
- сильные знания SQL;
- опыт работы в функциональных языках;
- экспертные знания в ООП;
- умение создавать тестпланы и настраивать автоматическое тестирование
- глубокие знания SDLC перечислены как будто из учебника. Чтоб глубоко знать подобные вещи, нужно их использовать. Если фирма использует их все, то требования понятное. Но из разговора выяснилось, что применяется в основном SCRUM, так зачем тогда RUP, Six Sigma (это вообще насколько я понимаю из другой оперы и данный подход себя оправдывает в очень спецефических условиях).

Из перечня требования я понял, что в данный момент нам не по пути. Т.к. перечень требований предполагает именно многостаночность, мне же это пока не интересно. У меня есть опыт разработки заказного ПО, написания требований, общения с заказчиком на всем пути ведения проекта, налаживание взаимодействия в команде между тестерами и разработчиками. Нет ни малейшего опыта в обеспечении качества ПО, планировании рисков, РУПе, СММ и других страшных аббревиатурах. К тому же мой разговорный английский не в самой лучшей форме (есть куда расти, сам знаю) и опыт в Agile технологиях нельзя назвать обширным. В Никсе пытались применять XP, но кроме утверждения нескольких практик (общее владение кодом, тесты, итеративная разработка, постоянная интеграция) жестко по этой методологии не работали.

Фирме же нужен хороший технический специалист, который перепробовал всякое, вырос в менеджмент и обладает довольно большим багажом практического опыта во многих аспектах разработки ПО: разработка, тестирование, планирование, общение, мотивация. Такой специалист по-моему в данный момент и стоить меньше $3000 в месяц не должен, т.к. он с таким багажом знаний способен в своих проектах заменить и бизнес-аналитика, и девелопера, и тестера и тимлида. В реальной жизни я больше видел людей, которые делегировали эти задачи участникам команды и основной их деятельностью на посту ПМа было именно координирование работы команды, решение спорных моментов и общение с заказчиком. Примером такого ПМа мне показался Агошков, лектор который читал нам курс по оценке проектов в Киеве.

Итого, ПМы нужны, ПМам готовы платить, но и требовать готовы многого, есть к чему стремиться и пусть мне не говорят, что нужны только девелоперы :)