Как пасти котов. Наставление для программистов, руководящих другими программистами
Шрифт:
Начальница знает, что и когда нужно делать; вы специализируетесь на том, как этого достичь. Так… кажется, я выразился не слишком ясно. Попробуем еще раз. Как правило, планирование в масштабах предприятия проводится начальством; вы же призваны заменить общие наметки детальным планом. Час от часу не легче, так? То-то же. Планирование подчиняется формуле: два шага вперед, один шаг назад. Процесс этот напоминает рекурсивную процедуру: нужно постоянно «копать» стратегический план, наполняя его деталями, которые, кстати, вам же и предстоит реализовывать. В этом отношении вы можете оказать начальнице ценную услугу – высказать свое экспертное мнение по поводу ее глобальных задумок. В планировании кропотливая работа оттесняет вдохновенные прозрения.
В некоторых компаниях отдел разработки рассматривается как производственный цех, который, принимая на входе спецификации, в конечном счете выпускает готовый продукт. Будь это
97
Каюсь, в этой книге я слишком вольно обращался с терминами «мастерство» и «искусство» и недостаточно акцентировал ваше внимание на том, что разработка программных средств – это, как-никак, инженерная дисциплина. Но такой выбор был осознанным – посвятив долгие годы разработке аппаратных средств, я на короткой ноге с прикладными научными дисциплинами. Я все же предпочитаю рассматривать нашу отрасль как жанр искусства, хотя, конечно, признаю, что в определенных случаях без строгих научных изысканий не обойтись. Более подробно об этом я поговорю в следующей главе.
Кстати, скажу несколько слов об американской космонавтике. Как могло произойти, что в 1960-е годы, когда существующие программные средства уступали уровню типичного современного карманного компьютера, нам удалось высадить человека на Луну? Секрет в том, что причастные к этому проекту специалисты, исходя из имеющихся инструментальных средств, планировали свою деятельность с расчетом на успешный финал. В своих мемуарах, рассказывая о Центре управления полетами, Джин Кранц [98] (Gene Kranz) раскрывает принципы, которые, по его мнению, определили заметные успехи подведомственной ему структуры.
98
Gene Kranz, Failure is Not an Option (New York: Simon & Schuster, 2000), p. 393.
• Дисциплина. Способность лидировать, с одной стороны, и идти в заданном направлении, с другой. Понимание того, что для решения задачи необходимо, прежде всего, совладать с собой.
• Компетентность. Космические проекты не терпят небрежности и безразличия – требуется полная готовность к выполнению задания и тотальная устремленность на успех.
• Уверенность. Вера в себя и окружающих; сознание необходимости задушить страх и неуверенность.
• Ответственность. Понимание того, что поставленную задачу нельзя никому передоверить; есть всего две альтернативы: либо сделать то, что требуется, либо потерпеть фиаско.
• Упорство. Нацеленность на преодоление возможных трудностей; последовательность в достижении цели, даже если для этого необходимо пройти по сложному пути.
• Командные усилия. Уважение к способностям друг друга и их разумная эксплуатация; ощущение работы над общей целью и коллективной ответственности за результат.
Далее Кранц утверждает, что «лучше попробовать и потерпеть неудачу, чем приложить недостаточно усилий». Придерживаясь этих принципов, он разрабатывал прекрасные планы – иногда слишком поспешно, но тем не менее ему это удавалось. Он не мог действовать без планирования – в конце концов, на него ложилась ответственность за человеческие жизни. Программные продукты, конечно, никого не убивают, но неудачный результат разработки способен сломать вашу карьеру вместе с карьерой начальницы [99] .
99
Естественно,
при разработке критически важных приложений ставки повышаются. Я до сих пор не доверяю финансовым операциям через Интернет. Знаете, почему? Потому что я знаю тех ребят, которые писали программы для этих операций.Применимы ли принципы Кранца в нашей области? Думаю, вполне, и мне к ним даже нечего добавить. Это четкие, справедливые принципы, которые неплохо бы записать на бумажке, приклеив ее к монитору. Как я уже неоднократно говорил, совершенствование лидерских качеств повышает шансы на достижение успеха, а в части планирования без лидерства не обойтись. Не стоит сваливать эти обязанности на начальницу – не забывайте, что помимо вашего отдела ей, скорее всего, подчинены несколько других. Представьте себя локомотивом коммерческих достижений компании. Если следовать этой аналогии, получается, что вам, с одной стороны, требуются топливо и грамотная эксплуатация, с другой – кто-то должен жать на газ. Может быть, вы – свеча зажигания? Насколько резво вы искрите? Хватает ли вашей увлеченности, чтобы зажечь искру энтузиазма среди подчиненных?
Знайте свой потолок
Вероятно, в планировании ваша начальница достигла больших успехов, чем вы. В конце концов, почему она оказалась в своей должности? Скорее всего потому, что за ней закрепилась репутация человека, который сочетает в себе навыки планирования и исполнения. Кроме того, вполне возможно, что и во всем остальном она более квалифицирована. В то же время одного она не может знать лучше, чем вы, – вашей верхней планки. Если вы следите за моей мыслью с самого начала книги (надеюсь, что это так), вспомните: в главе 2 мы говорили о том, как преодолевать собственные слабости.
Рассмотрим аналогию из одной программы.
Обычно мы считаем, что в области технологии, инженерии, науки, программирования – да чего бы то ни было! – достигли неплохих успехов. Люди с таким самомнением зачастую ставят перед собой сложные задачи, испытывая тем самым свой интеллектуальный уровень. Я давно играю в шахматы – мне это нравится, хотя свои успехи я оцениваю сдержанно. Мои программные шахматы позволяют устанавливать уровень квалификации противника, роль которого, естественно, исполняет компьютер, – с тем, чтобы любой игрок мог играть в свое удовольствие. Таким образом, если «человеческий» игрок хочет выиграть, он должен заменить максимальный уровень квалификации более низким. Обращаясь к терминологии этой игры [100] , назову восемь уровней квалификации:
100
ChessMaster 5000. Не думаю, что производитель будет сильно против, если я позаимствую из его игры структуру меню – в конце концов, это устаревшая версия. Кстати, более свежую и, соответственно, более мощную версию мне одолеть пока что не удалось!
1. Новичок.
2. Начинающий.
3. Простой.
4. Упрощенный.
5. Средний.
6. Сложный.
7. Специалист.
8. Чемпион.
Вашу квалификацию по части выполнения рабочих функций, очевидно, тоже можно оценить в границах этого спектра. Квалификация начальницы, скорее всего, выше. Одновременно на рынке идет борьба за звание чемпиона. При общении с начальством вы не должны заблуждаться относительно уровня собственных знаний. Начальница выше оценит честное «не знаю», чем убедительное, на первый взгляд, мнение, которое высказывается по незнанию проблемы.
При общении с начальством вы не должны заблуждаться относительно уровня собственных знаний. Начальница выше оценит честное «не знаю», чем убедительное, на первый взгляд, мнение, которое высказывается по незнанию проблемы.
Раз уж я упомянул шахматы, обратимся к стратегическому и тактическому мышлению – очередным ориентирам, помогающим оценивать квалификацию. В шахматах необходимы навыки стратегического планирования; тактики, как правило, в них не выигрывают – за исключением, конечно, ситуаций, когда оба игрока торопятся закончить игру. В отношениях с начальницей всегда имейте в виду эти два способа решения задач: стратегию и тактику. Скорее всего, в стратегическом отношении она вас превосходит. Если это не так, постарайтесь ей помочь; если же я прав, учитесь! Вероятно, она сможет лучше решать свои задачи, если сконцентрируется на стратегии, а решение тактических вопросов поручит вам. Ваше сотрудничество выгодно обеим сторонам.