Как пасти котов. Наставление для программистов, руководящих другими программистами

Рейнвотер Дж.Ханк

Послесловие

Снова в плавание…

 

 

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

 

Руль

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

Сфера вашей деятельности весьма обширна – вам предстоит заниматься разными делами, причем некоторые из них очень интересны. Раздражители, помимо прочего, появляются из-за неверного выбора технологий для решения коммерческих задач. Вы должны научиться отметать не подходящие для достижения вашей компанией успеха решения (пусть даже они, по идее, очень хороши) в пользу действительно необходимых вариантов. Подобная систематизация достигается путем планирования и реализации плана. Устранению раздражителей помогает также правильная организация административной деятельности. Внешне прибранный рабочий стол свидетельствует о структурированности мысли, а беспорядок, напротив, выражает неопределенность по поводу приоритетов. Обратите внимание: я сказал «внешне». На самом деле, важнее всего ваше внутреннее отношение к рабочим вопросам.

Вступив в бой с процессом разработки, вы будете вынуждены пересмотреть свою систему приоритетов. Стоят ли люди на первом плане в вашей иерархии ценностей? Они должны быть именно там – в конце концов, никто кроме людей не напишет для вас код. Чем внимательнее вы будете относиться к своим сотрудникам, тем больше вероятность, что они станут воспринимать ваши задачи как свои и делать все для их решения. Многие считают так: «я работаю на компанию такую-то». Этого мало – нужно, чтобы они говорили: «я работаю на ____ (впишите сюда ваше имя)». Преданными люди становятся не сразу – для того чтобы сформировать в них это качество, необходимо постоянно терпеливо принимать участие в их рабочей жизни.

 

Парус

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

Если вы привыкли ориентироваться на продукцию Microsoft, значит, ветры больше всего дули с северо-запада. Направление ветров за последние несколько лет можно определить – все они явились результатом тщательного (и не очень) планирования. В чем, по-вашему, смысл Windows 98 Second Edition? А как насчет бесчисленных служебных пакетов для Visual Studio? Сможете ли вы навскидку припомнить все номера вышедших в свет версий ADO? Пробовали ли вы запускать утилиту от Microsoft, определяющую наиболее подходящую для конкретной машины версию ADO? Не успели вы привыкнуть к Windows 2000, как на рынке появляется Windows ХР (более дорогая) – так ведь? Каждая последующая версия Visual Studio знаменует для программистов VB смещение парадигмы и обещает кардинальным образом изменить методы написания кода.

Изменения не обошли стороной сообщества Java и С++, и, скорее всего, ими дело не ограничится. Компания Sun несколько лет держала название своего нового языка в секрете – собственно, оно шло вразрез с традицией именования языков. Первоначально язык предполагали назвать «Оак», но, как оказалось, это имя уже занято. Судя по всему, имя «Java» придумали с расчетом на то, чтобы «встряхнуть» быстро развивающийся рынок разработки интернет-проектов. И, действительно, все мы почувствовали встряску. Кроме того, есть пространство CORBA и СОМ. Или, возможно, CORBA и СОМ+? Или CORBA и SOAP? Кто знает – может, сформировавшуюся брешь закроет XML? Ну, в общем, вы меня поняли…

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

Для того чтобы устоять в бурю, нужно постоянно стремиться к созданию качественных программных продуктов и регулярно повышать планку этого самого «качества». Вам придется утрясать сроки с начальством, препираться со специалистами по анализу рынка насчет задач, на решение которых способен тот или иной продукт, как-то разбираться с недостатками сетевой инфраструктуры… Этот список можно продолжать бесконечно. Ничего удивительного в том, что продукты нашей деятельности зачастую несут оттенок незаконченности. Дело даже не во впечатлении – они действительно являются таковыми. Вероятно, лишь в идеальном мире можно было бы создать условия для производства абсолютно безошибочного продукта. Впрочем, на пути к идеалу мы движемся слишком медленно – непозволительно медленно. Сосредоточьтесь на качестве, и вы сможете завоевать уважение коллег и успех на рынке.

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

