Программист-фанатик

Фаулер Чед

Часть V

Сохраняя конкурентные преимущества

 

 

Помнишь Тиффани, блиставшую в 1980-х? Тогда она занимала верхние строчки хит-парадов, а ее песни постоянно крутили по радио. Она пользовалась колоссальным успехом, за короткое время став известной личностью.

Но когда ты в последний раз про нее слышал (если вообще слышал)? Почему-то мне кажется, что ты не сможешь дать ответа на этот вопрос. Лично я не смог.

У Тиффани было то, что требовалось для успеха в 80-е, — по крайней мере на короткое время. Миновали 90-е, и Тиффани вышла из моды. Даже если она и пыталась удержаться наверху, то не смогла поменяться достаточно быстро, чтобы удержать любовь — или хотя бы внимание — своих фанатов. Как только вектор пристрастий публики перекинулся с подросткового рока на грандж, Тиффани моментально устарела.

С твоей карьерой может случиться то же самое. Описываемый в этой книге процесс представляет собой цикл, который следует повторять до выхода на пенсию. Исследовать, инвестировать, выполнить, прорекламировать, повторить. Застряв надолго на любой итерации этого цикла, ты рискуешь моментально устареть.

Этот момент может подкрасться к тебе неожиданно, если его явно не отслеживать. И если он застает тебя врасплох, значит, уже слишком поздно. Скорее всего, Тиффани не имела представления, каким популярным со временем станет грандж. Она изо всех сил старалась остаться подростком, поп-звездой тинейджеров, и к моменту, когда первые строчки хит-парадов начали занимать композиции в стиле грандж, она необратимо вышла из моды.

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

 

Совет 44

Ты уже устарел

Многих из нас сфера информационных технологий привлекает тем, что там постоянно появляется что-то новое. Захватывающая и свежая рабочая атмосфера. Всегда есть возможность научиться чему-то новому. И в то же время приводящая в уныние ситуация, когда наши вложения в связанные с определенной технологией знания обесцениваются быстрее, чем твой «шевроле» последней модели. Сегодня это новый популярный предмет, а завтра — устаревшее барахло с ограниченным сроком годности.

Твои блестящие новые навыки уже устарели.

Гари Хэмел в книге «Во главе революции: как добиться успеха в турбулентные времена» (Leading the Revolution: How to Thrive in Turbulent Times by Making Innovation a Way of Life) рассказывает, что как только лидеры начинают почивать на лаврах, самоуспокоенность приводит к появлению «белых пятен». Чем более успешным является твой бизнес, тем выше вероятность привыкания к определенной модели его ведения, что делает его более уязвимым перед новичками, приходящими с радикальной идеей — пусть даже глупой. Ведь эта идея вполне может стать причиной того, что твоя успешная модель бизнеса начнет восприниматься как старый вылинявший свитер в клубе. Аналогично обстоят дела и с технологиями. Тот, кто в то или иное время достиг мастерства в одной из господствующих технологий, например в J2EE или .NET, может чувствовать себя уверенно. Он находится в выигрышном положении, не так ли? Все посвященные трудоустройству сайты и газеты подтверждают правильность выбранного пути.

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

Несмотря на сказанное, можно вспомнить, что люди десятилетиями пророчили смерть языку COBOL. Каждый новый участник рынка получает звание «COBOL XXI века» или что-то в этом роде. В настоящее время так называют язык Java. При всей моей нелюбви к языку COBOL я считаю, что назвать Java «COBOL XXI века», это, безусловно, комплимент. Как бы многие из нас ни мечтали о его смерти, COBOL никуда не делся и продолжает использоваться очень долгое время. Программисты работают с этим языком на протяжении всей своей карьеры. А в нашей отрасли, напоминающей американские горки, это уже о чем-то говорит. Но в условиях современной экономической ситуации сложно утверждать, возможны ли другие аналогичные инвестиции.

История языка COBOL — исключение из правил. Немного найдется платформ, предоставляющих столь прочную базу для трудоустройства. Я вовсе не призываю тебя отказаться от изучения популярных технологий. Это безответственный подход. Просто хотелось бы обратить внимание на тот факт, что чем более популярной технологией ты владеешь, тем выше для тебя риск остаться в каменном веке этой технологии.

Мы все слышали про закон Мура, согласно которому мощность компьютеров должна удваиваться каждые восемнадцать месяцев. Количество месяцев может слегка варьироваться, но легко убедиться в том, что технология движется вперед примерно с той же скоростью, что и в 1965 году, когда основатель Intel Гордон Мур постулировал свой закон. А вместе с достижениями в области аппаратных мощностей появляются новые возможности в области программного обеспечения.

Вычислительные мощности удваиваются. За столь стремительным технологическим прогрессом обычному человеку угнаться сложно. Даже при наличии актуальных знаний, если ты не успеваешь освоить Новую Большую Область Деятельности, ты опоздал. Ты можешь быть впереди текущей волны, но позади следующей. В подобной среде крайне важным становится выбор момента.

Ты должен осознать, что, даже находясь на передовом крае современных тенденций, ты плетешься в хвосте более новых веяний. Начинай заранее думать о том, что предстоит изучить. Какие недоступные в данный момент возможности появятся через два года? Как быть, если дисковое пространство станет настолько дешевым, что его можно будет получать практически бесплатно? Что, если процессоры начнут работать в два раза быстрее? Что, если нам уже не придется заботиться об оптимизации? Как весь этот прогресс повлияет на популярность конкретных технологий?

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

Разница между слепцом и провидцем в том, что второй заглядывает вперед и четко представляет себе направление роста.

Действуй!

