Self Promo
16 August 2010

Куда идешь, разработчик софта?


Все компании в статье — вымышлены их создателями… и имеют самое прямое отношение к реальности.

— Не подскажите ли, по какой дороге мне идти? — спросила Алиса.
— Это зависит от того, куда Вы хотите попасть, — ответил Чеширский Кот
— Да мне, в общем-то, все равно… — начала Алиса.
— Тогда неважно, и какой дорогой идти, — заметил Кот.
— … Лишь бы придти куда-нибудь, пояснила Алиса.
— О, туда Вы непременно придете, главное идти достаточно долго и никуда не сворачивать. "
Л.Кэррол, «Алиса в стране чудес»

Быть бедным плохо уже потому, что это занимает все ваше время.
Виллем де Конинг


Вы работаете в компании, которая разрабатывает ПО, программируете. Если вас это устраивает – значит эта статья не для вас.
А возможно вам кажется, что вроде бы все хорошо, но что-то не так, не понятно – что дальше? Вы стали в разы эффективней, а задачи все те же, что и раньше, зарплаты не растут в соответствии с вышим опытом. Возникает желание что-то менять. И вы начинаете рассматривать варианты дальнейшего развития. Эти варианты сразу могут оказаться не очевидными.
В статье описаны некоторые из возможных вариантов развития программиста и приведены некоторые примеры, где какой вариант уже реализовался. Это сделано очень коротко, поскольку формат статьи не позволяет описать все в деталях.

О масштабируемости


Я выбрал мерилом развития — эффективность.
Я буду по возможности упоминать возможные пути масштабирования различных направлений, что и является возможностью принципиально увеличить свою эффективность. Высокой эффективностью я считаю то, какой сложности решаются задачи, при этом желательно использовать минимум ресурсов. Удачное применение масштабируемости неизбежно скажется на размере дохода — что есть хорошим показателем успешности.

Идем в менеджеры


Самый очевидный вариант развития — попробовать себя в роли менеджера. Становишься менеджером и сразу понимаешь, почему говорят, что самое сложное в программировании – это работа с людьми.
Например, некоему Пете не всегда легко объяснить, что если его часто спрашивают, что делает его код — это вовсе не повод считать себя популярным, а нужно задуматься о том, что возможно он является источником быдлокода.
Сначала для вас это что-то новое, но со временем вы понимаете, что вы можете использовать потенциал не только ваш личный, но и всей команды. Вы начинаете думать более масштабно, понимаете, что это вам дает новые возможности в решении задач и захотите развиваться в этом направлении, получая путем делегирования все большие возможности для решения задач.
Вы начинаете подниматься все выше и выше по карьерной лестнице, все больше и больше понимаете, как функционирует компания, доходите до CEO. А что дальше, как масштабировать? А в какой-то момент вы понимаете, что вы и сами в силах создать компанию (не сразу, но возможно), этим и занимаетесь. Так появилась компания Мрія-Софт.
Можно и без опыта топ-менеджера открыть свою компанию, если у вас есть уверенность в своих силах и знаниях. Так появилась компания Acvitas.
Хотя конечно кто-то может никогда так и не заняться открытием своей компании. Все таки здесь видимо вопрос лишь в том, может ли человек сделать волевое решение или нет, чтобы искать что-то новое, да и нужно ли оно ему?
Но если вы все таки решились на такой путь, то здесь лучше подумать о работе в компании, которая растет и развивается и у вас есть возможность принять в этом участие и получить тот самый необходимый опыт.
И ярко выраженный случай роста — это открыть и развить офис уже существующей компании у вас в стране или же принимать в этом активное участие. Так появился Киевский офис компании Materialise. Еще одним примером может послужить достаточно молодой офис компании Oberon Media в Киеве, вы можете найти отзывы о том, как это выглядело снаружи в первой половине 2009 года — вначале это не всегда красиво и комфортно. Игры в Vista и Windows 7 — это их рук дело.
Тут следует отметить, что не все топ-менеджеры готовы к созданию своей компании. Почему-то часто как только им предлагают подумать о новом направлении, они разбегаются и ищут новое место — видимо, думают, что идеи о новом бизнес-направлении возникают, когда проблемы со старым.
Другой подход – это не расти в одной компании, а наоборот часто их менять и обращать
внимание на то, как компании зарабатывают деньги. Так появился SultanHolding.
Более того, возможно не обязательно начинать с программиста, возможно даже лучше с тестировщика или инженера по поддержке. Неочевидность здесь в том, что тестировщик проверяет, удовлетворяет ли задача требованиям, инженер по поддержке понимает проблемы пользователя. Как развитие – это принимать участие в постановке задач, взаимодействие с менеджером продукта и получение опыта в этой деятельности. В перспективе самому становиться менеджером продукта. Если в двух словах, то потенциал к росту у постановщика задач обычно выше, чем у того, кто их выполняет.
Теме карьеры посвящен новый проект Стратоплан, созданный людьми, которые добились карьерных высот за довольно короткое время.

