Время от времени задумываюсь о том, где и как мне больше всего нравится работать. При этом пытаясь более-менее объективно оценить самого себя.
Я никогда не был супер-программистом, всегда видел рядом с собой тех, кто больше меня знал, кто лучше придумывал алгоритмы, кто лучше проектировал, кто писал более простые и понятные программы, кто выдавал более интересные и новые идеи… В общем, никогда я не был лучшим в какой-то одной области. Но вот чем мне удавалось брать (на что я сильно надеюсь), так это более-менее удачным сочетанием собственных посредственностей в разных направлениях.
Этому способствовали, похоже, и условия, в которых происходило мое профессиональное становление. В КБСП, куда я попал еще студентом, наш маленький отдел был, по сути, мелким стартапом, пытающимся создать свой собственный продукт – объектную SCADA-систему. И каждый программист в таких условиях был и швец, и жнец, и на дуде игрец. Приходилось и код клепать, и тесты к нему, и GUI-интерфейс строить, и, что вообще многие программисты не любят, документацию писать, причем самую разную документацию. С заказчиками, правда, не сильно общался, да и внедрениями занимался эпизодически, но все-таки что-то из этого и мне перепало.
Ну а когда я почти десять лет назад оказался в Интервэйл, то все эти навыки не только пригодились, но и были, смею надеяться, развиты многократно :) Тут уж я и архитектуру рисовал, и воплощал ее в коде, и тестировал, и документировал, и внедрял, и сопровождал… Даже людьми теперь приходится управлять и размеры премий назначать.
Но Остапа что-то понесло :) Так вот, после нескольких страниц отвлеченных рассуждений, пора переходить к сути.
А по сути я хочу поделиться таким своим подозрением: чем больше становится организация, тем меньше ее сотрудникам нужна универсальность, и тем больше востребована специализация.
Т.е., если кто-то в большой программерской конторе является обычным программистом, то ему вряд ли нужны навыки архитектора, как и способность написать 100 страниц внятной документации. Или, скажем, архитектору более пригодятся знания в области buzzword-ов вроде SOA и ebXML (попытайтесь произнести это вслух на людях не смущаясь), чем практические навыки организации тестовых стендов и, уж тем более, опыт общения с техподдержкой заказчика.
В общем, по-моему, чем больше и серьезнее контора, тем меньше ей нужны многостаночники вроде меня. Хотя, может и нужны, но уж точно для нас тут будут неблагоприятные конкурентные условия. Узкие специалисты нас обязательно вытеснят. А раз так, то не мешало бы заранее подумать о возможных путях отхода.
Итак, где может быть востребован программист-многостаночник?
Во-первых, судя по отзывам моих знакомых, определенно, в госструктурах. Там любят (еще с советских времен) таких, кто сам все делает. Да еще и работает за копейки :( Собственно, из-за размеров оплаты госсектор рассматривать и не хочется. Как и предприятия-монополисты (вроде энергосетей, водоканалов, железных дорог и пр.). Насколько я слышал, ничего серьезного они сами уже давно не разрабатывают, а поручают все новые разработки крупным специализированным компаниям.
Во-вторых, думаю, такие мастера на все руки нужны стартапам. Ведь работы много, а 10 узких специалистов сразу не наймешь. Собственно, начальный этап развития Интервэйл как раз именно это и доказал – правильные кадры решают все.
В-третих… А вот в-третьих уже и нет. Первые два пункта – это все, что приходит мне в голову. Только две потенциальные ниши. Не густо :(
Наверняка что-то прошло мимо меня. Поэтому буду признателен читателям за любые подсказки и соображения.
Например, как на счет R&D подразделений в крупных компаниях? Может у кого-то есть опыт или ссылки на рассказы о таком опыте?