Программист фанатик - Чед Фаулер 15 стр.


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

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

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

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

Часть IV
Маркетинг… не только для бизнесменов

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

Ну и что?

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

Но это всего лишь отговорка. На самом деле они опасаются.

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

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

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

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

Достаточно… а мне-то что делать?

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

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

Совет 33
Восприятие и репутация

Играть в идеалиста, делая вид, что тебе все равно, что о тебе думают другие, очень удобно. Но это игра. Нельзя позволять себе поверить в нее. Тебя должно заботить чужое мнение. Репутация - это реальность. Смирись с этой мыслью.

Возможно, ты слышал старый философский вопрос: "Если дерево падает в лесу, где никого нет, производит ли оно шум?" Правильный ответ: "А какая разница?"

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

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

Оценка деловых качеств никогда не бывает объективной.

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

Истина… что это такое? Кто ее определяет? Что такое хорошо, и что такое плохо в широком понимании?

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

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

Не существует объективной меры квалификации работника умственного труда и качества его работы. Давай, попробуй со мной поспорить. А потом как следует подумай над своими аргументами. Видишь их слабые места?

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

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

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

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

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

Действуй!

1. Факторы, влияющие на репутацию, зависят от целевой аудитории. Вряд ли мама по достоинству оценит твои навыки ООП, а вот коллеги вполне могут это сделать.

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

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

Группа - Качества, определяющие репутацию

Коллеги - Технические навыки, социальные навыки, работа в команде.

Начальник - Лидерские способности, ориентированность на заказчика, коммуникационные навыки, умение завершать начатое дело, работа в команде.

Заказчики - Ориентированность на заказчика, коммуникационные навыки, умение завершать начатое дело.

Руководитель проекта - Коммуникационные навыки, умение завершать начатое дело, продуктивность, технические навыки.

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

Совет 34
Проводник в неведомое

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

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

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

Они будут искать того, кто поможет им не переживать по поводу их проекта.

Твои заказчики тебя боятся.

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

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

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

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

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

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

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

Действуй!

1. Проверяй себя. Ты сварливый, старый, погрязший в коде человек, которого все боятся? Ты уверен? Люди не осмеливаются тебе в этом признаться?

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

Более того, покажи эти письма маме. Скажи, что кто-то из твоих коллег отправил их заказчику, и спроси, какие эмоции она испытывает при чтении.

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

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

Совет 35
Велик могучим русский языка

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

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

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

Но, к примеру, в Соединенных Штатах это настоящая проблема.

Назад Дальше