1. Каждую неделю выделяй время на знакомство с передовыми технологиями. Тебе потребуется по меньшей мере два часа на то, чтобы узнать, какие новые веяния появились в последнее время, и начать выработку нужных навыков. Создавай простые приложения. Реализуй сложные фрагменты текущих проектов на основе новейшей технологии, чтобы понять, чем она отличается и какие новые возможности предлагает. Составь расписание для подобных упражнений и старайся его придерживаться.

 

Совет 45

Ты уже безработный

Работы, на которую тебя наняли, больше не существует. Возможно, ты все еще получаешь зарплату. Может быть, ты способствуешь росту прибыльности предприятия. Допускаю даже, что ты приводишь в полный восторг своего работодателя. Но свою работу ты уже потерял.

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

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

Ты и твоя профессия — не одно и то же.

Собственно, все дело в том, что в наше время (если только другие времена вообще когда-либо бывали) небезопасно слишком сильно отождествлять себя с работой, на которую тебя наняли. В условиях постоянно меняющейся обстановки и обстоятельств цепляющийся за профессию человек создает опасный диссонанс, влияющий на качество его работы. Часто возникают ситуации, когда, к примеру, человек, желающий быть программистом, при необходимости выполняет обязанности руководителя проекта. И делает это плохо.

До потери работы у тебя могли быть планы. Ты мечтал о своем продвижение по должности. Ты мог работать проектировщиком, и готов выполнять обязанности архитектора, как только появится такая возможность. Ты представлял себе весь путь в управляющей цепочке от архитектора до аналитика и руководителя группы.

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

Действуй!

Если ты программист, попробуй на пару дней примерить на себя роль тестировщика или руководителя проекта. Способен ли ты в любой момент начать работать по специальностям, о которых раньше никогда не задумывался? Составь список и попробуй примерить на себя каждую из ролей. Возможно, это даже не повлияет на результат твоей работы, но ты посмотришь на нее другими глазами.

 

Совет 46

Дорога в никуда

Одной из самых больших проблем Америки является общество, ориентированное на достижение цели. Это люди, всегда ставящие во главу угла результат, причем не важно, чем является процесс, познанием, построением карьеры или управлением автомобилем. Мы так сконцентрированы на результате, что забываем оглянуться вокруг.

Но если вдуматься, эта концентрация на результате является логической противоположностью того, на что нам приходится тратить время. Мы практически все время что-то делаем, и только на короткие мгновения действительно достигаем целей. К примеру, когда ты создаешь программу, все время уходит на процесс разработки, а не на порождаемый этим процессом момент появления готовой программы.

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

А если так, то есть если именно сама работа является сутью твоей деятельности, то ты уже прибыл к месту своего назначения. Целенаправленное, ориентированное на конечный результат мышление, которое мы обычно практикуем, ведет только от одной цели к другой. Оно не имеет логического конца. Но большинство из нас не в состоянии понять, что концом в данном случае является сам путь к цели.

В примере с разработкой программного обеспечения это будет момент передачи заказчику готового кода. Ему требуется приложение, и ты концентрируешься на том, чтобы его создать. Но при этом приложение никогда не будет полностью «готовым». Одна версия тянет за собой другую. Слишком сильная концентрация на конечном продукте отвлекает нас от реальной деятельности: непрекращающейся работы над новой программой.

Концентрируйся на том, что делаешь, а не на том, что должно быть сделано.

Нацелившись на результат, ты забываешь о качестве процесса. А некачественный рабочий процесс порождает некачественный продукт, который соответствует минимальным требованиям, но непригляден внутренне. Ты думаешь о краткосрочной конечной цели, а не о неизбежной доработке продукта в будущем.

Работая спустя рукава, ты создаешь некачественный продукт, но при этом существует и обратная зависимость. Настроившись на то, чтобы побыстрее достигнуть результата, ты начинаешь корректировать рабочий процесс. В итоге в действие вступает теория разбитых окон. Получается замкнутый круг.

Поэтому перестань постоянно спрашивать: «Мы уже закончили?», надеясь услышать в ответ «Да». Важен не конечный пункт, а дорога к нему.

Действуй!

1. Тхить Нят Хань в книге «Чудо осознанности» (The Miracle of Mindfulness) дает совет: в следующий раз, когда тебе нужно будет помыть посуду, делай это не для того, чтобы она стала чистой. Попытайся получить удовольствие от самого процесса. Не думай о том, как ты закончишь работу. Сосредоточься на самом процессе.

Мытье посуды является рутинным делом, от которого практически никто не получает удовольствия. Разработчики программного обеспечения в течение рабочего дня сталкиваются с множеством не менее нудных задач, таких как регистрация рабочего времени или отчет об издержках. В следующий раз, когда тебе придется заняться подобными вещами, попробуй сконцентрироваться на процессе выполнения, преодолев горячее желание быстрее с ними покончить.

 

Совет 47

Составь план

Если твоя работа в основном связана с поддержкой, легко погрязнуть в рутине и надолго зависнуть в этом состоянии. У разработчиков программного обеспечения есть подобный опыт. Занимаясь поддержкой библиотеки или приложения, которым пользуются другие разработчики, ты обречен на вечное отлавливание ошибок (или того хуже), если, конечно, у тебя нет других планов на собственное будущее. Отвечая на запросы пользователей, ты можешь внести какое-либо улучшение, но, по большому счету, изменения в код вносятся крайне неохотно, ведь считается, что работа над программой уже завершена.