Путь менеджера не подходит


Вам либо кажется, что менеджмент не для вас, не смотря на все его преимущества, либо вы уже попробовали, что это такое и по каким-то причинам решили: «Нет, не хочу, я бы что-то попрограммировал». Плюс еще к тому же и зарплата не особо увеличилась, когда вы стали менеджером, а геморроя прибавилось. Но на месте все равно никак не сидится. Хотя если вы не пробовали себя в роли менеджера, то все таки обязательно следует попробовать — опыт просто на все золота. Вам станут понятны многие “заскоки менеджеров” и вы, вернувшись на позицию инженера, будете более эффективно общаться со своими боссами.
И собственно здесь вариант развиваться дальше технический – понять, какие задачи вы ищите, и искать их в компании или в компаниях. Говорить, говорить, говорить, что вы ищете, а не молчать. Работу в компании можно совмещать с фрилансом, хотя это не очень просто из-за недостатка времени…

Фриланс


Тут параллельно можно искать возможности по реализации разовых фриланс-проектов. Самое сложное здесь начать, потому что биржи забиты всякой ерундой, серьезные проекты в этой свалке трудно найти, а если и найдете, то у вас мало шансов выиграть тендер. Но в начале всегда тяжело, не надо этого пугаться — можно сделать пару проектов за копейки для портфолио, а с непустым портфолио жить на много легче. О фрилансе достаточно много написано на сайте Kadrof.ru.
Рано или поздно выходишь на постоянного заказчика и получаешь ту же работу программиста, но обычно с более высокой ЗП, чем в офисе, и гибким графиком.
Со временем у тебя появится большое количество заказов либо благодаря многим небольшим заказчикам либо одному большому.
А если вам интересно масштабирование, то вы можете начинать организовывать команду для реализации большого потока заказов. Но вначале здесь нужно будет подумать об оплате команды своими деньгами или деньгами заказчика.
Отдельно хочу упомянуть о передаче знаний. Если вы занимаетесь чем-то довольно редким, например гуру в программировании приложений, связанных с компьютерной безопасности, вы можете безбоязненно передавать свой опыт подчиненным. Тут не следует остерегаться перехода заказчика от вас к членам вашей команды, поскольку знать будут вас, а не членов команды. В целом если вы боитесь передавать свой опыт, то с вами им также не будут делиться. Со временем вы будете терять позиции.
Хотя на передаче знаний можно отдельно зарабатывать.

Тренинги и консультации


Если вы чувствуете, что вы владеете довольно востребованной информацией и хотите этим делиться, то вам самое время заняться консультационной и тренинговой деятельностью.
Так появился Клуб Успешных Менеджеров Программистов. — сначала был вебинар, потом книга по вебинару и т.д.
Такой вариант масштабируется в тренинговый центр и/или консалтинговое агентство.
Первый опыт консультаций и тренингов можно получить в компании, в которой вы работаете.

Свой продукт или сервис


