Для того чтобы устоять в бурю, нужно постоянно стремиться к созданию качественных программных продуктов и регулярно повышать планку этого самого «качества». Вам придется утрясать сроки с начальством, препираться со специалистами по анализу рынка насчет задач, на решение которых способен тот или иной продукт, как-то разбираться с недостатками сетевой инфраструктуры… Этот список можно продолжать бесконечно. Ничего удивительного в том, что продукты нашей деятельности зачастую несут оттенок незаконченности. Дело даже не во впечатлении – они действительно являются таковыми. Вероятно, лишь в идеальном мире можно было бы создать условия для производства абсолютно безошибочного продукта. Впрочем, на пути к идеалу мы движемся слишком медленно – непозволительно медленно. Сосредоточьтесь на качестве, и вы сможете завоевать уважение коллег и успех на рынке.
Для того чтобы постоянно поднимать планку «качества», нужно быть увлеченным своей работой – только при этом условии, кстати говоря, ваши лидерские начинания имеют шанс на развитие. Именно увлеченность позволяет удерживаться на плаву в шторм. Увлеченность формируется за счет баланса рабочей деятельности, с одной стороны, и приятных для вас мелочей жизни, с другой. Невоздержанность в той или иной сфере жизни приводит к потере увлеченности, а следовательно, к усталости и краху. Старайтесь удержать увлеченность работой и любовь к жизни – превращайте все свои начинания в увлекательные приключения.
Еще один момент касательно «баланса». В современных рабочих условиях баланс предстает в виде «смешения». Это утверждение особенно справедливо по отношению к удаленным сотрудникам – вне зависимости от того, работают они полный рабочий день или садятся за кодирование вечерами. При наличии карманных компьютеров, ноутбуков, постоянных интернет-соединений через виртуальные частные сети и прочих инструментов нашей деятельности появляется возможность не покидать рабочее место. «Балансирование» в таких условиях предполагает проведение 15 часов кряду в одном и том же месте – там, где можно заниматься и работой, и личными делами. Как организовать для себя отдых – необходимое условие «подзарядки» мозгов? Ничего определенного на этот счет я сказать не могу, но отдыхать необходимо – иначе вы рискуете потерять увлеченность и, в конечном итоге, «сгореть». Если топлива не осталось, зажечь огонь заново не так-то просто.
Якорь
Якорь придает нам устойчивость, и время от времени мы к нему прибегаем. Одно лишь наличие якоря на борту позволяет чувствовать себя спокойно даже в штормовую погоду. Роль якоря в нашей профессии исполняют лидерские навыки. Выпас котов – деятельность, которой я с помощью этой книги пытаюсь вас научить, – предполагает проявление лидерских качеств на уровне «выше среднего программиста». Программист в силу особенностей своей профессии сориентирован на объекты, которыми можно управлять. Создавая объект с определенным количеством открытых интерфейсов, мы ожидаем, что при обращении из другого объекта проявят себя только они. Люди устроены немного по-другому. За некоторый период времени они могут несколько раз сменить маску, а в экстренных ситуациях – измениться до неузнаваемости. Ваша задача – научиться работать с людьми в их самых необычных обличьях, с тем чтобы выстроить их однонаправленную деятельность. Относительно направления, в котором всем предстоит двигаться, вы не должны испытывать никаких сомнений. Кроме того, вам нужны факторы притяжения (attractors). Я в данном случае не имею в виду хитрые конструктивы из теории хаоса. Я о более простых вещах – необходимо научиться привлекать к себе людей за счет уверенного лидерства. Даже самый талантливый руководитель на это не способен. Творческому и продуктивному программисту это тоже не под силу. Но, сосредоточившись на развитии в своем характере лидерских качеств, вы сможете добиться в этой области нужного результата. Дело не в методиках. Совершенствовать методики позитивного мышления можно сколько угодно – привлекательными для сотрудников они все равно не станут. Незаменимым в этом отношении оказывается великолепие последовательного и продуманного лидерства.
Вам предстоит проводить регулярный анализ эффективности своего лидерского поведения. Рассмотрим аналогию. Как известно, программные продукты иногда перестают работать из-за конфликта версий библиотек DLL. Это явление, которое время от времени ставит под угрозу результаты труда разработчиков, называют «библиотечным кошмаром» (DLL Hell). Правда, к счастью, все подобные проблемы можно решить разом – просто переустановив операционную систему. Примерно этим вам предстоит время от времени заниматься в контексте своих лидерских качеств. Нельзя беспрерывно накапливать руководящие методики и надеяться, что таким образом все проблемы решатся сами собой. Иногда полезно начинать отсчет «с нуля» – каждый божий день стараться мыслить вне сложившихся стереотипов. «Стереотипом» в данном случае представляется существующий метод ведения дел в отделе. Переосмысливать фундаментальные принципы лидерства нужно по мере необходимости. Что сделать из того, до чего вы еще не додумались? Какие практики следует прекратить? Трудно надеяться на то, что стать лидером программистов вам удастся лишь по той причине, что вы занимаете пост менеджера, руководителя группы разработчиков, начальника отдела разработки – да хоть менеджера по информации! Право на лидерство нужно еще заслужить – для этого необходимо осознать свои слабые места и стремиться к их устранению.
Надеяться на то, что за ваши достоинства вас будут превозносить до небес, не стоит – но, по крайней мере, они (достоинства) возымеют действие на сотрудников компании. Ваши недостатки, наоборот, не пройдут незамеченными – о них будут говорить, в том числе и вам самим; да, так устроен мир, ничего не поделаешь. В общем, налегайте на свои достоинства.
Кое-какой материал в этой своей книге я представил в форме наставлений. На самом деле их было предостаточно. Может быть, именно по этой причине вы дочитали книгу до конца – вам нужна была проповедь. Надеюсь, она прошла небезрезультатно и поможет вам в последующей деятельности.
Дж. Хэнк Рейнуотер
Январь 2002
Приложение А
Как ухаживать за живностью – электронный администратор
У программ с открытым исходным кодом есть много достоинств и совсем немного недостатков. Как известно, главное для нас – стандарты. В то же время при наличии исходного кода у нас появляется возможность вводить собственные стандарты. Я решил предоставить в ваше распоряжение исходный текст электронного администратора – быть может, с ним вы сможете добиться успеха чуть быстрее, чем без него. Должен предупредить, что эта программа предназначена исключительно для личного пользования – соответственно ее нельзя перепродавать, а также сначала переделывать, а потом перепродавать. Для ее загрузки зайдите на сайт http://www.piter.com.
Электронный администратор (подробнее см. главу 4) написан в среде Visual Basic 6.0 с установленным служебным пакетом 5. В качестве базы данных применяется Access 2000. Помимо стандартных элементов VB, я обращался к следующим средствам:
• интерфейсы источников данных от Microsoft;
• библиотека Microsoft ActiveX Data Objects 2.6;
• Crystal Reports версии 8.5 (отдельные компоненты)[139];
• Microsoft Direct Speech Synthesis;
• Microsoft Agent Control 2.0;
• Microsoft Scripting Runtime;
• Microsoft Direct Speech Recognition.
Помимо стандартных компонентов, в этом проекте я обратился к довольно древнему элементу управления календарем, созданным MSCAL.OCX[140] из поставки Access 97, и специальным элементом управления датами под названием MyData.OCX, который вы можете скопировать с сайта вместе с исходным кодом.
139
В Crystal Reports 8.5 какое-то невероятное количество библиотек DLL. У меня установлена полная версия этого пакета для разработчиков, и для того чтобы с отчетами можно было хоть что-то делать, требуется великое множество файлов. При этом ни сам пакет, ни мастер развертывания (Deployment Wizard) в VB 6.0 не справляется с идентификацией этих файлов.
140
Этот элемент OCX вызывает у меня некоторые подозрения. Он вроде как не обнаруживает зависимостей от других файлов (помимо стандартных файлов Windows API), однако заставить его работать без Access 97 мне не удалось. Я соорудил собственную версию этой программки на основе элемента управления календарем из поставки VB 6.0, так что если при загрузке кода вы наткнетесь на неработающую ссылку, милости прошу!