Но пока приложением пользуются, работу над ним считать законченной нельзя. Аналогичным образом можно выразиться о тебе и о твоей карьере. Если ты не собираешься уходить из отрасли, без плана развития не обойтись. Если бы в Microsoft в свое время решили, что Windows 3.1 полностью готова, мы бы до сих пор работали на Маках. Если бы разработчики сервера Apache сочли свой сервер законченным после выхода версии 1.0, вряд ли они господствовали бы на современном рынке.

Персональный план развития позволит тебе определить, двигаешься ли ты куда-нибудь или топчешься на месте. Когда ты день за днем приходишь в один и тот же офис, работая над практически одинаковыми вещами, обстановка вокруг тебя не меняется. Нужны видимые издалека маркеры, которые дадут тебе понять, что ты не стоишь на месте. Роль таких маркеров могут играть «подсистемы» твоего продукта.

Не продумав все как следует и не составив план, нельзя заглянуть за горизонт. В частях II и III мы говорили о том, насколько важно осознанно подходить к выбору карьеры и инвестициям в собственные профессиональные качества. Казалось бы, я веду речь об одноразовом выборе области инвестиций, но на самом деле любой вариант должен стать частью общей картины. Для лучшего понимания контекста представим каждый набор навыков или умений как функцию приложения. Согласитесь, что приложение с единственной функцией — это смешно.

Более того, приложение с набором не связанных друг с другом функций способно только запутать пользователей. Это записная книжка или приложение для обмена мгновенными сообщениями? Игра или браузер? Составленный заранее план не только поможет придерживаться выбранного курса, но и даст более общее представление о том, что ты можешь предложить. Станет понятно, что ни одна характеристика не должна стоять особняком. Каждая следующая инвестиция — это часть большого целого. Некоторые вещи потрясающе смотрятся вместе. Комбинации других вещей заставляют потенциального работодателя задуматься. Он системный администратор или специалист по компьютерной графике? Она занимается архитектурой приложений или эксперт по автоматизации контроля качества?

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

Действуй!

1. Перед тем как строить планы на будущее, стоит описать свое текущее положение. Составь хронологию своей карьеры. Покажи, с чего ты начал, какие навыки и рабочие обязанности требовались на каждом этапе. Обрати внимание, когда происходили постепенные улучшения, а когда совершался большой скачок вперед. Определи промежуток времени, за который произошло твое главное повышение. Используй эту информацию в качестве базиса и строй дальнейшую карьеру. Четкая картина пройденного пути позволяет ставить более реалистичные цели. Постоянно обновляй план. Это замечательный способ продемонстрировать собственные достижения по мере движения к новым намеченным целям.

 

Совет 48

Отслеживай состояние рынка

Глупо потратить деньги на акции, цена которых постоянно меняется, и забыть об этом. Даже если ты тщательно исследовал все возможности и осознанно выбрал область для инвестиций, не забывай о нестабильности рынка. Когда дело доходит до финансовых вложений, нельзя действовать по принципу «выстрелил и забыл». Даже если сегодня акции растут, завтра их котировка может резко измениться.

Кроме того, ты можешь упустить хорошую возможность. Представь, что ты нашел беспроигрышный вариант, дающий 10 % годового дохода. Это выглядит здорово, но только при условии, что доходность остального рынка не совершит скачок. Даже если рабочая лошадка, на которую ты поставил сегодня, не сойдет с дистанции, ее возможности могут оказаться совсем не впечатляющими по сравнению с открывающимися перспективами.

Не обращать внимание на меняющиеся условия рынка, значит потерять деньги, которые можно заработать.

То же самое касается и инвестиций в знания. Сейчас Java — оптимальный вариант. А что должно случиться, чтобы ситуация изменилась? И как понять, произойдут ли подобные изменения?

Что делать, если Sun Microsystems неожиданно пойдет под откос? В последние годы лидирующее положение этого монстра пошатнулось, а Java не является открытым стандартом. Хотя сейчас Sun ратует за концепцию открытого кода. В любой момент Sun может превратить собственные язык и виртуальную машину в инструмент получения прибыли. Она может добавить в Java несовместимые изменения и вызвать панику во всей отрасли.

С головой погрузившись в код, ты пропустишь нужный сигнал, и момент будет упущен. Так, казалось бы, важный навык может утратить свою первоначальную ценность на рынке труда. Конечно, это неправдоподобная ситуация, но полностью исключить ее нельзя.

Более вероятно, что, будучи полностью довольным своей работой и своими текущими навыками, ты можешь проморгать приход Следующей Великой Вещи. Десять лет назад ты бы удивился, если бы тебе рассказали, какое место займут объектно-ориентированные языки с механизмом сборки мусора. Но ведь, скорее всего, ты видел определенные знаки. Кто знает, с какой Следующей Великой Вещью мы столкнемся через десять лет?

Наблюдай за самыми крутыми гиками.

Держи глаза и уши открытыми. Следи за новостями отрасли как с позиций бизнеса, так и с чисто технической стороны, пытаясь найти разработки, могущие привести к далеко идущим последствиям. Как говорит Тим О'Рейли из O’Reilly and Associates, присматривайся к самым технически продвинутым работникам. Это те суперэнтузиасты, которые всегда находятся на самых передовых рубежах, по крайней мере в сферах, касающихся их увлечений. Утверждение Тима, справедливость которого мне довелось проверить на практике, состоит в том, что, обнаружив таких людей и понаблюдав за их увлечениями, ты сможешь предугадать, с чем нам придется иметь дело через год или два. Непонятно почему, но это действительно так.

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

Действуй!

1. Попробуй в следующем году стать самым крутым гиком. Или по крайней мере подружись с таким человеком.

 

Совет 49

Этот толстяк в зеркале