Параллельно с работой или с фрилансом вы можете начать разрабатывать свой продукт или сервис, обычно — это интернет-сервис, другими словами — стартап, начинать свой бизнес.
Стартап можно начинать с планами, чтобы он вырос и изменил мир. Тут вам нужно начать с поиска того, что понравится очень многому числу пользователей из всего мира.
Также нужно уметь заинтересовать инвесторов, благодаря деньгам и опыту которых ваши планы могут осуществиться. Ресурсы по теме: Denny's blog , StartupPoint, Startup Crash Test и развивающийся сайт GrowthUP.
Стартап можно начинать и без наполеоновских планов, как минимум в начале. Чаще всего это будет повторение чего-то существующего, что показало, что оно работает у кого-то и приносит несравнимо больший доход по сравнению с наемной работой.
Это может быть например интернет магазин, как развитие потом разрабатывать интернет магазины. А может произойти и наоборот: разрабатывать под заказ интернет магазины, а потом создать свой. Со временем вы себе наймете разботчиков и будете заниматься в основном бизнесом. Так появился интернет-магазин мебели VSI-MEBLI.UA, некоторые детали можно прочитать здесь.
Возможна комбинация двух других вариантов: вы сильно верите в свою идею, в постоянный рост, но не ожидаете такого взрывного роста, как это часто описывают о самые успешных стартапах в мире. Так появилась компания Terrasoft. А где-то между этими вариантами находится происхождение компаний Bolero и Alvas.net — сравнительно небольшие компании, нашедшие свою нишу.
Тут немаловажную роль играет факт того, что работая программистом, можно себе довольно легко сделать “финансовую подушку” и сжечь мосты, чтобы был стимул работать. Но это уже длы кого как лучше. Кто-то сначала развивает свою компанию, а потом перестает работать “на дядю” — здесь риски минимальны, но и развитие медленное, поскольку много времени занимает постоянная работа. А кто-то сначала бросает работу, а потом начинает развивать свою компанию — здесь риски высоки, но зато вы все свое время можете посвятить созданию своей компании. Хотя в случае неудачи “на еду” программист может заработать всегда. И еще один вариант — вас может подстегнуть сокращение, что поспособствовало рождению проекта Prom.ua, вы можете прочитать как это было.
Следует отметить, что при работе фрилансом найти идею для стартапа легче, чем когда работаете в компании. В компании обычно организовано все так, что вы находитесь далеко от конечного заказчика. При работе фрилансером заказчики ближе и разнообразные. Это способствует тому, что есть возможность увидеть большее количество проблем потенциальных клиентов и решение одной из них может послужить основой стартапа.
Иногда также случается, что вы создаете проект как хобби, а он неожиданно становится успешным. Так появились проекты Snasti и Клумба.

Bounty hunting


Вариант bounty hunting может быть реализован в случае, если вы лучший в решении задач какого-то типа, а лучше в задачах, которые кроме вас вообще никто решать не умеет.
Ваша цель – позиционировать себя так, чтобы люди к вам обращаются только тогда, когда других вариантов уже нет, в этом случае вы диктуете условия и получаете в 5-10 больше, чем вначале планировал за это платить заказчик. Но нужно быть готовым решать задачи и, что немаловажно, быстро, которые действительно очень сложные. Обычно, когда узнаешь постановку такой задачи, первая реакция: «Это невозможно!». Тут больше шансов у людей, которые работают с инновациями и в той или иной мере понимают, что такое создание действительно нового. Это когда после демонстрации или объяснеения кому-то, что вы сделали, люди ахают от удивления!

Получение опыта в другой сфере


Возможно у вас возникнет желание вообще изменить свою предметную область. В этом случае вы можете подыскать компанию, исходя из того, для кого разрабатывается ПО.
Например, если вас интересует банковская сфера, вы хотите побольше узнать, пройти тренинги, касающиеся банковской сферы, у вас может возникнуть желание работать в EPAM Systems and Barclays Capital technology centre for Software Development and Support.