Еще один момент касательно «баланса». В современных рабочих условиях баланс предстает в виде «смешения». Это утверждение особенно справедливо по отношению к удаленным сотрудникам – вне зависимости от того, работают они полный рабочий день или садятся за кодирование вечерами. При наличии карманных компьютеров, ноутбуков, постоянных интернет-соединений через виртуальные частные сети и прочих инструментов нашей деятельности появляется возможность не покидать рабочее место. «Балансирование» в таких условиях предполагает проведение 15 часов кряду в одном и том же месте – там, где можно заниматься и работой, и личными делами. Как организовать для себя отдых – необходимое условие «подзарядки» мозгов? Ничего определенного на этот счет я сказать не могу, но отдыхать необходимо – иначе вы рискуете потерять увлеченность и, в конечном итоге, «сгореть». Если топлива не осталось, зажечь огонь заново не так-то просто.

 

Якорь

Якорь придает нам устойчивость, и время от времени мы к нему прибегаем. Одно лишь наличие якоря на борту позволяет чувствовать себя спокойно даже в штормовую погоду. Роль якоря в нашей профессии исполняют лидерские навыки. Выпас котов – деятельность, которой я с помощью этой книги пытаюсь вас научить, – предполагает проявление лидерских качеств на уровне «выше среднего программиста». Программист в силу особенностей своей профессии сориентирован на объекты, которыми можно управлять. Создавая объект с определенным количеством открытых интерфейсов, мы ожидаем, что при обращении из другого объекта проявят себя только они. Люди устроены немного по-другому. За некоторый период времени они могут несколько раз сменить маску, а в экстренных ситуациях – измениться до неузнаваемости. Ваша задача – научиться работать с людьми в их самых необычных обличьях, с тем чтобы выстроить их однонаправленную деятельность. Относительно направления, в котором всем предстоит двигаться, вы не должны испытывать никаких сомнений. Кроме того, вам нужны факторы притяжения (attractors). Я в данном случае не имею в виду хитрые конструктивы из теории хаоса. Я о более простых вещах – необходимо научиться привлекать к себе людей за счет уверенного лидерства. Даже самый талантливый руководитель на это не способен. Творческому и продуктивному программисту это тоже не под силу. Но, сосредоточившись на развитии в своем характере лидерских качеств, вы сможете добиться в этой области нужного результата. Дело не в методиках. Совершенствовать методики позитивного мышления можно сколько угодно – привлекательными для сотрудников они все равно не станут. Незаменимым в этом отношении оказывается великолепие последовательного и продуманного лидерства.

Вам предстоит проводить регулярный анализ эффективности своего лидерского поведения. Рассмотрим аналогию. Как известно, программные продукты иногда перестают работать из-за конфликта версий библиотек DLL. Это явление, которое время от времени ставит под угрозу результаты труда разработчиков, называют «библиотечным кошмаром» (DLL Hell). Правда, к счастью, все подобные проблемы можно решить разом – просто переустановив операционную систему. Примерно этим вам предстоит время от времени заниматься в контексте своих лидерских качеств. Нельзя беспрерывно накапливать руководящие методики и надеяться, что таким образом все проблемы решатся сами собой. Иногда полезно начинать отсчет «с нуля» – каждый божий день стараться мыслить вне сложившихся стереотипов. «Стереотипом» в данном случае представляется существующий метод ведения дел в отделе. Переосмысливать фундаментальные принципы лидерства нужно по мере необходимости. Что сделать из того, до чего вы еще не додумались? Какие практики следует прекратить? Трудно надеяться на то, что стать лидером программистов вам удастся лишь по той причине, что вы занимаете пост менеджера, руководителя группы разработчиков, начальника отдела разработки – да хоть менеджера по информации! Право на лидерство нужно еще заслужить – для этого необходимо осознать свои слабые места и стремиться к их устранению.

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

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

Дж. Хэнк Рейнуотер

Январь 2002