К сожалению, у меня есть лишний вес. Это моя давняя проблема. Но когда я жил в Индии, мне удалось сильно похудеть. Отчасти благодаря диете. Отчасти благодаря физическим нагрузкам. Но в основном из-за болезни. После возвращения в Соединенные Штаты я начал набирать вес. Я так расстроился, что записался в тренажерный зал, и вес начал возвращаться в норму.

Я прошел несколько таких циклов. Самое интересное — я не мог отследить моменты набора и сброса веса. Я узнавал об этом, только когда мне кто-то говорил об этом или одежда начинала сидеть по-другому. Моя жена видит меня каждый день, поэтому она тоже не замечала происходящего, а посторонние люди предпочитают не затрагивать темы лишнего веса. А вот в Индии они не стесняются об этом говорить.

Я не могу следить за колебаниями веса, так как вижу себя слишком часто. Когда тебе постоянно что-то показывают, заметить можно только очень быстрые изменения. Если уставиться на цветочный бутон, сколько времени пройдет, прежде чем ты заметишь хоть какое-то изменение? А вот если уйти и вернуться через пару дней, разница сразу бросится в глаза.

С твоей карьерой дела обстоят точно так же. На самом деле ты ее не замечаешь. И это проблема. Можно каждый день смотреться в воображаемое зеркало и не замечать изменений. Кажется, что ты приспособлен к ситуации, как и раньше. Что ты столь же конкурентоспособен, как и раньше. Что твои навыки столько же актуальны, как и раньше.

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

В случае колебания веса у нас есть некая шкала, которая позволяет легко оценить уменьшение веса (или увеличение, как в моем случае). Но шкалы для измерения конкурентоспособности или навыков разработчика программного обеспечения не существует. Как было бы легко на ее основе автоматически корректировать размер зарплат. Но ничего подобного не существует, нам придется разрабатывать собственные критерии.

Проще всего выбрать доверенное лицо и поинтересоваться. Наставник или близкий коллега видит тебя со стороны и может дать более объективную оценку твоего положения. Ты можешь обсудить свои способности как разработчика программного обеспечения, руководителя проекта, собеседника, члена группы — словом, рассмотреть любую грань из того набора, который делает тебя тем, кто ты есть. В General Electric практикуется метод 360-градусной оценки, формализующий данную идею и заставляющий работников интересоваться своими показателями у коллег, руководителей и внутренних заказчиков. Несмотря на двусмысленность его названия, это замечательный метод, позволяющий оценить свои рабочие качества с разных сторон.

Разработчик, оцени самого себя!

Проходя через подобную процедуру (самостоятельно или с чьей-либо помощью), ты узнаешь крайне важную информацию — в каких областях ты не разбираешься. Ты вовсе не обязан немедленно устранять все пробелы. Достаточно помнить об их существовании. Без четкого проговаривания этих аспектов ты будешь закрывать глаза на свои недостатки. А именно в этом случае можно легко попасть в неблагоприятную ситуацию, и это станет для тебя полнейшим сюрпризом. Если неприятность должна случиться, лучше заранее знать о ее приближении.

Впрочем, даже при наличии волшебной шкалы всесторонней самооценки от нее не было бы никакой выгоды, если бы ты ей не пользовался. Запланируй контрольные мероприятия. Ты не отразишься в зеркале, если не назначишь для этого конкретное время. Фраза «не забудь спросить, что о тебе думают» не обладает достаточным посылом. Используй программу-календарь с напоминалкой и назначай самому себе встречу для самооценки. Первым делом определи измерительную систему, а затем вставь ее в расписание. Если подобная процедура не интегрирована в твою рабочую жизнь, ты просто не будешь ее выполнять.

Если в фирме, где ты работаешь, подобные вещи уже практикуются, не отбрасывай их как странную причуду отдела кадров. Воспринимай их серьезно и извлекай выгоду. Они могут быть некорректно реализованы, но в их основе лежит правильная мотивация.

Наконец, выработав систему оценок и определив расписание, приступай к фиксации результатов. Держи записи со своими оценками под рукой. Часто просматривай их и анализируй. Связав процесс самооценки с физическим артефактом, ты сделаешь его более основательным. Факт того, что ты устарел, не должен стать для тебя таким же неожиданным, как обнаружение ставших слишком тесными штанов.

Действуй!

1. Воспользуйся методом 360-градусной оценки:

♦ Составь список заслуживающих доверие лиц, мнением которых ты можешь поинтересоваться, не испытывая дискомфорта. В список должны попасть представители разных групп: коллеги, заказчики, руководители (и подчиненные, если они у тебя есть).

♦ Перечисли десять характеристик, которые являются мерами твоего профессионализма (с твоей точки зрения).

♦ Преврати список в опросный лист. Попроси участников дать тебе оценку в терминах каждой из характеристик. Включи туда вопрос «О чем еще мне следовало спросить?»

♦ Раздай опросные листы людям, список которых ты составил на первом этапе. Попроси дать честные отзывы, тебе не нужна приукрашенная действительность.

Внимательно изучи результаты и составь список действий, которые ты собираешься предпринять. Если ты задал корректные вопросы правильным людям, то получишь итог, подразумевающий конкретные меры. Поделись результатами опроса с теми, кто принимал в нем участие, — не ответами, а изменениями, которые ты запланировал. Не забудь поблагодарить всех, кто тебе помогал.

Время от времени повторяй эту процедуру.

2. Начни делать записи. Это может быть как блог, о котором мы говорили в совете № 39, так и личный дневник. Записывай, над чем ты работаешь, что ты изучаешь, что думаешь об отрасли в целом.