Полная смена сферы деятельности


Также довольно часто встречается вариант, когда часть денег откладывать на что-либо вообще не связаное со сферой IT. Например, кто-то вкладывает деньги в депозиты и создает себе таким образом довольно высокие “пенсии”. Кто-то строит рестораны. Кто-то… это уже не IT и отдельная тема, намного большая чем тема нашей статьи.

Наука


Отдельное место занимает наука.
Наука может помочь расширить спектр задач, на решение которых вы можете рассчитывать. Задача организации проекта имеет свою специфику — вам нужно общаться не только с клиентами и вашей командой, но и с учеными. И тут нужно найти то, что умеет ученый и научить этому компьютер. Так появился проект Viewdle, а здесь создателем компании описан подход.
И если вы сам ученый, то ваша задача облегчается, поскольку вы выполняете сразу две роли, а общаться с самим собой легче, чем с кем-то. Главное не попасть в болото, поскольку в науке его сейчас очень много, можете даже не заметить, как вы вообще разучились делать что либо стоящее внимание, кроме как публиковаться в псевдонаучных журналах…

Комбинирование различных путей развития


Я пытался описать основные варианты развития, но в действительности существует большое множество комбинаций, состоящих из этих вариантов.
Например, вы можете фрилансить и начать разрабатывать свой продукт, работать разработчиком в компании и проводить тренинги и консультаций в другой компании (только не забывайте об NDA), работать менеджером и строить ресторан на заработанные деньги и т.д.
Тут вы уже можете дать волю фантазии.

Причина остановки развития


Не все программисты развиваются, даже если они хотят этого.
Что же тормозит развитие программистов? Как правило программист ошибочно думает, что он делает ну если уж не 90% всего разрабатываемого им ПО, то 80% — это точно! И соответственно в следствии этого возникает пренебрежительное отношение ко всем другим видам деятельности, кроме непосредственно разработки. Возможно каждому программисту, который не хочет быть менеджером, все таки стоит им побыть хотя бы год, чтобы более адекватно понимать свою роль.
Тут следуешь добавить, что это чувство еще более выражено у программистов, которые занимаются исследованиями и принимают участие в инновациях и действительно придумывают новое. Если вы являетесь таким человек, вам как раз в пору дать себе оценку, попробовав себя в роли bounty-hunter-а. Вы либо узнаете, что вы действительно очень сильны, и тогда действительно будете решать сложные задачи за соответствующее вознаграждение, либо у вас ничего не получится и, в лучшем случае, вы будете адекватно оценивать свой вклад в общее дело, в худшем — будете пенять на то, что мир к вам несправедлив. А правильная оценка текущей ситуации – это уже большой плюс, если вы желаете развиваться.

Оговорки


Многое в статье есть результатом того, что мне довелось узнать. Но иногда, а может быть и очень часто, я мог понять людей не правильно. И если есть противоречие с информацией, полученной непосредственно от его источника, последняя считается достоверной.
Более того, создание каждой компании, самой небольшой — это отдельная, длинная и интересная история, которая не может быть описана в этой статье, поэтому описание может оказаться довольно примитивным в виду формата сообщения.
Также вы могли увидеть, что почти не было упоминаний о больших компаниях. Да, так и было задумано — о них и так уже много написано и я не думаю, что у меня бы получилось добавить что-то новое. Да и каким-то нереальным может казаться создание таких компаний, поэтому было выбрано более “приземленное” описание.

Заключение


В итоге вырисовывается общая картина: если вы хотите развиваться, увеличивать сложность решаемых вами задач и вы технический специалист, то вам в любом случае нужно искать сложные задачи, общаться с людьми, узнавать новые предметные области, что является абсолютно не техническими навыками. Некоторые мысли об этом можно найти в статье “Про нетворкинг”.
Здесь хочется повториться, самое сложно в программировании и в инженерии ПО — это люди.

+129
2.2k 155
Comments 95
Top of the day