Так уж получилось, что в последних проектах я занимался, по сути одним, и тем же: поднимал "зомби" — проекты, которые формально еще действуют, а фактически уже давно не поддерживается разработчиками, поддержка же сторонней командой крайне затруднена. Production сервер может крутиться годами, а добавить новую фичу или пофиксить баг некому. При попытке подрядить на это стороннюю команду, она морщит носы: "проще переписать с нуля". Один проект до меня "переписывали с нуля" трижды пока не догадались, что то-то тут нечисто. Начались они по разному: кого-то купили, у кого-то команда разработчиков в полном составе эммигрировала в Израиль, где-то катаклизмов не происходило, просто был взят open source проект. причем уже изрядно подзаброшенный. Один раз даже, пришлось даже реставрировать эвм, не работавшую с начала 90-х. Почему и как так получается разговор отдельный. Обычно моя работа начиналась с того момента, когда мне вручалась гора кода (хорошо если не на единственном в природе production сервере!), практически без документации, комментариев, тестов, контроля версий и прочей инфраструктуры разработки. В лучшем случае с предыдущим разработчиком можно было попить кофе в аэропорту. В худшем, до меня в этом коде копалось три поколения студентов. Комментарии в стиле "Сегодня холодно, ничего не видно, пергамент волосатый, и выходит скверно" в середине метода явление настолько обыденное, что я уже перестал их запоминать. Кажется, я могу написать книгу с примерами "как нельзя проектировать, писать код и настраивать сервер".
Со всем этим я плодотворно трудился до тех пор, пока проект не оживал: появлялась возможность за разумное время, без риска сломать или испортить, фиксить старые баги, имплементить новые фичи, осознанно принимать новые, и, главное, понимать причины побудившие принять старые, технические решения. Все это выражалось в спецификациях, комментариях к коду, вижонах, UML диаграммах, произведенных рефакторингах и прочем материале, доступном для любого разработчика. Т.е. именно тем, что и отличает живой проект от "зомби".
Языки программирования и технологии для меня решающего значения не имеют. Во-первых, в области программирования бизнес приложений я стараюсь быть в курсе последних новинок, а уж тем более я в курсе, какие технологии отправлены на пенсию и почему. Во-вторых, для такой деятельности доскональное знание тонкостей ни к чему. Основная работа идет на более высоком уровне абстракции, и, часто вообще не связана с кодом.
Объектно-оринтированный анализ, паттерны проектирования (и антипаттерны, естественно), методологии разработки, системный подход, теория сложности — это, с чем я сталкиваюсь в повседневной практике, как следствие, неплохо знаю, хотя и без фанатизма.
"Копаться всю жизнь со старым кодом" я не боюсь, скорее нароборот, "техническая археология" и "техническая реанимация" для меня интереснее рутинной поддержки существующего проекта.
Естественно, меня интересует не столько постоянная работа, сколько контракт. Разве что у кого-то есть каптерка, забитая "зомби", которые он не прочь оживить.
Интересно узнать мнение уважаемой публики, можно ли такой специфический опыт сделать профессией? У кого-нибудь возникала нужда в подобного рода специалистах? Сколько такой специалист, во вашему, стоит? Не то чтобы у меня не было своего мнения на этот счет, просто любопытно, не расходимся ли мы с рынком в наших ожиданиях.
Здравствуйте, Miroff, Вы писали:
M>Интересно узнать мнение уважаемой публики, можно ли такой специфический опыт сделать профессией? У кого-нибудь возникала нужда в подобного рода специалистах? Сколько такой специалист, во вашему, стоит? Не то чтобы у меня не было своего мнения на этот счет, просто любопытно, не расходимся ли мы с рынком в наших ожиданиях.
Приветствую, коллега
Любые люди, умеющие решать проблемы, очень нужны везде, так что перспективы тут, я думаю, очень хорошие.
В Microsoft таким целый отдел занимается — Windows Sustained Engineering называется. Поддерживают текущую версию форточек, пока основная команда пишет новую. У Вас очень подходящие скиллы для этого отдела
я думаю , что скилл ваш довольно специфичный
ведь умение разобраться в заброшенной технологии — это по сути освоить ее
мне кажется , в основной массе программистам противно копаться в чужом коде
ведь программист — это писатель , а не читатель
я например терпеть не могу вникать в чужую логику
потому что для этого , как я понимаю , нужно не только желание , но и еще своего рода талант
Здравствуйте, Miroff, Вы писали:
M>Так уж получилось, что в последних проектах я занимался, по сути одним, и тем же: поднимал "зомби" — проекты, которые формально еще действуют, а фактически уже давно не
мы в чем то схожи. Тоже сижу на старом продукте и тоже все вокруг предлагают переписать его заново а я вижу что в нем еще сил огого
По моему опыту — очень нужная специальность в области консалтинга, системной интеграции. Совершенно нормальная ситуация, когда приходишь на предприятие, то следы разработчиков legacy системы потерялись. Ну то есть совсем. Если была доморощенная система, то человек уволился, сменил телефон и т.п. Если контора — то исчезла, или простит поллимона (не рублей) за исходный код системы, созданной 15 лет назад на мейнфрейме.
Типичные задачи, оживить систему. Приделать адаптер от того же мейнфрейма к WebSphere. Ну и т.п.
Так что, я был порекомендовал бы посмотреть в эту сторону. И з/п при правильном подходе побольше, и перспективы неплохие. Правда в минус — придётся как минимум 50% времени отдавать сражению с бюрократией и пользователями. Но это жизнь такая
Здравствуйте, brodyaga, Вы писали:
B>я думаю , что скилл ваш довольно специфичный B>ведь умение разобраться в заброшенной технологии — это по сути освоить ее B>мне кажется , в основной массе программистам противно копаться в чужом коде
Не согласен. B>ведь программист — это писатель , а не читатель
Не согласен абсолютно. БОльшую часть времени программист читает код-документацию, а не пишет. Исключение — разве что очень мелкие проекты-однодневки на одного программиста. B>я например терпеть не могу вникать в чужую логику
Возможно, это из-за того что нет опыта работы в команде, или взаимодействие в команде плохо организовано? В слаженой команде часто при правке кода не можешь сказать сразу — ты или твой товарищ по цеху его написал. B>потому что для этого , как я понимаю , нужно не только желание , но и еще своего рода талант
Скорее, просто опыт
Здравствуйте, Miroff, Вы писали:
M>Интересно узнать мнение уважаемой публики, можно ли такой специфический опыт сделать профессией?
Один из вариантов — работать в саппорте в какой-нибдь большой компании, занимающейся разработкой какого-нибудь проекта уже очень давно. Из примеров на ум приходят операционки и продукты наподобие Lotus Notes — такие же большие, с такой же богатой историей.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, Miroff, Вы писали:
M>>Интересно узнать мнение уважаемой публики, можно ли такой специфический опыт сделать профессией? У кого-нибудь возникала нужда в подобного рода специалистах? Сколько такой специалист, во вашему, стоит? Не то чтобы у меня не было своего мнения на этот счет, просто любопытно, не расходимся ли мы с рынком в наших ожиданиях.
J>Приветствую, коллега J>Любые люди, умеющие решать проблемы, очень нужны везде, так что перспективы тут, я думаю, очень хорошие.
У вас отличная специализация! Проекты-зомби всегды были и будут, и Ваши навыки весьма востребованны на рынке. Если бы Вы еще умели реанимировать "умирающие" проекты (профессия кризис-менеджера) то Вам бы вообще цены не было! "Умирающие" — это те, которые опаздывают по срокам, фичам, с хреновым процессом и т.п...
Вообще, прочитал ваш пост с интересом . Очень занятно.
Hello RGB_Dart,
R> У вас отличная специализация! Проекты-зомби всегды были и будут, и R> Ваши навыки весьма востребованны на рынке. Если бы Вы еще умели R> реанимировать "умирающие" проекты (профессия кризис-менеджера) то Вам R> бы вообще цены не было! "Умирающие" — это те, которые опаздывают по R> срокам, фичам, с хреновым процессом и т.п...
К сожаленнию "реанимировать" нужно вчера. Зомбированный проект уже неделю
пылится, никто к нему не подходит, а те кто подошли — так и не вернулись
Но [user]Miroff[/user] сейчас "занят" и ему не до нас. Освободиться не скоро...
Это конечно несколько утрировано, но найти трезвомыслящего опытного работника
готового взяться за безнадежное дело очень сложно. Особенно тогда кода это
нужно срочно. Когда он "освобождается", закрывает поднятый проект,
то часто бывает так что на данный момент в этой местности его специализация
не нужна, поэтому ему приходится заниматься "обычным порошком"... тьфу конечно,
проектом. И когда он реально понадобится его снова не смогут найти...
Здравствуйте, Miroff, Вы писали:
M>Интересно узнать мнение уважаемой публики, можно ли такой специфический опыт сделать профессией? У кого-нибудь возникала нужда в подобного рода специалистах? Сколько такой специалист, во вашему, стоит? Не то чтобы у меня не было своего мнения на этот счет, просто любопытно, не расходимся ли мы с рынком в наших ожиданиях.
Гм, мне так кажется, что именно этим и занимаются дорогие консультанты. По крайней мере именно о таких специалистах-консультантах мне пару раз рассказывали знакомые, испытывавшие трудности с подниманием зомби. Лично с фирмами полными подобных консультантов не сталкивался, но по слухам их в природе довольно много. Есть ли такие в России — не знаю.
B>>мне кажется , в основной массе программистам противно копаться в чужом коде L>Не согласен. B>>ведь программист — это писатель , а не читатель L>Не согласен абсолютно. БОльшую часть времени программист читает код-документацию, а не пишет. Исключение — разве что очень мелкие проекты-однодневки на одного программиста. B>>я например терпеть не могу вникать в чужую логику L>Возможно, это из-за того что нет опыта работы в команде, или взаимодействие в команде плохо организовано?
Просто все люди разные. Одному интересно одно, другому — другое, и при этом у обоих может неплохо получаться и за плечами может быть большой и успешный опыт серьезных проектов.