Через некоторое время перечитай старые записи. Ты по-прежнему придерживаешься такого мнения? Или, может быть, теперь это выглядит наивно? Насколько ты изменился?

 

Совет 50

Ловушка для обезьян

Роберт Пирсиг в книге «Дзен и искусство ухода за мотоциклом» (Zen and the Art of Motorcycle Maintenance: An Inquiry into Values) рассказывает поучительную историю о том, как в Южной Индии ловят обезьян. Не знаю, правда ли это, но из этой истории можно извлечь полезный урок.

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

Обезьяны любят поесть. Собственно, именно это качество превращает их во вредителей. Они запрыгивают в машины или бросаются в толпу людей, чтобы вырвать еду прямо из твоих рук. В Южной Индии каждый про это знает. (Поверь, когда ты спокойно стоишь в парке, а на тебя внезапно нападает макака, чтобы что-то у тебя отобрать, это крайне нервирует.)

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

Разумеется, ничто не мешало ей просто бросить рис и отправиться восвояси.

Но обезьяны ценят еду настолько, что не могут заставить себя ее выбросить. Они будут цепляться за этот рис, пока не вытащат его наружу или не умрут. Смерть, как правило, наступает раньше.

Пирсиг называет это ригидностью ценностей. Данное состояние наступает, когда ты настолько уверен в ценности какой-либо вещи, что не в состоянии подвергнуть ее сомнению. Обезьяны настолько ценили рис, что даже перед необходимостью выбора между рисом, пленом и смертью не могли понять, что в этот момент правильнее всего будет его выбросить. Обезьяны в этой истории выглядят до крайности глупо, но у большинства из нас есть собственные эквиваленты рису.

Если тебя спросят, хорошо ли помогать голодающим детям в развивающихся странах, ты, скорее всего, не задумываясь, ответишь утвердительно. Если кто-то попытается поспорить с тобой по этому вопросу, ты решишь, что он сумасшедший. Это и есть пример ригидности ценностей. Ты веришь в необходимость помощи детям так сильно, что не можешь представить, как в это можно не верить. Разумеется, не все ценности, в которые мы столь твердо верим, являются плохими. Для большинства людей вера в Бога (или атеизм) также представляет собой набор непоколебимых личных убеждений и ценностей.

Но далеко не все ценности, в которые мы верим, хорошие. Бывает и такое, что вещи, допустимые в одних обстоятельствах, оказываются совершенно недопустимыми в других.

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

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

Ригидные ценности делают тебя уязвимым.

Но может случиться и так, что выбранная тобой технология устареет, внезапно оставив тебя без твердой опоры. Подобно лягушке в медленно нагревающемся горшке с водой, ты вдруг можешь обнаружить себя в кипятке. В середине 1990-х, когда дело касалось служб печати и файлов в масштабе предприятия, многие из нас готовы были молиться на платформу NetWare от Novell. Novell предвосхитила время со своей службой каталогов, и тот из нас, кто «был в курсе», доходил в критике конкурирующих технологий до откровенных дерзостей. Продукция Novell занимала бо́льшую часть рынка, и было сложно представить, что ситуация может измениться.

Ничто не заставляло думать, что Novell проигрывает Microsoft. Компания Microsoft не выпустила волшебную реализацию Active Directory, которая заставила бы нас завопить: «Вот это да! К черту NetWare!» Но передовые технологии от NetWare постепенно стали устаревать. Под большинством NetWare-администраторов вода закипела еще до того, как они поняли, что котел нагревается.

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

Действуй!

1.  Найди ловушку для обезьян. Назови свои жесткие критерии. Какие ценности, о которых ты даже не задумываешься, управляют твоими ежедневными действиями?

Нарисуй таблицу с двумя столбцами: «карьера» и «технология». В каждом столбце перечисли ценности, которые ты считаешь непоколебимо верными. К примеру, в столбце «карьера» укажи характеристики, которые всегда считал своими сильными сторонами. Перечисли и то, что считаешь своими слабостями. А как насчет карьерных устремлений? («Я хочу стать генеральным директором!») Укажи правильные пути достижения цели.

В столбце «технология» перечисли, что ты считаешь самым ценным в технологиях, в которые решил вложиться. Какие наиболее важные атрибуты технологии следует учитывать в процессе выбора? Каким образом ты создаешь масштабируемые системы? Какой видишь наиболее продуктивную среду для разработки программного обеспечения? Какие платформы лучше, а какие хуже всего в общем случае?

Завершив работу над списком, начни его перечитывать и для каждого пункта мысленно формируй противоположное утверждение. Ты допускаешь, что противоположный взгляд на вещи тоже может быть верным? Попробуй честно оценить каждую из записанных тобой характеристик.

Это список твоих уязвимостей.

2.  Знай своего врага. Выбери технологию, которую ты больше всего ненавидишь, и сделай на ее основе один проект. Разработчики имеют склонность разбиваться на конкурирующие лагери. Приверженцы .NET ненавидят фанатов J2EE, а те, в свою очередь, платят им той же монетой. Любители операционной системы UNIX ненавидят Windows, а любители Windows терпеть не могут UNIX.

Придумай простой проект и попробуй создать прекрасное приложение в рамках ненавидимой тобой технологии. Если ты пишешь на языке Java, покажи этим фанатам .NET, как настоящий разработчик использует их платформу! В лучшем случае ты поймешь, что столь ненавидимая тобой технология на самом деле не так уж плоха и на ее основе можно создавать приличный код. Кроме того, у тебя появится (разумеется, пока не развитый) новый навык, из которого в будущем ты, возможно, сумеешь извлечь выгоду. В худшем случае ты выполнишь практическое упражнение, получив дополнительную базу для своих аргументов.

 

Совет 51

Избегай каскадного планирования карьеры

В начале этого тысячелетия один небольшой протест сильно изменил всю индустрию разработки программного обеспечения. Группа экспертов-разработчиков в какой-то момент поняла, что существующие методы ведения проектов могут привести как к успеху, так и к неудаче. В промышленных условиях, где большинство проектов оканчивается неудачей, они, как им казалось, нашли способ, ведущий к успеху. Эта группа называла себя альянсом специалистов по быстрой разработке ПО (Agile Alliance).

В индустрии в те времена считалось, что единственным способом разработки проектов является спуск сверху вниз по цепочке серьезно распланированных, жестко регламентированных процессов. Аналитики формировали список требований, передавали документацию архитекторам, которые создавали архитектуру и передавали ее дизайнерам, которые, в свою очередь, работали над детализированным дизайном. Затем все это отдавалось разработчикам, перед которыми стояла задача написать код дизайна на каком-нибудь языке программирования. Наконец, спустя месяцы, а иногда и годы усилий код собирался и отдавался группе тестировщиков, которые утверждали его развертывание.

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

В итоге члены альянса специалистов по быстрой разработке поняли, что следование жестко регламентированному процессу хотя и порождает хорошо протестированное и тщательно документированное программное обеспечение, но совсем не отвечает пожеланиям пользователей. Их бунт выразился в создании гибких методик. Это были процессы разработки приложений, в которые легко вносились изменения. На планирование и дизайн отводилось меньше времени. Если программы гибкие, значит, их модификация может обходиться дешево. Гибкие методики рассматривают изменения как неотъемлемую часть процесса разработки и упрощаются, чтобы сделать этот процесс по возможности дешевым и простым.

Сейчас все это звучит тривиально. Но изначально гибкие процессы стали источником конфликтов и дискуссий. В теории идея детального планирования и жесткости выглядела без сомнений верной. Просто на практике она работала далеко не всегда.

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

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

Я успешно продвигался к должности вице-президента корпорации и директора по информационным технологиям. От зеленого программиста я быстро шагнул к архитектору программного обеспечения, руководителю и директору и мог легко представить, чем завершится моя цепочка. Но при всех моих успехах я начал ощущать, что занимаюсь не тем, что мне нравится. Более того, чем успешнее я становился, тем меньше получал удовольствия от работы.

Я делал для себя ровно то же самое, что строго регламентированные процессы делают для заказчиков. Я отлично справлялся с созданием для себя карьеры, которая была мне не нужна.

Сначала я не мог осознать, что подобная проблема решается просто. Достаточно поменять свою карьеру. Это может означать что угодно. Для меня это было возвращение к серьезным технологиям, которые изначально так восхищали меня в этой отрасли. Для моих знакомых это был переход от системного администрирования к разработке программного обеспечения, от работы, не связанной с компьютерами, — к программированию или вообще уход из профессии и посвящение себя любимому делу.

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

Карьерные изменения — это не строительство небоскреба, они не потребуют выкинуть на помойку весь наработанный ранее опыт. В настоящий момент я целыми днями пишу программы на Ruby, но мой опыт руководителя, занимавшегося переводом операций в офшоры, остается актуальным и помогает в моих трудах. Работодатели и клиенты это понимают и используют данное преимущество.

Важно понимать, что подобные изменения не только возможны, но и необходимы. Как разработчик ты никогда не позволишь вовлечь себя в ненужный заказчику проект. Гибкие методики просто не дадут тебе этого сделать. О твоей карьере можно сказать то же самое. Ставь большие цели, но по пути постоянно вноси коррективы. Учись на собственном опыте и меняй цели при необходимости. В конечном счете нам всем нужен довольный заказчик (а в деле планирования карьеры ты сам являешься собственным заказчиком), а не выполнение требований.

 

Совет 52

Лучше, чем вчера

Исправить ошибку легко (в общем случае). Что-то идет не так? Тебе об этом кто-то сообщил? Если ты можешь воспроизвести ошибку, то для исправления достаточно устранить вызывающие ее факторы и удостовериться, что проблем больше не возникнет. Если бы все трудности исчезали так просто!

Однако подобная ясность сопровождает далеко не каждую проблему или трудную ситуацию. Большей частью серьезные проблемы выглядят как огромный запутанный клубок потенциальных неисправностей. Это утверждение применимо к разработке программного обеспечения, управлению карьерным ростом и даже образу жизни и здоровью.

Сложная система с кучей ошибок нуждается в переделке. Твоя карьера тормозится с каждой минутой. Твой сидячий образ жизни, намертво связанный с компьютером, неуклонно превращает твое тело в кашу. Все эти проблемы намного серьезнее и сложнее, чтобы их можно было просто устранить как обычную ошибку. Все они запутанны, сложно измеримы и состоят из множества мелких решений, часть из которых работать не будет!

Трудность решения сложных задач легко лишает нас мотивации и заставляет обратить внимание на те проблемы, которые проще анализировать и быстрее решать. А сложное дело мы откладываем на потом. Это откладывание вызывает у нас чувство вины, которое нас расстраивает, что, в свою очередь, приводит к еще большим проволочкам.

В теме 49 я признался, что всю свою жизнь боролся с лишним весом. По себе знаю, что когда твоя форма далека от идеальной, призыв «просто приди в форму» сложно даже принять, а не то что ему последовать. И чтобы еще больше все усложнить, попытки предпринять какие-то усилия, направленные на улучшение своей формы, не дадут результатов ни сразу, ни даже через неделю. Ты можешь целый день работать над тем, чтобы прийти в форму, а через неделю не обнаружить ни одного следствия потраченных усилий.

Подобные демотиваторы лишают тебя воли к борьбе еще до ее начала.

С недавнего времени я вплотную занялся своей проблемой. Почти каждый день посещаю спортивный зал, стал следить за своим питанием, словом, делаю все, что только можно. Но даже при такой серьезной программе увидеть результаты достаточно сложно. Однажды вечером, когда меня опять захлестнуло ощущение отсутствия мотивации, мой друг Эрик Кастнер опубликовал в социальной сети Twitter следующее сообщение:

Помоги привести в форму мою $%! л .. спрашивай меня каждый день: «Сегодня было лучше, чем вчера?» (питание/упражнения) — сегодня: ДА!

Прочитав это сообщение, я понял, что нашел ключ к проблеме лишнего веса. Впрочем, я уже знал эту методику, ведь в жизни мне пришлось успешно решить немало серьезных проблем. Секрет в попытках сделать так, чтобы задача, над которой ты работаешь, сегодня стала лучше, чем вчера. Вот и все. Это легко. И как утверждает Эрик, энтузиазм легко сохранить, имея дело с реальными, осязаемыми шагами по направлению к далекой цели.

Недавно мне довелось поработать с одним из наиболее сложных и безобразных Ruby-приложений, когда-либо попадавшихся мне на глаза. Моя компания унаследовала этот консалтинговый проект от другого разработчика. Нужно было внедрить несколько ключевых подсистем и избавиться от огромного количества ошибок и проблем с производительностью. При попытке внести эти изменения мы обнаружили, что код представляет собой жуткую кашу. Нанявшая нас фирма была ограничена во времени и финансах, поэтому такой роскоши, как возможность написать все заново «с нуля», мы были лишены, хотя этот код проще всего было выкинуть в мусорную корзину.

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

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

Впрочем, даже постепенные изменения не позволяют увидеть эффект в целом проекте. Попытки добиться большего уважения среди коллег или улучшить состояние собственного здоровья, несмотря на отдельные каждодневные улучшения, не приводят к непосредственно осязаемым результатам. Именно поэтому, как мы уже видели ранее, такие большие цели лишают нас мотивации. А значит, в случае больших, сложно достижимых целей, к которым ты стремишься, важно думать не о том, как ты каждый день немного продвигаешься вперед, а о том, как ты каждый день улучшаешь качество работы. К примеру, я не могу гарантировать, что сегодня буду весить меньше, чем вчера, но в состоянии контролировать количество усилий, направленное на достижение поставленной цели. И сделав сегодня больше, чем вчера, я с полным правом могу гордиться своим достижением. Такое последовательное измеримое улучшение качества работы выводит меня из цикла вины и постоянных откладываний, который, в конечном счете, мешает большинству из нас в достижении Больших Важных Целей.

Ты должен радоваться даже небольшим «лучше». Написать сегодня на один тест больше, чем вчера, достаточно, чтобы оказаться ближе к цели «лучше разобраться в модульном тестировании». Если ты начинаешь «с нуля», один дополнительный тест в день будет вполне устойчивым прогрессом. И к моменту, когда ты уже не сможешь показывать лучшие, чем вчера, результаты, окажется, что ты уже «разобрался в модульном тестировании» на достаточном уровне и увеличивать количество тестов дальше просто не нужно. При этом если начиная «с нуля», ты в рамках собственных планов усовершенствования хочешь в первый же день написать пятьдесят тестов, то в этот день ты, скорее всего, тяжело поработаешь, а вот второго дня уже не случится. Поэтому улучшения должны быть небольшими и постепенными, но ежедневными. Кроме всего прочего, небольшие улучшения снижают цену неудачи. Пропущенный день всего лишь сдвигает точку отсчета на завтра.

Эта простая аксиома хороша своей применимостью как к тактическим целям, таким как завершение проекта или доработка фрагмента кода, так и к возможным высокоуровневым целям. Насколько больше усилий к построению своей карьеры ты приложил сегодня? Завяжи новое знакомство, опубликуй исправление для проекта с открытым исходным кодом, напиши вдумчивый пост в своем блоге. Увеличь на единицу по сравнению со вчерашним числом количество пользователей, которым ты сегодня помог на техническом форуме, связанном с твоей областью знаний. Каждый день работая над самоусовершенствованием чуть лучше, чем вчера, ты почувствуешь, как цель сделать невероятную карьеру, изначально напоминающая безбрежный океан, становится более осязаемой.

Действуй!

1. Составь список сложных или труднодостижимых целей; они могут быть как личными, так и профессиональными. Если список получится длинным, ничего страшного. Подумай над каждым пунктом, что ты можешь сделать, чтобы уже сегодня стать лучше, чем вчера. На следующий день снова перечитай список. Был ли вчерашний день лучше, чем позавчерашний? Как сегодня еще заметнее улучшить свои показатели? Проделывай это каждый день. Добавь напоминание в календарь. Каждое утро трать по паре минут на обдумывание сегодняшних свершений.

 

Совет 53

Стань независимым

 

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

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

Проблема в том, что предоставляемый корпорацией уровень защиты замедляет твой рост. Возможность спрятаться за щитом посредственностей, наполняющих большинство подразделений, лишает тебя стимула преуспеть. Даже самых благонамеренных из нас манит спокойный оазис сайта YouTube или любимая коллекция комиксов.

В этом смысле крупная компания является прекрасным местом, позволяющим ощутить себя наполовину неработающим, если ты в какой-то момент выдохся. Но если ты хочешь быть не как все (а ты этого хочешь!), корпорация подходит тебе в такой же степени, как кондитерская человеку, мечтающему избавиться от жировых отложений. Где же выход? Стань независимым!

У тебя есть набор навыков. Ты их отточил. Ты знаешь, сколько ты стоишь. Осталось пройти последний тест — стать независимым работником. В этом случае у тебя нет бюрократического аппарата, за которым можно спрятаться. Ты напрямую подконтролен людям, которые тебе платят. Представление о предоставляемой тобой услуге возникает по результатам твоей работы. Группы, с которой можно поделить ответственность, если что-то пойдет не так, уже нет. Есть только ты, твой опыт и твои навыки исполнителя.

Превращение во фрилансера заставляет учиться продавать себя, одновременно проверяя правильность выбранных тобой областей бизнеса и технологий. Став независимым, уже нельзя полагаться на то, что заказчики сами тебя найдут, как это происходит при работе в крупной компании. Заказчиков приходится искать самостоятельно. После чего их еще нужно убедить в том, что тебе имеет смысл платить.

Еще следует понять, сколько ты стоишь. Твоя работа стоит $50 в час? Или $250? Как ты собираешься оплачивать счета? Чем подтверждаются те деньги, которые тебе, с твоей точки зрения, должны платить? Ты на самом деле стоишь столько, сколько ты думаешь?

 

Любопытство — это сила

Майк Кларк, независимый консультант/программист

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

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

Никогда не думал, что стану программистом. Меня восхищали самолеты и космические корабли, и логичным выбором стало поступление на авиа- и ракетостроение в Университет аэронавтики Эмби-Риддла. Но через год напряженной работы я обнаружил, что студенты-компьютерщики живут куда веселее нас. Новая стипендиальная программа включала в себя применение компьютерного моделирования к проблемам авиации. Я интересовался компьютерами в последних классах школы, но никогда не рассматривал программирование как вариант будущей работы. Итак, я начал знакомиться с компьютерными фанатиками, чтобы понять, чем они занимаются. Через некоторое время я перешел на другую программу обучения. В итоге это небольшое изменение оказалось одним из лучших решений. Учеба по-прежнему была сложной, но я наслаждался каждой минутой. Моя изначальная любознательность, направленная на программирование, быстро превратилась в страсть, которая заставила меня подать заявку на стажировку в NASA и стала первым шагом к карьере в области информационных технологий. Я по сей день не могу переоценить потенциальную награду за поиск ответа на вопрос, над чем же коллеги-технари работают для собственного удовольствия.

Как только я начинал чувствовать себя удобно, это было сигналом, что пришло время попробовать что-то новое. За много лет написания встроенных программ для аэрокосмической промышленности я полностью освоился (что для меня связано со скукой) с языками C и C++. Примерно в это время мое любопытство заставило меня обратить внимание на веб-программирование, так как оно радикальным образом отличалось от программирования встроенных систем. К сожалению, на рабочем месте у меня не было доступа в интернет (это был один из тех самых, сверхсекретных проектов), поэтому писать программы для Сети я учился вечерами и по выходным. В итоге эти дополнительные усилия дали мне возможность поработать над новым проектом, в котором требовался язык Java. Мне довелось написать множество сетевых Java-приложений для множества проектов… и работодателей. Интерес к веб-разработке послужил катализатором к разностороннему развитию моих способностей, что в конечном счете позволило хорошо продвинуться по карьерной лестнице.

По собственной прихоти я начал изучать Ruby on Rails. Ruby — это фантастический язык, заставивший меня по-другому взглянуть на программирование. Среда Rails аналогичным образом изменила мой взгляд на сетевые приложения. В те времена у меня не было заказчиков, готовых платить за программирование на языке Ruby или работу в среде Rails, но это не имело никакого значения. Мне было любопытно, я просто ничего не мог с собой поделать. Я стал меньше работать за деньги, тратя это время на освоение тонкостей Ruby и Rails. Тогда мне и в голову не приходило, что в начале 2005 года у меня появится возможность создать одно из первых коммерческих Rails-приложений, а Дэйв Томас пригласит меня помочь в написании книги по Rails. Мой интерес к пока новой технологии начал еще один успешный виток моей карьеры.

Мое любопытство направлено не только на технологии; аналогичный интерес у меня вызывают различные области бизнеса. Это привело сначала к самостоятельной работе независимого консультанта, затем к открытию образовательной компании (The Pragmatic Studio). Интерес к аспектам ведения малого бизнеса дал мне возможность приобрести множество новых навыков: продажа, маркетинг, поддержка пользователей и т. п. То, что я увидел картину в целом, помогло мне улучшить свои навыки программирования А что вызывает ваше любопытство? Попробуйте некоторое время заниматься тем, что вам интересно, и посмотрите, что получится. Вы можете удивиться, обнаружив, к чему все это приведет!

Стать независимым сложно. Это проверка на прочность всех твоих профессиональных качеств. Возможно, ты к этому еще не готов. Впрочем, никто не заставляет делать радикальный шаг и сразу идти до конца. Рассматривай это как проект саморазвития и попробуй продать на рынке труда свое свободное время. Поставь себе цель заключить договор на конкретный срок и постарайся полностью удовлетворить желания клиента. Работай по вечерам или в выходные (но только не в своем кабинете в рабочее время!). Ты многому научишься, не теряя своей подушки безопасности. В худшем случае ты несколько недель будешь перерабатывать, не справишься с проектом и вернешься в свой уютный офис с новым пониманием своей роли. В лучшем — ты достигнешь больших успехов, полюбишь то, что делаешь, и найдешь новый путь реализации карьерных устремлений и получения финансового вознаграждения.

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