Herding Cats: A Primer for Programmers Who Lead Programmers - J. Hank Rainwater
Refs:
Предисловие
В конце концов, личность в сегодняшних условиях — это опыт плюс прочитанная литература.
Люди руководствуются разными мотивами, у них разный уровень знаний, и понять, что движет тем или иным деятелем, не так-то просто. Различия не превозносят одного человека над другим — просто все мы разные.
Что делает руководитель? Он координирует и ведет всех этих «котов», которые гуляют сами по себе. Понимать, как коты себя ведут и как общаются между собой, совершенно необходимо — иначе эффективного лидерства не получится.
У всех разные таланты, способности, желания и наклонности.
Введение
Между руководством и лидерством прослеживаются существенные различия. Нужно то и другое, но лидерство все же имеет приоритет — хотя крепкие руководящие навыки, естественно, помогают брать новые высоты в роли лидера.
Стиль и позиция
В конце концов, именно в этом суть менеджмента: делегируя задания подчиненным, вы должны обеспечить мотивацию и проконтролировать (в лучшем смысле слова) выполнение этих заданий ради достижения общей для всей компании цели.
Для создания первоклассного программного обеспечения требуется мастерство, а оно нарабатывается преимущественно с опытом.
Две основные области руководства программистами:
- люди
- процессы
Из них люди, разумеется, важнее. При наличии хорошей команды разрабатывать прекрасные программные продукты более чем возможно — даже несмотря на недостатки бизнес требований. А стоит только подогнать требования, и в сотрудничестве с высококлассными специалистами вы сможете докодироваться хоть до Луны!
Глава 1: Как привыкнуть к роли руководителя
Как известно, совершить рывок чистой физиологии к одухотворенному состоянию человеку помогла адаптация — ведущая сила биологической эволюции. Этот процесс продолжался многие миллионы лет, но результат налицо — люди говорят на разных языках и оперируют абстрактными понятиями вроде компьютерных программ.
Правда ли, что настоящие руководители ходят в черном?
Отсюда урок: образ человека не может быть поверхностным. Что действительно имеет значение, так это характер. Почему стандартные методики менеджмента так часто на практике оказываются несостоятельными? Да просто потому, что их последователи, вместо того чтобы выработать собственный индивидуальный стиль, забивают методиками свои головы и действуют по ним как по шаблону.
Насколько важно быть крутым?
В то же время в каждой компании своя культура, и группа, которой вы руководите, — не исключение. Она в целом не менее уникальна, чем каждый из работающих в ней специалистов. Вне зависимости от определения культуры, она в любом случае совпадает с контекстом ваших обязанностей как руководителя программистов. Стоит хотя бы немного разобраться в культуре ваших подчиненных (в частности, в том, как они мыслят и выстраивают свое взаимодействие), и качество ваших отношений, равно как и эффективность исполняемых вами руководящих функций, сразу возрастет.
Мало быть крутым – смотри в оба!
Вы действительно должны держать в голове как можно больше подробностей, касающихся разработки кода, за который несете ответственность, но также вы должны уметь мыслить глобально, чего, к сожалению, программисты-менеджеры зачастую делать не умеют.
Один из таких приемов, позволяющий выделять время на выполнение руководящих функций, — делегирование. Пока что вы должны четко уяснить себе, что делегирование невозможно без доверия к своим подчиненным. Для того чтобы построить доверительные отношения, требуется некоторое время, но без них деятельность руководителя обречена на провал. Не следует также забывать, что доверие предполагает взаимность.
Как руководить чокнутыми, чудаковатыми, странными и обычными программистами
Проблема в том, что управлять этими иногда беспокойными, неизменно нужными и, как правило, очень интересными сотрудниками крайне трудно. Чем лучше вы будете их знать, тем совершеннее станет ваш стиль руководства.
Хорошего программиста нужно ценить вместе со всеми его странностями. С другой стороны, всех этих хороших программистов нужно каким-то образом заставлять двигаться в одном направлении. Вот это «одно направление» отражает задачу, которая стоит перед каждым руководителем проекта. Но ведь двух одинаковых программистов не существует, и поэтому для каждой группы специалистов нужно выбрать индивидуальный стиль руководства. Управлять программистами невозможно, если в них не разбираться.
Какие бывают породы программистов
В психологической науке существуют так называемые тесты оценки личности. Здесь тот же принцип — достаточно разобрать отличительные черты программистов в отдельности, и вы поймете, что многие из этих характеристик (даже если они на первый взгляд кажутся взаимоисключающими) могут существовать в одном лице.
Я разделяю породы на три категории: распространенные, редкие и дворовые.
- Распространенные породы встречаются чаще всего.
- Редкие породы встречаются не так часто, но иногда с ними все-таки приходится сталкиваться.
- Дворовые породы, как и следует из их названия, приносят не слишком много пользы, но знать о них нужно, хотя бы в силу того, что они существуют. Если регулярно помогать дворнягам повышать уровень знаний и, соответственно, преодолевать слабости, которые они по определению привносят в процесс кодирования, они могут стать очень достойными исполнителями.
Распространенные породы
-
Архитектор. Большинство руководителей обожают этот тип программистов — и, действительно, любой такой деятель окажется ценным приобретением для вашей команды. В основном архитекторы концентрируются на общей структуре кода. Они мыслят объектами, а их лучший друг — лист белой бумаги. Посвящая себя без остатка решению бизнес-задач, они строят абстракции, проводят анализ систем, после чего переходят к кодированию конкретных решений. Слов нет — все это очень важные элементы программирования, но для комплексного выполнения задач их еще не достаточно. Зачастую в высшей степени разумные замыслы архитектора воплощаются в настолько общем и непонятном коде, что людей, могущих разобраться в нем и продолжить начинание, просто не находится. Особи, способные генерировать удачную идею в голове (а лучше в Visio), а затем выполнить ее полноценную конкретизацию в коде, становясь, таким образом, единственными участниками процесса, встречаются очень редко. Недостаток архитекторов в том, что их код часто служит только одному хозяину, а исполнять чужие команды категорически отказывается. Некоторые архитекторы очень любят набросать структуру кода, с тем чтобы впоследствии передать его на растерзание программистам более «низкой» квалификации.
-
Конструктивист. Конструктивисты получают удовольствие от процесса написания кода и его результата. Стратегическим планированием они себя утруждают не всегда, но факт в том, что с написанием кода они справляются быстро, причем в большинстве случаев ошибок в нем не обнаруживается даже на этапе альфа-тестирования. Код конструктивисты пишут по наитию, а потому их логика не всегда понятна. У некоторых конструктивистов все в порядке и с интуицией, и со стратегическим планированием, поэтому код выступает естественным продолжением хода их мыслей. Но стоит попросить конструктивиста составить документацию, он обязательно ответит, что код самодокументируемый. Впрочем, если на него немного надавить и дать понять, что без документации никуда не деться, он, вероятно, согласится ее составить — и сделает это качественно. Кто спорит — код должен быть самодокументируемым, но следует иметь в виду, что основное внимание программисты этого типа уделяют процессу создания кода, поэтому остальное для них не так уж важно. Количеству сборок, которое конструктивист выдает за день, позавидует даже Microsoft. Соответственно, их код обычно отличается надежностью. Однако же по мере разбухания (а этот процесс неизбежен) надежность улетучивается, а конструктивист начинает судорожно искать новые, «заплаточные» решения — ведь для него очень важно видеть результат и пребывать в уверенности в том, что он справился с поставленной задачей. Конструктивист в сочетании с архитектором имеют все шансы стать прекрасной командой. Если же вы умудритесь отыскать конструктивиста и архитектора в одном лице, считайте, что львиная доля кадровых проблем решена.
Умение обращаться с представителями разных пород
Программисты — это в первую очередь люди. Поэтому в одном человеке могут быть в большей или меньшей степени выражены все перечисленные характеристики. Некоторые из них как будто исключают друг друга, но на самом деле это не так. Все люди сотканы из противоречий, и ваши подчиненные — не исключение. От вас как от человека, осуществляющего руководство этими чудесами природы, требуется понимание, умение мотивировать и, прежде всего, мудрость, которая нарабатывается только с опытом. Мнение о программистах нужно составлять по тем граням их характера, которые ярче других сверкают в свете новых начинаний и ослепляющих вспышек проектов, приближающихся к сдаче.
К сожалению, скорее всего, подобрать группу из идеальных кандидатов не удастся. Работать вам придется с тем, что есть. Потому успех вашего взаимодействия с людьми, сочетающими в себе вышеупомянутые характеристики, зависит от вашей проницательности, терпения и умения быть для подчиненных наставником — то есть от трех универсальных качеств руководителя.
Почему в программистах сочетаются все эти чрезвычайно занимательные личностные характеристики? Мне кажется, связано это с тем, что сам характер деятельности разработчика программного обеспечения привлекает людей совершенно определенного рода. В своем классическом труде «The Mythical Man-Mouth» Фредерик Брукс (Frederick Brooks) утверждает, что наше ремесло приносит людям удовольствие пяти видов.
- Радость созидания.
- Радость созидания полезных для других людей продуктов.
- Привлекательность процесса упорядочивания головоломных объектов, состоящих из взаимосвязанных динамичных элементов.
- Радость от постоянного обретения новых знаний и решения нестандартных задач.
- Интерес к работе с продуктами, созданными исключительно путем приложения интеллектуальных усилий человека, которые, тем не менее, существуют, развиваются и делают совершенно непередаваемые вещи.
Все эти факторы кажутся тем людям, которыми вы руководите, чрезвычайно привлекательными. Разобравшись в их мотивации (да и в своей тоже), вы сможете серьезно усилить свои позиции как руководителя.
Слава, почет и деньги
Любой сотрудник жаждет признания своей деятельности, хочет ощущать весомость своего вклада в общее дело. Быть оцененными по достоинству стремятся и некомпетентные сотрудники — даже несмотря на то, что их вклад в деятельность компании исключительно негативный.
Расхваливать своих сотрудников — это, конечно, замечательно, но иной раз стоит на секунду остановиться и поразмыслить, отрабатывают ли они те деньги, которые получают.
Если хотите похвалить человека, сделайте это на виду у всех. Если считаете нужным покритиковать его, не выносите свои оценки на суд публики. Дело не просто в вежливости — эти правила поведения важны в том смысле, что как похвала, так и порицание одного человека на самом деле оказывают грандиозное влияние на всю группу.
Мотивирование деньгами
Как определить, стоит ли платить вашим сотрудникам именно столько, сколько вы им платите? Среди факторов, которые нужно учесть, — производительность, опыт, результативность, своевременность исполнения задач, текущая средняя ставка, экономическая конъюнктура и корпоративные стандарты, касающиеся оплаты труда сотрудников в области высоких технологий. Подбирая новых сотрудников и повышая оплату старым, вы должны быть справедливым и бережливым одновременно.
Уровень мышления
Как пишет в книге «Dynamics of Software Development» Джим Маккарти ( Jim McCarthy):
Основная задача руководителей процесса разработки программных средств состоит в том, что бы аккумулировать как можно больше интеллектуальных ресурсов и направить их на создание конечного продукта.
Стоя в душе — думайте. Катаясь на велосипеде, прогуливаясь по парку, выделывая невообразимые трюки на роликах — думайте. Сталкиваясь с дилеммами, которые обусловлены принятыми проектными решениями, — думайте. Думать значительно полезнее, чем смотреть телевизор или бесцельно бродить по Сети, — пусть даже там 500 каналов, но на самом деле на них ничего не происходит, и то, что они как будто избавляют человека от необходимости мыслить, совершенно не здорово. Думайте напряженно, до изнеможения, а когда не останется сил — начинайте заново. Результат вас удивит.
Есть твердое правило: прежде чем пытаться утвердить то или иное решение, используя свое положение руководителя, обязательно выслушайте человека и попробуйте его понять.
Существует мнение, согласно которому полное и всеобщее согласие приводит лишь к тому, что в случае неудачи не остается никого, кого можно было бы в ней обвинить. Может, это и так, но, будучи руководителями, мы не должны увлекаться поиском виновных — значительно полезнее посвятить свое время решению проблем.
Повторюсь: если дать человеку возможность высказать его точку зрения, он в ответ проявит понимание к вашей позиции.
Как вы адаптируетесь
Основные принципы руководства:
- Вы должны уметь адаптироваться.
Нарабатывая навыки руководства, человек должен приспосабливаться к новому для него социальному контексту. Вы — начальник, а потому ваши взаимоотношения с подчиненными должны серьезно измениться. - Самосовершенствование важнее, чем имидж.
Лидерство есть внутреннее качество человека, оно ни в коем случае не обусловливается внешними признаками. Оставаясь программистом, вы как руководитель должны работать над решением сложных проблем, предусматривающих анализ поведения подчиненных (и, конечно же, собственного поведения). - Изучайте своих сотрудников.
Станьте исследователем культуры и личностей программистов. Разберитесь, почему ваши подчиненные пишут код именно так, как пишут; подумайте, как использовать их положительные качества и улучшить положение вещей в неблагополучных с точки зрения производительности областях. Пасти котов — значит заставлять их двигаться в одном направлении. Это основная задача руководителя. - Вознаграждайте сотрудников согласно их заслугам.
В вопросах устного и денежного поощрения действуйте по ситуации. Принимая во внимание все финансовые ограничения, старайтесь быть одновременно справедливым и бережливым. Не забывайте, что хвалить подчиненных лучше публично, а ругать индивидуально. - Думайте.
Мобилизуйте ваши знания о людях и на их основе старайтесь находить консенсус. Прежде чем судить, выслушивайте аргументацию собеседника. Воспитывайте свой мозг — поскольку вы теперь руководитель, размышления должны стать вашей второй натурой. Готовые варианты решения личностных проблем не способны заменить ваших стараний, направленных на устранение трудностей и развитие возможностей, характерных именно для вашей компании.
Что дальше
Чтобы стать хорошим руководителем, вы прежде всего должны научиться управлять собой.
Глава 2. Как руководить собой
Создание в срок качественного программного обеспечения — ваша цель, а управление процессом — ваша работа, так что же вы делаете в свободное время? Вероятно, пишете код. Если вы доросли до начальника из программистов, вам стоит продолжить программировать, в противном случае ваше увлечение этим ремеслом будет ослабевать, и ваши навыки постепенно «сойдут на нет». Другой возможной причиной для того, чтобы искать и находить время для кодирования, является удовольствие, которое оно доставляет. Если возглавлять команду программистов — для вас дело новое и вы пока еще адаптируетесь к этой роли, то кодирование доставит вам удовольствие, поскольку именно это вы хорошо знаете и умеете делать продуктивно. Я полагаю, что продолжать писать код абсолютно необходимо, поскольку это занятие связывает вас с прошлой жизнью, с вашими корнями. Корни очень важны, ведь они определяют ваше отношение к своему ремеслу, и как руководителю вам придется пустить в грунт своей жизни несколько новых корней.
Взгляд в зеркало
Рай, ад, чистилище и ваше место во вселенной
Наиболее существенное усовершенствование, которое вы можете сделать, руководя разработкой программного обеспечения, — усовершенствовать руководителя.
Осознание вашего места в происходящих вокруг вас событиях поможет вам стать лучшим руководителем, чем вы были прежде.
Ваша работа в корне меняется
Ну что ж, вы не в раю, это уж точно. Наверняка вы осознали это в первый же месяц, распределяя задачи в коллективе. Хотя вы можете подумать, что в раю живет ваш начальник, смею вас уверить, что и это не так. Вы видите, как он планирует текущие задачи и проводит планерки на уровне компании, касающиеся отдаленного будущего, но вы никогда не видели, чтобы он делал что-то, имеющее какую-либо ценность само по себе. Ваше впечатление ошибочно и показывает, насколько вы нуждаетесь в изменении точки зрения на выполняемую работу.
Вам нужно заново учиться оценивать свои успехи увлечения, амбиции
Кстати говоря, а куда вы движетесь как программист-начальник? Будем надеяться, по направлению к успеху — как личному (персональному), так и общему (корпоративному). Хотя успех и определяется по-разному, одно из определений я нахожу наиболее полезным и практичным: это способность радоваться своему труду и не терять своего увлечения. Может показаться, что при такой оценке увлечение ставится слишком высоко, однако оно может зажечь огонь у вас внутри и помочь вам покорить столь непредсказуемый мир разработки программного обеспечения. Увлечение — это топливо, которое может раскрутить «мотор» вашего руководства. Требуйте от своих программистов во всем добиваться безупречности, чего бы это ни стоило. Если они считают, что изящество и безупречность — это те две вещи, которые затягивают время кодирования, то напомните, что элегантность — это достижимое совершенство. Увлечение побудит их добиться этих целей. Лелейте свое увлечение — ведь для вас это единственный способ расти, приспосабливаться, превозмогать, достигать цели. Это часть обязанностей по уходу за деревом, на котором распускаются цветы успеха.
Учитесь обживать свое место, а не рваться вперед. Амбиции могут быть чрезвычайно разрушительной силой, если они отрывают вас от реальности и решаемых задач. Быть амбициозным — значит преуспевать в вашей новой роли руководителя и отчасти программиста. Если в будущем вам выпадет продвинуться по служебной лестнице, вы должны быть уверены, что продвижение по службе — совсем не то, к чему вы активно стремитесь, а просто лучший способ реализовать свои амбиции. Вы сможете делать эту амбициозную работу, если у вас сердце программиста и при этом вы сумели развить в себе мышление руководителя.
Естественный отбор и время
Потребителям программного обеспечения может показаться, что на создание новой версии уходит бездна времени, но они ведь просто не знакомы с процессом. Вы разбираетесь в процессе и должны учитывать время в повседневной деятельности. В революционной книге (Tom DeMarco and Timothy Lister, Peopleware: Productive Projects and Teams, Second Edition (New York: Dorset House Publishing, 1999)), посвященной вопросам управления разработкой программного обеспечения, пустая трата времени персоналом упоминается как величайший грех управленца.
Время — это либо союзник, либо враг.
Избегайте ненужных, неэффективных совещаний
Для общения вашего коллектива вполне достаточно одной встречи в неделю. Остерегайтесь тратить чересчур много времени на разговоры и мало на решения и действия. Не устраивайте встречу только ради того, чтобы получить одобрение своих решений. Поощряйте дискуссию, но ищите решения. И помните, что дьявол — в деталях, а цель любой встречи — это изгнание этих дьяволов. Если вы контролируете ход встречи, вы контролируете время. Установите предел для любой встречи: 45 минут общения обычно более чем достаточно. Зачастую могут быть нужны и 8-часовые обсуждения проекта, однако всегда имейте подробную повестку дня и следуйте ей, если вы собираетесь выдержать такую длительную мозговую атаку.
Не планируйте слишком мало или слишком много
Не верьте теории, утверждающей, что чистый стол — признак скудоумия. Вам необходимо в достаточной мере организовать процесс, но не тратить все время на планирование. Достичь равновесия трудно, но необходимо. Не путайте вопросы организации работы с вопросами ее выполнения. Организация — это начальная стадия плана. Разрабатывайте план.
Логика — начало мудрости». Аналогично, планирование — начало выполнения.
Spock, Star Track
Бессмысленно ожидать чего-либо при отсутствии контроля
Если вы думаете, что промежуточные этапы не являются неотъемлемой частью поставленной вами задачи, то вы понятия не имеете о том, как работает голова программиста. И это даже несмотря на то, что вы — один из них. Это вполне в человеческой природе: если до срока сдачи остается месяц, времени на то, чтобы сделать работу, вполне достаточно. Время можно считать потерянным, если нет очевидного продвижения. Работа над частью нового продукта — это поступательный итерационный процесс, не подчиняющийся булевой логике и предполагающий много возможностей для проверки.
Вы наверняка слышали, что цена свободы — это постоянная бдительность, ценой же вовремя сделанного программного обеспечения является неизменное усердие.
Проектируйте архитектуру, прежде чем выбирать технологию
Технология волшебной пули или золотого молотка (как бы вы ее ни назвали) не может решить бизнес-проблем, это делают люди. Уверен, вы применяете технологию для реализации решений, но вы тратите время попусту, если думаете, что покупка последнего дополнения к среде разработки даст скачок производительности.
Я призываю определить ваши архитектурные задачи и планы до того, как вы выберете технологию реализации. Вам придется все переделать, если с новым инструментом дело «не выгорит». Вы уже много раз слышали: если у вас не хватает времени даже на то, чтобы сделать все правильно, где же вы его найдете на то, чтобы все переделать?
Баланс между чистотой и практичностью
Поиск равновесия между чистотой и практичностью — трудное дело для человека, влюбленного в программирование. Концепция «хорошего программного обеспечения нужно в меру», возможно, впервые открытая Microsoft, имеет свои достоинства. Вы можете тратить очень много времени, добиваясь чистоты кода в ущерб практичности. Что действительно нужно, так это удобство эксплуатации программного обеспечения, и практичность больше соответствует этой цели, чем чистота. Конечно, чистота может быть полезной, но какой ценой? Я не говорю о создании неряшливого или непродуманного кода, я имею в виду программное обеспечение, которое может дополняться и расширяться не только его создателем, но и другими программистами. Проблема чистоты кода состоит в том, что она подобна красоте — ее воспринимают глазами. Вашим глазам постоянно нужно носить очки практичности.
Не выполняйте задания, а распределяйте их
Классическая управленческая ловушка для начальника, вышедшего из программистов, касается распределения заданий. Вы понимаете, каким образом реализовать определенное решение, а обучение членов команды, которые вовсе не обязательно видят это решение, требует времени. Здесь применима старая китайская поговорка:
Дайте человеку рыбу, и он будет сыт один день; научите его ловить рыбу, и он будет сыт всю жизнь
Если бы все стали столь же сообразительны, как вы, было бы вам проще работать? Возможно. Потратьте время на обучение сейчас, и вы сэкономите его потом, поскольку ваши сотрудники научатся решать проблемы без вашей помощи. Тогда вы сможете эффективно распределять задания, а не давать объяснения.
Документируйте то, что вы делаете или планируете делать
Бизнес-требования — только начальный этап разработки документа, позволяющий обрисовать архитектуру, а дальше вы можете говорить о реализации решения в объектах кода. У вас всегда будет искушение, когда поджимает время (а разве бывает иначе?), слепить все «по-быстрому», однако надо быть настоящим счастливчиком, чтобы, не имея четкого плана, создать программный продукт, который можно будет в дальнейшем дополнять и обновлять.
Вы можете время от времени ощущать себя во власти блок-схем и диаграмм, но это лучше, чем код, хранящийся в корпоративной базе данных без какого-либо указания на то, как он работает и какую проблему он призван решать. Документирование радикально отличается от программирования, но это необходимый первый шаг на пути превращения идей в продукты. Следующим шагом может быть прототип, но смотрите на прототип как на продолжение документа, а не как на начало проекта. Прототипы служат для обоснования готовой концепции, в то время как программные продукты представляют собой реализацию готового проекта.
Оценка вашей производительности
Как программист вы привыкли измерять свою производительность числом работоспособных объектов, созданных вами в течение дня. Подобный метод оценки может стать причиной вашего провала как руководителя. Вы будете разочарованы и не удовлетворены тем, как вам приходится проводить время, пока не примете новый образ мышления. Как начальнику вам следует оценивать свою производительность объемом работы, которую выполняет ваш коллектив. Вы не можете оценивать этот объем каждый день, и это может стать серьезной проблемой, если вам требуются постоянные подтверждения того, что вы работаете хорошо.
Не оценивайте вашу производительность тем, насколько быстро вы можете перепрыгнуть от одного проекта (или сотрудника) к другому. Не теряйте из виду масштабные цели и оценивайте небольшие шаги, необходимые для успешного достижения цели. Не занимайтесь самообманом — пусть реальное положение дел диктуется фактами, а не вашим оптимистичным воображением. Не соблазняйтесь непосредственным удовольствием от кодирования; лучше поразмыслите, как помочь остальным получать это удовольствие под вашим руководством.
Как я уже упоминал, управление программистами и разработка программного обеспечения требуют серьезных размышлений. Добавьте к этому перечню настойчивость, качество, которое отнюдь не всегда присуще душе программиста, но оно в случае крайней необходимости может быть привито ей программистом-начальником. Примените часть этой настойчивости к самому себе — и вы обнаружите, что она нужна как программисту, так и его начальнику. Системность — внутренняя дисциплина, привнесенная вами в работу, — помогает быть настойчивым.
Если вы новичок в деле управления, не ожидайте, что почувствуете себя комфортно ранее, чем через 6 месяцев. Пусть этот дискомфорт напоминает вам о необходимости многому научиться, а также о том, что изучение новых способов быть полезным и чувствовать себя полезным требует времени, но за это воздастся в будущем.
Контролируйте свои слабости
Остерегайтесь, что ваши слабости как программиста заставят вас смотреть сквозь пальцы на тех в вашем коллективе кто похож на вас. Если вы сами не любили документировать и проектировать, прежде чем начать кодировать, тогда вы, вероятно, можете позволить другим этого не делать.
Тем не менее вам требуется осознать необходимость постоянно быть внимательным к своим недостаткам как программиста, поскольку нельзя прощать другим то, что вы могли бы простить себе. Это может выглядеть противоречиво, и так оно на самом деле и есть, так что продолжайте работу над исправлением своих недостатков как программиста, чтобы не заразить ваших подчиненных теми же слабостями.
Чтобы вам было легче преодолевать свои слабости, представьте себе, что многие люди прошли тот же путь, что и вы. Некоторые из них проложили на этом пути вехи для вас — это книги и иногда URL-адреса. Другими словами, для того чтобы заполнить пробелы в знаниях и/или опыте, рекомендую побольше читать. Вам нужно читать по многим причинам. Вот некоторые из них.
- Читайте, чтобы оставаться «на уровне».
Сюда можно отнести чтение отраслевых журналов, книг, посвященных вашему основному языку программирования, и журналов, касающихся методов, применяемых в вашей работе. Это вы должны делать почти каждый день, просто чтобы не потерять необходимые навыки. - Читайте, чтобы быть в курсе.
Такое чтение расширит ваши познания, причем некоторые из источников, используемых для сохранения вашей квалификации (чтобы оставаться «на уровне»), применимы и в этом случае. Здесь вам надо сфокусироваться на том, что, возможно, не требуется прямо сейчас, но может понадобиться в ближайшем будущем. Интернет-рассылки, форумы и прочие чудеса информационной эры могут быть необычайно полезными. Не забывайте, однако, что эра информации — это совсем не то же самое, что эра знаний. - Читайте, чтобы углубить свои знания.
Подобное чтение может быть сложным, но вы должны находить для него время, чтобы достичь более полных знаний по технологии и методикам, с которыми сталкиваетесь в своей повседневной работе. Здесь вам придется внимательно изучить книжные шкафы в вашей местной библиотеке, книжном магазине или Интернете в поисках книг, которые действительно могут помочь. Для того чтобы углублять свои знания, в выборе книг избегайте характерного для поваренной книги подхода к изложению. Вам нужно нечто большее, чем просто набор рецептов; вам нужно «откусывать больше того, что вы, как вам кажется, можете прожевать». - Читайте, чтобы стать мудрее.
Умные люди встречаются не только в нашей области. Другие научные дисциплины, а также художественная литература могут научить вас подходить к любому вопросу с разных сторон. Очень часто в нашей профессии мы ограничиваемся вертикальным мышлением. Вертикальное мышление подразумевает поступательное движение от одного логического умозаключения к следующему и отбрасывание того, что не укладывается в рамки заранее имеющихся у нас представлений о наиболее подходящем. Разностороннее мышление — это то, что приносит оригинальные идеи и зачастую является признаком гениальности.
Вы можете многому научиться у руководителей в различных областях, не только связанных с технологией. Расширьте ваши интеллектуальные поиски, включив в них области деятельности, в большей степени связанные с применением не технологии, а деловой хватки. Концентрировать усилия людей на решении бизнес проблем — ваша основная работа как начальника, а технология — это только одно из возможных решений. Вам нужно ознакомиться с другими путями решения проблемы, так что читайте книги, в том числе и не относящиеся к области технологии.
Учитесь у тех, кто проделал путь наверх до вас. Идите по их следам.
Ответы
-
Считаете ли вы, что предельные сроки завершения проекта — это рекламный прием, на самом деле не имеющий большого значения?
На самом деле сроки всегда имеют значение. Ваша компания может распространять программное обеспечение с целью продажи предоставляемых им услуг, и информация о товаре должна содержать описание его свойств. Даже если пользователи не задействуют все возможности вашего продукта, они должны быть представлены в рекламном буклете. Некоторым состоятельным клиентам может потребоваться лишь одна деталь, которая не нужна остальным, и ее поддержка программным обеспечением может стать причиной ощутимой выгоды. Маркетинг может оказывать опасное влияние на разработку программного обеспечения, однако он необходим. Даже если вы не хотите, чтобы весь цикл разработки определялся отделом продаж, все равно для вас он будет одной из движущих сил в определении даты окончания работы над проектом. Постарайтесь узнать продавцов поближе, стать их другом. Заслужите их доверие пунктуальностью и узнайте от них положение вашего продукта на рынке. -
Позволяете ли вы программистам самим принимать основные архитектурные решения, если вы слишком утомлены или заняты?
Вам, скорее всего, придется перепоручать принятие некоторого количества непростых решений, особенно в первые дни вашей карьеры руководителя. Это может сработать, особенно если вы руководите хорошими людьми, однако помните, что возможность перепоручить принятие решений есть у вас не потому, что вы устали, а потому, что лучшие решения могут рождаться не только в вашей голове. Отказ от принятия решения — то же решение. Пассивности на самом деле не существует, а если она имеет место, то скоро может потребоваться кто-то еще, кто бы мог делать вашу работу. -
Надеетесь ли вы, что ваши опытные программисты и без вас все сделают правильно, поскольку у вас просто нет времени на то, чтобы нянчиться с ними?
Этот вопрос тесно связан с предыдущим — и опять же: если вы руководите квалифицированными людьми, то им может не требоваться ваше постоянное внимание. Только не забудьте о том, что я говорил относительно ожидания результатов без проведения проверок. -
Полагаете ли вы, что при приближении срока сдачи проекта все проблемы в конце концов решатся?
Назовите это принятием желаемого за действительное или, на языке детей, ожиданием чуда. Как вы это ни назовете, полагаться на чудо опасно, и такая надежда обычно является результатом стресса. Многие видят в стрессе обычное жизненное явление, не всегда приводящее к пагубным эффектам. Стресс может быть мощным фактором, направляющим ваши усилия, если вы привыкли постоянно быть под напряжением и не сдаваться. Если вас не заводит ваша работа, возможно, вы выбрали не ту работу. Не бойтесь неудач, они когда-нибудь обязательно случаются; не бойтесь не успеть к сроку, это тоже когда-нибудь произойдет. Учитесь на своих ошибках; не научившись стойко переносить неудачи, вы никогда не будете знать, что делать с успехами. -
Считаете ли вы, что пользователи никогда не сделают ничего, что привело бы к программному сбою, просто потому, что у них не хватит ума для этого?
Это тоже вопрос принятия желаемого за действительное. Из программистов получаются плохие бета-тестеры — поскольку мы подсознательно знаем, что определенные функции при проверке «грохнутся», мы и не пытаемся их проверять. В конечном счете ошибки всегда проявляются, так что не позволяйте поспешности влиять на качество. Как руководителю проекта вам стоит самому включиться в рабочий процесс на этапе альфа тестирования, дабы выявить небрежности в программировании. -
Предпочитаете ли вы при управлении коллективом искать консенсус, даже если это требует массы времени и терпения?
Я коснулся этого вопроса в конце предыдущей главы, а в этой подробно осветил роль времени и необходимость сохранять терпение, поэтому полагаю, что ответ очевиден. Если ваша интуиция вас иногда подводит, скажу прямо: консенсус должен быть вашей постоянной целью, и вы должны делать все, чтобы его достичь. Более подробное обсуждение этого вопроса вы можете найти в главах 5 и 6. -
Считаете ли вы электронную почту эффективным средством общения при работе над проектом?
Ну конечно, она таковым не является, но если ваш коллектив пространственно разделен, она иногда остается единственно доступным средством общения. Совместное редактирование документа куда проще, чем запутанная переписка по электронной почте, однако электронная почта необычайно удобна, поэтому люди в первую очередь стремятся использовать именно ее. Только убедитесь, что у вас не накапливается непрочитанных сообщений, — лучше всего создать из них один документ, содержащий все, что имеет отношение к разработке. -
Согласны ли вы проговорить по телефону несколько часов кряду, только чтобы убедиться, что все идет как надо?
Через это надо пройти. В вашей работе телефон — необходимое зло, если только все, с кем вы работаете, не находятся от вас дальше предела слышимости. В некоторых случаях телефон — ваше единственное средство проведения ежедневных проверок. Программы общения в режиме реального времени, наподобие ICQ, иногда заменяют телефон, но отнимают слишком много времени. -
Считаете ли вы, что с помощью комитетов невозможно выработать адекватные бизнес требования?
Иногда комитеты и комиссии бесполезны, но обычно в большой и сложной организации они необходимы. Теперь, когда вы стали ответственным лицом, вам, возможно, предстоит быть членом или председателем большего числа разнообразных комитетов и комиссий, так что будет лучше, если вы научитесь их использовать. При удачном стечении обстоятельств комиссии могут быть мощным средством объединения интеллектуальных ресурсов, так что не надо недооценивать их значение. Как-никак, ни один человек не обладает всей необходимой информацией, а без знания бизнес требований ваше программное обеспечение сгодится разве что для забавы. -
Считаете ли вы себя самым умным программистом в компании?
Возможно, вы ответили на этот вопрос положительно. Причиной его задать было желание помочь вам побороть свое самомнение. Всегда, когда это возможно, старайтесь окружать себя теми, кто умнее. Никогда не обманывайте себя надеждой, что вы единственный, у кого есть все ответы. В конце концов, любое, даже самое оригинальное мышление — это просто химические процессы в мозгу, и чьи то молекулы всегда могут быть лучше ваших. -
Чувствуете ли вы ревность и страх, когда смотрите на действительно хороший код, который написан не вами?
Это вопрос ловушка. Если вы гордитесь тем, что делаете, то вполне нормально чувствовать легкую ревность при виде чего-то, что сделано кем-то лучше. Под маской этой ревности обычно скрывается страх, что вас перехитрили или, что хуже, кто-то достиг чего-то, чего вы даже не в силах понять. Этот вид внутреннего эмоционального состояния «не вовлеченности» часто поражает целые отделы. Осознайте эти ощущения и их причину и двигайтесь дальше. Ваша работа — качественно и в срок завершить проект, поэтому используйте все, что может помочь вам в этом. -
Делаете ли вы все возможное, чтобы успеть закончить проект в срок?
Это возвращение к первому вопросу. Несоблюдение сроков может нанести убытки вашей компании и похоронить вашу карьеру. Нужны ли здесь еще какие-нибудь слова? Да. Лейтмотивом хорошего руководства разработкой программного обеспечения является прилежание, бдительность, внимание к деталям. Определение крайнего срока лежит в рамках этих составляющих руководства. Вы, может быть, вспомните, как Скотти из «Звездного пути» заслужил свою репутацию уникального работника, и примените схожий метод. Только не умножайте вашу исходную оценку времени, необходимого для завершения работ, на произвольное число, а назовите вашим людям какую нибудь вымышленную дату, предшествующую дате, которую вы сообщите отделу тестирования. Чем больше вы будете практиковаться в оценке сроков, тем больших успехов вы достигнете в этом виде искусства.
Что дальше
Есть ли секреты в управлении самим собой? Я не знаю ни одного, но точно знаю, что мое определение «сделаю все, что смогу» в контексте руководства программистами имеет другое значение. Эти слова означают приложение максимума усилий — их можно оценивать каждодневно, успех же иногда приходит только в самом конце.
Так что если секрет и есть, то он таков: каждый день проверяйте себя как руководителя и старайтесь стать лучше уже на следующий день.
Ваш перечень вопросов к самому себе мог бы выглядеть так:
- Подвергаю ли я качество своего управления ежедневной оценке?
- Действительно ли я с каждым днем руковожу все лучше или я постоянно откладываю совершенствование стиля и сути моего управления на потом?
- Нравится ли мне то, что я делаю?
- Теряю ли я попусту время при выполнении своих служебных обязанностей?
- Оцениваю ли я свою производительность тем, сколько сделали мои подчиненные под моим руководством, или у меня есть ощущение, что сам я не сделал ничего?
- Как мои слабости дали себя знать сегодня (по отношению ко мне самому или другим)?
- Чему я научился сегодня, чтобы оставаться в курсе, чтобы быть осведомлен ным, чтобы углубить и расширить свои знания?
Вы не достигнете совершенства ни сегодня, ни назавтра, ни, возможно, в течение всей вашей жизни, но вы можете сделать максимально эффективными свои усилия, направленные на самосовершенствование, делая все, что нужно, ежедневно.
Глава 3 • Как вести стаю за собой
Как справиться с административными функциями
Координация информационных потоков — это тот род деятельности руководителя, который требует отдельного рассмотрения. Как вы, я надеюсь, помните, согласно методике объектно-ориентированного (ОО) анализа и проектирования, для формулирования проектного решения и разрешения проблем, связанных с конструированием программного продукта, вы должны иметь в виду три перспективы. Если хотите освежить память, взгляните на табл. 3.1.
Перспектива | Назначение |
---|---|
Бизнес | Анализ восприятия информации и процессов пользователем |
Спецификация | Анализ публичных свойств интерфейса объекта |
Реализация | Все внутренние детали объекта, обеспечивающие его функционирование |
А теперь попробуйте привязать эту объектно-ориентированную концепцию к вашему повседневному общению с различными подразделениями компании, направленному на решение программных и управленческих задач. Вероятно, у вас получится своего рода программа интеллектуального анализа, похожая на показанную в таблице.
Таблица 3.2. Административный фильтр
Перспектива | Инструмент | Назначение |
---|---|---|
Бизнес | Глаза и уши | Сбор информации, необходимой для координации программных задач |
Спецификация | Организация | Систематическое отслеживание ожидаемых от вас результатов (в качестве единицы систематизации можно выбрать, например, проект или технологическую область) |
Реализация | Углубленный анализ | Дотошное выявление всех подробностей, составляющих ожидаемый результат |
Все поступающие сведения на первый взгляд кажутся важными, однако без фильтра не обойтись. Смысл этого фильтра можно выразить одним словом: ФОКУСИРОВКА
Если уж у вас есть задача организовать производство программного продукта, то остальные сведения, отвлекающие от этой задачи, независимо от того, насколько важными они кажутся, нужно отложить.
Учитесь систематизировать те действия, которые вам рано или поздно придется выполнить, но не забывайте о том, что ваша главная задача — выпустить программный продукт. Иногда человеку, который обратился к вам с просьбой, полезно быстро ответить и, соответственно, дать знать, что вы его просьбу получили. Но при этом ответ должен выглядеть примерно так: «Я обязательно включу вашу проблему в график и позже рассмотрю, но в данный момент у меня очень много обязательств, и пока что я не могу этого сделать».
Не нужно разглагольствовать о лидерстве — вы обязаны показать программистам решимость выпустить общими усилиями качественный код.
Фокусироваться — значит расставлять приоритеты среди тех сведений, которые претендуют на значимость наравне со сведениями, действительно значимыми для завершения текущих проектов.
Ко времени, выделяемому на решение административных задач, нужно относиться так же трепетно, как и ко времени, выделяемому на кодирование.
Как не отвлекаться на раздражители
Не позволяйте своему почтовому ящику влиять на ваш распорядок дня. Позволив почте влиять на повседневные приоритеты, вы рискуете потерять концентрацию.
Еще один дьявольский инструмент уточнения — служба мгновенных сообщений. Пользоваться ею нужно с умом. Не тратьте на нее свое время впустую и не позволяйте ее значку на рабочем столе постоянно отвлекать вас от дела.
Одна из главных ваших обязанностей заключается в том, чтобы приучить сотрудников концентрироваться на работе.
Лучше всего еженедельно назначать всем программистам перечни задач, аннотируя их приоритетами и сроками завершения. Поскольку цикл разработки всегда отличается непостоянством, перечни эти могут меняться каждую неделю, а иногда — даже каждый день. Ответственность за составление и корректировку этих списков ложится, опять же, на вас.
Попросите каждого сотрудника в письменном виде сформулировать его текущие задачи. Это очень эффективный прием — вы не только узнаете, что программисты думают о своих обязанностях, но и составите представление о том, как руководство осуществлялось ранее. Просмотрев перечни задач, составленные самими сотрудниками, вы сможете оптимизировать их функции. Однажды приняв решение о руководстве методом перечней задач, вы не сможете от него отказаться. Все будут ждать новых заданий, и чем последовательнее вы себя проявите в деле их назначения, тем очевиднее станут ваши лидерские навыки.
Перечень задач — это лишь первое звено в процессе ведения стаи в нужном направлении. По меньшей мере раз в неделю, а то и каждый день вам придется доносить до сотрудников дополнительные сведения, инструктировать их и помогать двигаться к намеченной цели, соблюдая при этом установленные временные ограничения.
Когда проект разрастается
Когда программисты берутся за оценку объема кода реализации какой-либо функции, результаты неизменно оказываются заниженными. Этому есть множество возможных объяснений. В этом контексте следует понимать, что их оптимизм есть относительно прогнозируемая функция состояния проекта
Watts S. Humphrey, Managing the Software Process (New York: Addison-Wesley, 1989)
Многие программисты соглашаются с двумя соображениями относительно проводимых ими первоначальных оценок, согласующихся с принципом Хэмфри; я сформулирую их в виде аксиом:
- любой процесс продлится дольше, чем вы надеетесь
- всегда появляется что-то, о чем вы не подумали
Помните, что лидерство происходит от сердца, а не от ума.
Чем больше опыта вы наработаете в деле выявления деталей плана проекта, тем точнее вы сможете оценить время работы над проектом и тем больше вы будете убеждаться в том, что разрастание рамок проекта происходит в результате недоработок специалистов, отвечающих за планирование.
Каков механизм совершенствования навыков временной оценки? Он очень прост — поначалу вам предстоит неоднократно нарушать утвержденные графики сдачи проектов, но, в конце концов, вы научитесь им соответствовать. Практика эта довольно нервозная и даже угрожающая вашему карьерному росту. Возможно, это не лучший способ самосовершенствования, но что можно утверждать со всей определенностью, так это то, что в области управления проектом опыт играет огромную роль.
Как объединить усилия тех, кто гуляет сам по себе
Пока что запомните один замечательный принцип: творчество бесценно, а вот практичный и удобный в сопровождении код можно не только оценить, но и продать. В ваши обязанности как руководителя входит координация деятельности программистов, направленная на достижение максимальной функциональности за счет минимального объема кода. Усложнение — это то, с чем вам предстоит вести постоянную борьбу.
К понятности кода придется идти мелкими шажками — благо, скорее всего, вам предстоит бороться со смертными грехами программистов, такими как:
- недостаточное функциональное разделение при создании объектов и стыковке логических уровней
- непродуманные интерфейсы объектов
- чрезмерная взаимозависимость объектов
- пристрастие к усложнению внутреннего устройства объектов
Мы, программисты (впрочем, как и все человеческие существа), имеем обыкновение совершать ошибки, лицезреть их последствия и только после этого искать лучшие пути достижения тех же целей — так мы учимся.
Опасность!
У руководителя есть еще одна цель: состоит она в том, чтобы разрушать новые (и даже старые) границы, открывая при этом новые пути в программировании, — те, по которым ранее никто не додумался пройти. Имейте в виду, что невежество очень опасно. Самое страшное — это когда человек упорствует в своем невежестве, выдавая его за принцип; такое поведение иначе как глупостью не назовешь.
Готовность к постоянному углублению своих знаний есть одна из самых выгодных черт руководителя. Если это не про вас, советую переосмыслить ваши рабочие обязанности или поискать новую работу. Дело в том, что в условиях постоянного изменения технологий вы должны быстро схватывать новые идеи и трезво оценивать их достоинства.
Как сформировать команду и как ее поддерживать
Еще одна неотъемлемая черта хорошего руководителя — это умение находить хороших сотрудников. Имейте в виду, что подчиненные судят о ваших лидерских качествах исходя из того, каких новых специалистов вы приводите и от каких избавляетесь.
Как нанимать сотрудников
Далее я привожу ряд факторов, которые обязательно нужно учитывать при поиске новых программистов.
- Заставьте кандидата выполнить тестовое задание.
- Обязательно проводите устную проверку навыков кандидата.
- Если вам удастся убедить кандидата в том, что ему следует пройти сетевой тест оценки личности, зная, что возможности такого рода проверки весьма ограничены, значит — действуйте.
- Составьте письменное описание предполагаемых функций кандидата и попросите его ознакомиться с ними непосредственно во время интервью.
- Не ограничивайтесь одним интервью.
Учиться нужно при любой возможности и на любом примере.
Нанимать умных людей недостаточно — их нужно нанимать с умом!
Как увольнять сотрудников
Увольнение — это обратная сторона найма. Она в не меньшей степени выражает ваши лидерские качества. Один-единственный некомпетентный или просто проблемный сотрудник способен разрушить всю команду. При отсутствии ограничений правового характера не стесняйтесь — если человек не попытался исправиться, смело увольняйте его.
Бездействие — то же действие, причем отрицательного характера. Не забывайте, что с тем, кто боится принимать решения, когда ситуация совершенно ясна, случаются большие неприятности.
Кроме того, обязательно обдумайте влияние сокращения отдельного программиста на всех остальных сотрудников отдела.
Денежное поощрение и продвижение сотрудников по службе
Есть такая закономерность: чем моложе сотрудник, тем большее рвение он проявляет в погоне за высокой должностью. У людей постарше другие приоритеты — им нужна интересная работа и хорошие деньги. Если сотрудник хочет всего вместе значит — он либо действительно этого заслуживает, либо несколько неадекватно оценивает свои способности.
Некоторые считают, что чем больше обязанностей выполняешь, тем больше денег получаешь. В некотором отношении это так. В то же время следует помнить, что жалование нужно увеличивать в ответ на повышение продуктивности и эффективности выполняемой работы, а не просто за расширение рамок проекта и распределение обязанностей между подчиненными.
Возможно, они стоят значительно большего, чем получают в данный момент. Вероятно, они должны получать в пять или даже десять раз больше, чем среднестатистический разработчик... Чего на самом деле стоит человек, который «спас» проект? Для того, чтобы ответить на этот вопрос, имеет смысл оценить последствия, которые могли бы наступить, если бы такой сотрудник перешел в другую компанию».
Pete McBreen, Software Craftsmanship (New York: Addison-Wesley, 2001)
Скорее всего, вы слышали о классическом треугольнике «дешево — быстро — качественно» применительно к процессу разработки программных средств. Так вот, из этих трех качеств сочетаться могут только любые два.
Как готовить преемника
Выстраивая свой стратегический план, вы должны постоянно учитывать такие возможности и искать людей, способных время от времени подменять вас. Это помогает, с одной стороны, выявить сотрудников, заслуживающих более широкого круга обязанностей, с другой — определить набор высокоуровневых организационных задач, которые можно с уверенностью делегировать другим.
Нужно стремиться к повышению компетенции персонала, с тем чтобы, переходя от одного проекта к другому, специалисты не теряли темп работы и концентрацию. С вашей стороны для достижения этой цели потребуется серьезное планирование, но, по большому счету, проблема эта не нова — думать о том, как распределить задачи между программистами, руководитель должен постоянно. Некоторые легко переходят от задачи к задаче, у других такой мобильности не получается. Изучайте сильные и слабые стороны своих подчиненных и пользуйтесь этими знаниями в интересах общего дела.
Ну хватит уже!
В любом случае команда значительно более продуктивна, чем отдельный человек, — каким бы талантливым и работоспособным он ни был.
Цель руководителя — сформировать группу сотрудников, способную последовательно проводить в жизнь крупные проекты. Мощь и энергия группы накапливается путем совершенствования руководящих навыков.
Если попробовать свести содержание этой главы к нескольким четким и удобоваримым принципам, получится, что руководитель:
- расставляет приоритеты и борется с раздражителями (фокусируется на поставленных задачах)
- совершенствует свои навыки в области руководства проектами и прорабатывает все их детали
- пресекает низкое качество кодирования, пока оно не пустило в проекте корни
- стремясь по достоинству оценивать технологические новинки, учится быстро усваивать неизвестную информацию
- благоразумно относится к кадровому обеспечению и понимает, что именно от людей зависит конечный успех проекта
Что дальше
Для четкой постановки задач и их решения зачастую требуется пройти довольно болезненный этап изменения своих привычек. Прежде чем менять свои действия, нужно исправить мышление; иначе без активных действий вы рискуете превратиться в руководителя-теоретика.
Глава 4 • Как организовать успех
Первоочередная задача и желательный результат деятельности любого хорошего менеджера заключается в обеспечении условий для достижения успеха подведомственной ему группой разработчиков.
- менеджер действительно должен следить за тем, чтобы все текущие задачи своевременно исполнялись;
- лидер же, помимо решения повседневных задач по повышению продуктивности сотрудников, концентрируется на стратегических задачах своей группы и не ограничивает себя соблюдением контрольных сроков.
- менеджеры иногда погрязают в хитросплетениях своей работы;
- лидеры, напротив, всегда стремятся разработать новые приемы, позволяющие подчиненным брать все более высокие планки.
Организованный менеджер сам создает для себя условия, в которых лидерские качества начинают расцветать.
Нарабатывая личностные и профессиональные организационные навыки, никогда не забывайте о конечной цели, — она состоит в том, чтобы заставить время работать на вас, а не против вас.
Как превратить информацию в знания и действия
Все ваши действия правомерно рассматривать как отдельные проекты по преобразованию информации в знания и действия.
Удобное рабочее место является предпосылкой успешной, продуктивной работы. Вы прекрасно знаете, что неупорядоченный код существенно затрудняет процесс разработки и сопровождения программного продукта; аналогичным образом неприбранный рабочий стол доставляет руководителям немало неприятностей. Под «неприбранностью» я в данном случае имею в виду бессистемность в деле организации ваших повседневных задач, которая произрастает от неверного управления информационным потоком.
Бумажная волокита
-
Безбумажная волокита
-
Как выработать собственные навыки администрирования
Необходимо всегда иметь в виду, что в процесс вашей повседневной деятельности постоянно будут вмешиваться разного рода проблемы, которые придется решать дополнительно к выполнению ваших непосредственных функций. Повышая уровень своей личностной организации, вы фактически сокращаете сроки исполнения своих первоочередных заданий.
Ключевую роль как в чисто внешнем, так и в фактическом аспекте лидерства играет эффективная и стройная система администрирования.
Как организовать контроль
Мне хочется, чтобы вы осознали важность проблем, связанных с контролем, и поняли, что самоорганизация, направленная на достижение результата, заключается в достижении максимального контроля над рабочей ситуацией.
Подконтрольные области | Неподконтрольные области |
---|---|
Методы и действия, направленные на упорядочение и систематизацию информации | Потребность окружающих людей делиться с вами информацией |
Распределение конкретных задач между сотрудниками отдела | Выбор проектов, над которыми вам предстоит работать. Проекты могут нравиться или не нравиться, но работать нужно со всеми |
Архитектура программного обеспечения | Коммерческие задачи, решение которых ложится на ваши плечи |
Время, фактически выделяемое на выполнение заданий | Время, которое вы должны уделить решению задач в соответствии с внешними ожиданиями |
Ваши ожидания относительно собственной продуктивности | Ожидания окружающих относительно вашей продуктивности |
Ваше отношение к трудным с точки зрения общения людям | Трудные в общении люди, непосредственно вам не подчиняющиеся |
Информационный поток
Все мы живем в информационную эпоху, в которую для успешного производства программного обеспечения необходима способность концентрироваться на решении той или иной коммерческой задачи. Процесс этот предполагает анализ информационного потока, проходящего через компанию и относящегося к определенным коммерческим потребностям, и усвоение этой информации.
Столкнувшись с новым информационным блоком проекта, задайте себе несколько вопросов.
- Как новые данные отражаются на области действия проекта, на проектном решении, на конечном сроке сдачи проекта?
- Надежен ли источник информации; если нет, то можно ли его проигнорировать?
- Следует ли реагировать на поступление информации незамедлительно или можно немного подождать?
- Где и как сохранить информацию с тем, чтобы при необходимости к ней можно было бы оперативно обратиться?
- Каков срок действия информации? Когда она становится неактуальной?
- Как данная информация соотносится с тем, что уже известно о проекте?
Эти и подобные вопросы направлены на систематизацию данных. Систематизируя данные, вы обретаете контроль над ними, и, соответственно, они теряют контроль над вами.
Назначение заданий
- Не зная индивидуальных пристрастий сотрудников, вы не сможете обеспечить их заинтересованность.
- Помните, что качественный код пишут заинтересованные программисты.
- Впрочем, у дисциплинированных программистов код получается еще лучше.
Сделать программистов счастливыми не всегда в ваших силах (в конце концов, это не ваша работа), однако сформировать из своих сотрудников дисциплинированную группу, готовую к работе над трудными проектами, вы можете. Для этого необходимо поддерживать разнообразие функций, которые они регулярно выполняют.
Архитектура
Контроль над программной архитектурой, применяемой в компании, в значительной степени определяет успешность конечного результата вашей деятельности.
Рабочие часы
Постарайтесь находить баланс между тенденцией к переработке и щадящим распределением времени. Повышение дисциплины устраняет необходимость в переработке, и, таким образом, к удлинению рабочего дня приходится прибегать все реже. Именно в этом состоит одна из многочисленных задач высокоорганизованной административной деятельности — повысить эффективность работы в стандартные рабочие часы и тем самым сократить переработку.
Восстановление после года напряженной работы проходит значительно болезненнее и занимает значительно больше времени, чем усилия по самоорганизации в роли менеджера.
Ожидания
Держать чужие ожидания относительно себя самого под контролем вы сможете лишь в том случае, если будете благоразумны в своих обещаниях.
Некоторые обещания, которые мы даем окружающим людям, на первый взгляд, и не кажутся таковыми. Иногда мы даем их, сами того не сознавая. Чего стоят выражения типа «я тебе перезвоню позже», «я подъеду к тебе на работу», «на следующей неделе я вышлю тебе экземпляр моей книги», «я с удовольствием куплю ее тебе», «если тебя понадобится сменить, дай мне знать». Даже невинные в первом приближении фразы типа «без проблем» представляют для сказавшего некоторую опасность — дело в том, что их часто воспринимают как предложение выполнить некоторое действие, хотя на самом деле вы либо не хотите этим заниматься, либо не располагаете для этого достаточными ресурсами. Фактически, сказав так, вы позволили собеседнику высказать к вам более серьезную просьбу, чем раньше, — ведь это не проблема!
Richard Carlson, Don’t Sweat the Small Stuff at Work (New York: Hyperion, 1998), p. 74.
Пока что запомните: дать отпор несбыточным ожиданиям можно за счет ваших организационных способностей. Обязательно уточняйте, что от вас хотят. Если ваш начальник темнит относительно того, чего он от вас ожидает, поднажмите на него, заставьте четко сформулировать требования. Без четко определенных исходных данных добиться успеха в области конструирования программных средств невозможно. Организованность в этом процессе есть лучший способ избежать ситуаций, при которых первая версия продукта оказывается для остальных подразделений компании неожиданным и нежелательным сюрпризом.
Взаимоотношения
Контролировать проблему трудно, но контролировать отношение к проблеме в ваших силах.
Поскольку самые трудноразрешимые и далеко идущие проблемы, которые приводят к дезорганизации, порождаются самими людьми, конструктивный подход к решению проблем персонала представляется мне основной предпосылкой успешной организаторской деятельности.
Как повысить организованность в масштабах всей компании
Для того чтобы преуспеть в области лидерства, вы должны стать хорошим руководителем проекта.
Руководство продуктами
То время, когда сногсшибательный программный продукт могли создать двое или даже один программист, ушло в историю. В современном мире программное обеспечение из категории занимательных новинок перешло в категорию продуктов первой необходимости.
Классический процесс следует направлять таким образом, чтобы все сотрудники компании в своей деятельности руководствовались едиными коммерческими задачами и решениями.
Определение проекта
Прежде конструирования нужно тщательно определить и структурировать процессы, реализуемые в рамках проекта.
Помните, что ваши ресурсы ограничены; соответственно привыкайте к тесному сотрудничеству с другими подразделениями вашей компании.
Руководство процессами
В рамках общей, единой для вашей компании стратегии вы должны руководить процессом определения продуктов и проекта.
Изменения делятся на два основных типа: намеренные и случайные. Изменения, относящиеся к первому типу, обычно планируются; вторые же, как правило, непредсказуемы. Если вы ориентированы на успех, старайтесь тщательно управляться с намеренными изменениями — тогда вы сможете получить определенный контроль над случайными изменениями.
Деятельность по организации изменений нужно вести на всех этапах разработки — от зарождения замысла до завершения.
Чтобы выявить подводные камни изменений, достаточно задать ряд простых вопросов. Имейте в виду: задавать их следует применительно к любой предполагаемой модификации продукта.
- Каким представляется воздействие изменения на архитектуру системы и процесс сопровождения?
- Как предполагаемое изменение воздействует на сетевую инфраструктуру, в которой оно будет проводиться?
- Как предполагаемое изменение повлияет на способность пользователя эффективно и продуктивно взаимодействовать с данным программным продуктом?
- Какое влияние предполагаемое изменение окажет на действия сотрудников отделов, которым его придется испытать на собственной шкуре?
Получив ответы на все эти вопросы, считайте, что вам удалось наладить процесс организации изменений, и исходя из результатов в рамках разработки программного продукта можно будет уже принимать те или иные решения.
Тестирование
Ни один человек не способен в одиночку адекватно оценить последствия побочных изменений в программном продукте.
Руководство инфраструктурой
Для того чтобы программисты достигали в своей деятельности определенных успехов, у них должна быть возможность, с одной стороны, некоторое время поработать в коллективе, с другой — пораскинуть мозгами в полном одиночестве.
В распоряжении любого программиста должен быть быстродействующий компьютер с максимально возможным объемом памяти. Кроме того, программисту нужна тестовая машина, воспроизводящая стандартные характеристики пользовательских компьютеров.
В конце рабочего дня
Каких бы высот по части организованности вы ни достигли, чувства усталости и переутомления не избежать. Таков уж характер деятельности менеджера. Производство программных средств, руководство людьми и лидерские функции в их среде, равно как и все другие действия, осуществляемые руководителем, иногда приводят его в состояние прострации.
- Допускают ли ваши собственные рабочие условия оперативность при превращении информации в действия? Если нет, постарайтесь систематизировать делопроизводство в соответствии с рекомендуемыми методиками в этой области — так, чтобы, помимо просто руководства, вы могли взять на себя лидерские функции.
- Работайте над теми сферами своей деятельности, которые поддаются контролю, и смиритесь с тем, что некоторые из сфер неконтролируемы.
- Наладив активное взаимодействие с другими отделами, всеми силами способствуйте повышению организационного уровня компании в целом. Держите дела в своем отделе под контролем и будьте в этом отношении примером для других руководителей.
Большие задания следует дробить на более мелкие и лучше управляемые. Вооружившись этим подходом, можно с готовностью приниматься за решение глобальных задач. Иначе говоря, выводите вторичные задачи, которые предусматривают возможность решения в течение одного непрерывного промежутка времени. Так вы сможете организовать свои временные ресурсы и решать по одной задаче за раз. Ничто так не поднимает уровень самооценки, как наличие структурированного плана и его последовательное выполнение. Уверенность в своих силах, в свою очередь, приводит к достижению успеха, снижению стрессовых нагрузок и к удовлетворению собственной деятельностью, подпитываемой помощью в достижении результата окружающим вас людям.
Что дальше
-
Глава 5 • Как вести совещания
Еженедельные совещания
Нужно придерживаться на совещании четкой повестки дня.
- Что вы делали на прошлой неделе?
- Что вы собираетесь делать на этой неделе?
- Что мешает вам выполнить ваши задания в назначенное время?
Во время совещания делайте акцент на понятии «объектов поставки». Этим понятием обозначаются характеристики или продукты, поставляемые вашими подчиненными программистами для публичного потребления. Избегайте призрачных намеков на результат. Не надо говорить программистам о том, что они должны «исправить ошибки» или «внести некоторые доработки».
В конце концов, над результатом работает вся группа, а ваша цель заключается в том, чтобы ставить планки и проверять результаты.
Еженедельно выискивая пути углубления кооперации между сотрудниками, вы формируете полноценную команду.
Время от времени сотрудников следует ненавязчиво сдерживать или, напротив, побуждать к активным действиям. Если вы хорошо разбираетесь в своих подчиненных, то те действия корректирующего характера, которые вам предстоит предпринять, подскажет ваша интуиция. Эта роль напоминает позицию родителей по отношению к своим подросткам-отпрыскам.
Проектные совещания
Разрабатывать все самому не имеет особого смысла — ведь тогда коллеги программисты не смогут ощущать себя соучастниками творческого процесса.
Так как же стать блистательным лидером проектной группы, если в данный момент вы таковым не являетесь? Без мыслительной деятельности и постоянной практики ничего не выйдет.
Рассмотрим, однако же, некоторые проблемы и явления, наблюдаемые на стандартном проектном совещании.
- Ваша задача — сделать так, чтобы все функции были корректно спроектированы и впоследствии качественно разработаны.
- У каждого участника группы могут быть собственные представления относительно проектного решения одной и той же функции.
- Программисты склонны проектировать лишь те функции, которые они могут или хотят разрабатывать.
- У некоторых программистов могут быть планы, отличные от ваших; трудно выявляемые, такие бунтари способны привести к саботажу совещаний.
- Единодушная поддержка сотрудниками высказанных вами идей (если только они не объективно гениальны) наводит на грустные размышления.
- В процессе проектирования вы обязаны пытаться достичь консенсуса — это трудная задача, но усилия, поверьте мне, окупаются. Достичь компромисса несколько легче, но если кто-то выступит со своей вымученной идеей и не получит поддержки, вы рискуете создать себе врага.
Обратите внимание на следующие рекомендации:
- Вы должны знать сильные и слабые качества участников своей команды. Не менее важно осознавать собственные достоинства и недостатки. Именно об этом я говорил в первых трех главах книги.
- Документацию с требованиями имеет смысл разбить на разделы по схожей функциональности, допускающие решение средствами объектно-ориентированного проектирования.
- Делайте заметки. Если можете себе это позволить, заведите электронное табло. Зафиксируйте совещание на видео, а после создания первого черновика проектной спецификации покажите отснятый материал членам группы.
- Подключите ноутбук к большому монитору и демонстрируйте сотрудникам группы примеры готового кода, указывая на те его аспекты, которые считаете удачными или, напротив, неудачными.
- Работайте в удобном и изолированном от шума помещении. Делайте перерывы, чтобы усталость организмов присутствующих не мешала деятельной работе их мозгов.
- Составьте план действий на каждый день; при необходимости вносите в него коррективы и отталкивайтесь от него в деле реализации проектных заданий. Отведите последний день на критический обзор и обобщение результатов совещания.
Совещание без реализации принятых решений на практике есть не более чем потеря времени.
Следует быть готовым к непреодолимому желанию тоже поучаствовать в процессе генерации идей, однако имейте в виду, что ваша основная задача — справляться с отбором предлагаемых идей, а не генерировать свои.
Дипломатия — это искусство выслушивать, прежде чем говорить, думать, прежде чем предлагать, и постоянно искать консенсус.
Основная предпосылка к достижению желаемого результата — сильное желание. Стремление добиться общего для всех участников группы успеха вы должны ставить выше искушения выиграть случайный спор. Запомните, выиграть спор невозможно! В условиях командной работы все вместе либо выигрывают, либо проигрывают.
Основной целью проектного совещания является выработка консенсуса. Консенсус достигается за счет синтеза идей. Что я понимаю под синтезом? Это процесс, в ходе которого путем проработки конкурирующих идей выкристаллизовываются их наилучшие качества.
История. Из этой истории мы можем сделать несколько выводов.
- Прошлые достижения отдельного сотрудника группы совершенно не гарантирует успешной деятельности группы в целом.
- Формированием группы должен заниматься только ее руководитель. В этом отношении он должен пользоваться полным доверием своего начальника.
- Нельзя оценивать потенциал сотрудника, отталкиваясь только от его последних достижений.
- Необходимо тщательно изучить весь опыт его работы.
- Некоторые люди просто не способны работать в команде, и не стоит заставлять их учиться этому. Возможно, они просто не подходят для работы в вашей компании.
Беседы один на один
К встречам один-на-один следует относиться с не меньшей серьезностью, чем к любым другим разновидностям совещаний. Планируйте их, делайте заметки и учитывайте специфику межличностных отношений с конкретным сотрудником. Результатом беседы должна стать выработка плана действий. Положительных эмоций, почерпнутых от общения с хорошим человеком, в данном случае недостаточно.
Дисциплина — это одно из тех качеств, которое вам как лидеру постоянно придется совершенствовать.
Специалисты — это ваш самый ценный ресурс. С другой стороны, они способны создавать самые неприятные проблемы. Следовательно, построение устойчивых, профессиональных отношений с подчиненными есть залог вашего преуспеяния в роли лидера. Остерегайтесь переводить отношения с сотрудниками на личностную основу. Это довольно трудно — в конце концов, любое общение между двумя людьми проходит на личностном уровне. Тем не менее в общении с сотрудниками вы должны поддерживать профессиональную направленность, подкрепляя тем самым свое лидерское положение.
Любой критический анализ () субъективен по своей сути, что, впрочем, нисколько не умаляет важности этого процесса. Исполняя роль лидера, вы должны постоянно наблюдать за результатами сотрудников. Один из вариантов оценки продуктивности сотрудника предполагает еженедельный сбор информации о результатах его работы.
Решать проблемы по мере их появления, на ранних этапах значительно эффективнее, чем биться с проектом, разъедаемым проблемами, не выявленными вовремя.
Совещания с другими группами
Всегда обрисовывайте ваш отдел в идиллических тонах. Никогда не сваливайте вину за срыв сроков на своих подчиненных. Выслушивая похвалы, считайте, что вам повезло, но реагируйте на них скромно и достойно; делайте акцент на том, что если бы не ваша команда, никаких достижений не было бы в помине. Хотите высказать сотруднику свои претензии — ради бога, но только в приватной обстановке.
Одна из основных ваших задач в процессе взаимодействия с другими группами заключается в том, чтобы обеспечить своевременное получение бизнес-требований в как можно более завершенном состоянии.
Этапу описания продукта следует уделять не меньше времени, чем этапам проектирования и программирования.
Учитесь организовывать сотрудничество технологии и бизнеса; при этом не забывайте, что доминирующую роль в этом союзе играет именно бизнес.
Ретроспективные совещания
Степень эффективности и успеха ретроспективных совещаний обусловливается безопасностью сотрудников. Под безопасностью я имею в виду защищенность сотрудников от критики в рамках их группы. Лишь при таком условии они смогут обсуждать собственные результаты и даже признаваться в том, что поставленных целей можно было достичь по-другому, более оптимальными способами — иначе говоря, учиться анализировать выполненные проекты. Безопасность необходимо культивировать и поддерживать. Несмотря на то, что, по большому счету, безопасность выражает ответственность всех участников ретроспективного совещания, его руководитель призван создавать условия для безопасности, следить за ее поддержанием и контролировать это ощущение. Чтобы сотрудник чувствовал себя в безопасности, он должен быть уверен, что за проявленную честность он не получит по ушам (например, не нарвется на отрицательную оценку во время следующего критического обзора). В ходе ретроспективного совещания не обойтись без постоянного и должным образом поощряемого взаимодоверия.
Norman L. Kerth, Project Retrospectives (New York: Dorset House Publishing, 2001)
Проведя ретроспективное совещание в «безопасном» формате, вы получаете хорошие шансы почерпнуть довольно существенные сведения относительно недавно завершенного проекта. Эти знания, в свою очередь, позволят вам усовершенствовать процесс разработки. Необходимость соблюдения на ретроспективных совещаниях ощущения безопасности связана с тем, что иногда сотрудникам на них приходится отвечать на неприятные вопросы.
В ходе ретроспективного совещания, помимо прочего, полезно определиться с ответами на нижеследующие вопросы.
- Насколько четко была сформулирована спецификация продукта? Другой вариант того же вопроса: не случилось ли так, что в силу многократного пересмотра спецификации этап проектирования пришлось отложить на слишком долгий срок?
- Нашлось ли у вас время на макетирование проектного решения или же вы сразу приступили к кодированию?
- Трудно ли было расширять существующую архитектуру новыми функциями?
- Внес ли руководитель проекта весомый вклад в его успешную реализацию? Как можно оценить его организованность, компетентность и готовность к участию в проекте?
- Если бы вам представилась возможность написать тот же код снова, сделали бы вы что-нибудь по-другому?
- Находились ли в вашем распоряжении все программные инструменты, необходимые для решения поставленных задач?
- Как вы думаете, какие составляющие процесса разработки имеет смысл изменить?
Телеконференции
Если во время совещания планируется обсудить те или иные зрительные образы, не забудьте предварительно разослать экземпляры соответствующих изображений и попросите участников с ними ознакомиться. Не нужно зачитывать на совещаниях какие бы то ни было документы — ваши сотрудники взрослые люди, они умеют читать; соответственно, проводя время таким образом, вы его попросту убиваете.
При проведении телеконференций опасайтесь безоговорочно полагаться на принцип «молчание — знак согласия». Иначе говоря, если на принятое вами решение или донесенную вами информацию не поступает никаких комментариев, считается, что слушатели согласны с вашей позицией.
Растягивать телеконференцию более чем на час не имеет смысла. Чрезмерная продолжительность такого совещания свидетельствует либо о его перенасыщенности, либо о неудачной повестке дня. Начинать совещание следует в оговоренное время, причем ждать, пока к нему подключатся все предполагаемые участники, не нужно.
Не стоит также и опаздывать с открытием совещания —
- во-первых, тем самым вы проявляете неуважение к собеседникам
- во-вторых, демонстрируете непрофессионализм
- в-третьих, подаете косвенный сигнал о том, что обсуждаемые вопросы на самом деле не так уж важны
Помните, что при проведении телеконференций вашим единственным инструментом оказывается голос. Пользоваться им стоит разумно и осмысленно. Фиксируйте на бумаге основные моменты совещания (или поручите эту функцию одному из своих сотрудников); не забывайте также и о том, что после окончания совещания вы должны как можно быстрее отправить всем его участникам стенограмму с четкими указаниями к действию. Во время телеконференций следует избегать лишней болтовни.
Время между совещаниями
Контролировать рабочее время и определить роль работы в контексте своего существования вполне в ваших силах.
Руководитель, действующий эффективно, оказывает на своих подчиненных определенное влияние. То, каким будет это влияние, зависит от вашей меры ответственности. О том, каким вы останетесь в памяти людей, с которыми работаете, нужно думать не меньше, чем о взаимоотношениях внутри семьи. Если у вас целостный характер, ваш публичный образ станет отражением личностных характеристик.
Консенсус и действия в результате совещаний
Все типы совещаний характеризуются единой целью, которая состоит, во-первых, в достижении консенсуса среди участников, и, во-вторых, в составлении плана дальнейших действий.
Согласно Вебстеру (Webster), одним из аспектов профессионализма является: «последовательное, методичное проведение каких либо действий».
Дискуссии на совещаниях следует поощрять, поскольку на их основе рождаются идеи.
Итак, участвуя в совещаниях или ведя совещания, придерживайтесь следующих принципов.
- Не превращайте совещание в партсобрание. Участие в совещаниях — это тоже работа, и цель состоит в том, чтобы приступить к новой рабочей неделе осмысленно.
- При проведении проектных совещаний обязательно подготавливайте четкий план действий. Руководите разумно и учитывайте фактор группового поведения.
- Проводя беседы с сотрудниками один на один, следуйте принципам, характерным для совещаний в более крупном составе: пытайтесь достичь консенсуса и выстроить план действий.
- Проводя совещания с нетехническими специалистами, помните, что вы олицетворяете образ технаря. Пытайтесь доносить сложные идеи простым языком. Попытки произвести на бухгалтерских работников впечатление, жонглируя таинственными сокращениями, вряд ли прибавят вам уважения. На таких совещаниях ведите себя как педагог. В то же время исполняйте эту роль предусмотрительно, избегайте высокомерия.
- Проводя ретроспективные совещания по проекту, не поддавайтесь соблазну свалить все грехи на другие отделы. Попытайтесь выяснить, в каких областях вы сами и ваши сотрудники могли бы добиться более высокой продуктивности.
- Старайтесь свести количество телеконференций к минимуму. Путем тщательной подготовки и составления четкого плана старайтесь делать их как можно насыщеннее.
Что дальше
Многое из того, что я рассказываю в этой книге, носит личностный оттенок. Действительно, трудно придумать тему более личностную, чем лидерство при проведении совещаний.
Глава 6 • Философия и методы технического лидера
Принятие решений — это ваша прерогатива. За последствия принятых решений, сказывающихся на разрабатываемых программных продуктах, вы также несете ответственность, поэтому проблема выбора и принятия решений выходит на первый план.
С моей точки зрения, главное в нашей высокотехнологичной профессии — сделать так, чтобы лидерство осуществлялось на основе некоего философского видения, раскрывающего технические навыки ведущих программистов.
Как уразуметь свою техническую роль и придерживаться ее
Роль технического лидера заключается в том, чтобы координировать архитектурные и проектные решения. Архитектура и проектирование — это, как известно, две разные вещи.
Архитектура направлена на многократное использование проектных решений.
Конструировать или выращивать
Метафора садоводства, к тому же, выражает различие между органическим и синтетическим. Все органическое выращивается; синтетические же объекты собираются из конструируемых компонентов. Действительно, конструируя компоненты, мы делаем их синтетическими по самой природе. Однако та среда, в которой их предполагается выращивать, должна выводить целое за рамки суммы компонентов. Кроме того, она должна предусматривать возможность адаптации к изменяющимся коммерческим требованиям и к технологической эволюции.
Главное в нашей работе — мыслить. Мыслить широко и ни в коем случае не поверхностно.
Примат архитектуры
Занимаясь проектированием той или иной системы, вы должны уделять первоочередное внимание рискам. Каким видам рисков?
- Во-первых, риску ухудшения позиций компании на рынке, возникающему, когда в существующий продукт вследствие конкуренции приходится вносить новые непредусмотренные изначально черты;
- риску неумеренного усложнения процесса сопровождения продуктов, возникающему вследствие жесткой взаимозависимости компонентов-подсистем или негибкости их конфигурации.
- Еще один вид рисков заключается в неоправданной сложности продукта на верхних уровнях архитектуры. Это обстоятельство чрезвычайно усложняет задачу кодировщиков, не принимавших участия в процессе создания системы, но вынужденных выискивать способы исправления базовых компонентов.
Все перечисленные проблемы имеют непосредственное отношение к временным и финансовым затратам
Marc T. Sewell and Laura M. Sewell, The Software Architect’s Profession. С точки зрения этих авторов, любой архитектор должен:
- в совершенстве владеть искусством выслушивания, опрашивания и наблюдения;
- хорошо разбираться в предметной области клиента — будь то банковское обслуживание, деятельность государственных органов, образование, здравоохранение, розничная торговля или скачки;
- получить стратегическое представление о деятельности предприятия клиента, не ограничиваясь тактическим или рабочим обзором его деятельности;
- иметь комплексные познания в технологической области — для того, чтобы при разработке архитектурного плана суметь учесть все без исключения варианты стратегических решений;
- наладить конструктивное взаимодействие с клиентом и специалистом, ответственным за конструирование;
- уяснить видение вопроса клиентом и согласованное с ним проектное решение, следить за их неукоснительным соблюдением.
Архитектор должен уметь решать эту проблему, имея в виду два важных понятия:
- проектные ограничения (design forces), которые обусловливают все решения, принимаемые относительно программных средств
- аналитические позиции (analysis viewpoints), позволяющие принимать решения в соответствии с проектными ограничениями.
Проектные ограничения в архитектурном планировании
Разобравшись с положениями различных архитектурных концепций, вы поймете, что все они преследуют общую цель. Она заключается в контроле над проектными ограничениями, которые обуславливают все без исключения программные решения, относящиеся к архитектуре. Проектные ограничения — это те факторы, которые необходимо учитывать с самого начала процесса разработки программного продукта. Они выражают ряд вопросов, на которые любая архитектура должна отвечать. Частично эти вопросы перечислены ниже.
- Сможет ли система предоставить пользователю комфортные условия работы и функционировать согласно его ожиданиям?
- Может ли система функционировать в соответствии с проектным решением, предусматривает ли она модификацию и сопровождение по мере изменения коммерческих потребностей и технологии?
- Минимизирована ли сложность высокоуровневых архитектурных характеристик системы?
- Какой бы продукт ни создавался, в течение нескольких последующих лет его ожидают значительные изменения, причем предпосылки для осуществления этих изменений должны закладываться в фундамент проекта.
- В связи с тем, что ожидается реализация решений в аппаратной части, особое внимание следует уделить созданию, конфигурированию и сопровождению инфраструктуры.
- Достаточна ли компетентность персонала для сопровождения систем, построенных на основе новых технологий? Если в конструировании применяются старые технологии, насколько они перспективны с точки зрения продолжительности использования системы?
Аналитические позиции как средство управления проектными ограничениями
Чтобы решить проблемы, возникающие благодаря проектным ограничениям, необходимо иметь представление о позициях, с которых анализируются любые корпоративные варианты архитектуры. Аналитическая позиция — это, по сути, точка зрения на проектное решение, исходя из которой оно анализируется. Эта позиция, или точка зрения, изменяется по мере изучения системы с разных сторон, исходя из степени серьезности различных проектных ограничений. Вне зависимости от конкретной концепции создания архитектуры все исследователи выделяют несколько общих аналитических позиций, формулируя их в виде вопросов.
- Как будет проходить взаимодействие пользователей с системой? (Эту аналитическую позицию часто называют вариантной.)
- Какие компоненты требуется собрать для того, чтобы обеспечить функционирование системы?
- Каков механизм взаимодействия компонентов, благодаря которому система функционирует?
- Какие технологии в наибольшей степени приспособлены для создания данного программного обеспечения?
- Как предполагается поставить систему клиенту?
Переработать архитектуру значительно сложнее и потенциально разрушительнее, чем реконструировать компоненты.
Некоторые компании настолько увлекаются скоростью разработки, что рано или поздно им придется столкнуться с долгосрочными последствиями непродуманности архитектуры.
Процесс конструирования программных продуктов можно сравнить с марафоном, но уж никак не со спринтом. Темп, предусматривающий долговечность конечного результата, есть необходимое условие достижения качества в производстве.
Свежий взгляд на проектирование
При создании проектного решения предполагается наличие архитектуры, которая диктует расположение всех реализующих системные функции компонентов.
Нулевой этап проектирования
Первое, что нужно сделать в процессе проектирования - это проверить архитектуру.
Дело в том, что вы должны учитывать все факторы воздействия на систему на 1–2 года вперед. Невозможно выстроить надежный план действий, не зная коммерческой конъюнктуры. С другой стороны, разбираясь в тонкостях бизнеса, вы имеете все шансы стать предсказателем будущего своих программных продуктов.
Этапы проектирования 1, 2, 3, 2, 1, 4...
Прекрасный образец применения теории сложных систем в области разработки программного обеспечения являет собой книга Джеймса Хайсмита (James Highsmith) под названием «Адаптивная разработка программных средств». Хайсмит предлагает вниманию читателя итеративный цикл, который он называет «жизненным циклом адаптивной разработки». В нем три основных компонента:
- сотрудничество
- размышление
- обучение
С его точки зрения, у этого цикла есть ряд преимуществ:
- реагируя на периодические отзывы, приложения эволюционируют, приближаясь тем самым к предъявляемым заказчиками требованиям;
- упрощается адаптация к изменяющимся бизнес-требованиям;
- процесс разработки подгоняется под заданный для данного продукта профиль качества;
- преимущества от применения продукта заказчик получает раньше, чем обычно, — хотя бы за счет того, что приложение поставляется ему быстрее, а значит, он раньше начинает получать доход;
- заказчики раньше, чем обычно, начинают испытывать доверие к проекту.
Обширная библиотека должна быть в ваших мозгах — лишь при таком условии вы сможете взвешенно организовать процесс проектирования.
Одержимость работой — вещь заразная, и вы должны всеми силами стараться распространить ее на всех своих коллег.
Знание — это лишь исходное условие; по мере накопления опыта вы должны стремиться к принятию взвешенных решений, последовательно культивировать качества лидера.
Кодовая полиция
Вам предстоит проводить регулярные критические обзоры кода, направленные на проверку соответствия архитектурной базе и принципам проектирования. В ходе проведения обзора вам предстоит столкнуться с двумя трудностями. С одной стороны, против вас работает время; с другой — программисты зачастую слишком ревностно относятся к попыткам редактирования своего кода.
Что касается недовольства вторжением в результаты своей деятельности, программистам придется смириться. Не стоит пугаться, что программисты отреагируют на такое вмешательство резко негативно. Это лишь признак сопричастности, а она, как известно, является необходимым условием создания качественного программного обеспечения. Хуже, если программист относится к вашей конструктивной критике индифферентно — из этого можно заключить, что конечный результат его не интересует. Толстокожесть техническому лидеру не повредит. Если вы слишком стеснительны, чтобы исправлять чужие ошибки, вы рискуете набить немало шишек — быть может, это вас образумит.
Следите за законностью
Кейперс Джонс (Capers Jones) в своей книге «Applied Software Measurement» утверждает, что наиболее успешные компании, работающие в сфере разработки программного обеспечения, отличаются шестью общими характеристиками.
- Они проводят точные измерения продуктивности и качества программных продуктов.
- Онитщательнопланируютиоцениваютпрограммныепродукты.
- Унихработаютквалифицированныеменеджерыитехническиеспециалисты.
- Унихадекватныеорганизационныеструктуры.
- Они пользуются наиболее эффективными методами и инструментами разработки программного обеспечения.
- Ихсотрудникиработаютвдостойныхусловиях.
Из всех этих характеристик наиболее важной Джонс считает первую. Именно здесь в полную силу проявляются преимущества критических обзоров кода.
Критические обзоры — это вам не контрольные работы в школе, за которые в дневник ставят оценки, а потом напротив них свои подписи ставят родители. Скорее их можно сравнить с университетскими семинарами, на которых проницательные студенты стремятся выявить наилучшие идеи и забраковать неудачные. Сотрудники, демонстрирующие неспособность учиться на критике, вряд ли смогут долго оставаться в нашей профессии. Быть может, такой подход покажется вам слишком жестким, но если не вывести теоретические основы разработки на практический уровень, будет страдать качество конечного продукта.
Наиболее распространенные нарушения
В своем кратком обзоре основных принципов проектирования я акцентирую ваше внимание на трех аспектах:
- стандартах
- связности
- взаимозависимости
Нарушение стандартов
- Комментарии должны разъяснять, почему код написан именно так и никак иначе, и как этого удалось достичь — причем основной упор следует делать на раскрытии вопроса «почему?». О том как разработчик достиг поставленной задачи, свидетельствует сам код; в то же время комментарии помогают проследить ход мыслей разработчика во время разработки модуля.
- Соглашение по именованию. Между крайностями длинных и коротких имен нужно найти баланс.
- применение подпрограмм с несколькими точками выхода
- введение ненавистного оператора GoTo
- регулярное отсутствие обработки ошибок
Слабая связность и сильная взаимозависимость
Ваша задача — выявить слабые места и добиться их усиления. Не пытайтесь, впрочем, править код самостоятельно — ведь когда сроки поджимают, появляется искушение сделать все самому. Не забывайте, что, доверив исправление проблем сотрудникам группы, вы добьетесь гораздо более серьезного результата. Этот процесс, конечно, может затянуться, но вы ведь понимаете: если нет времени решить задачу сразу и правильно, то времени на то, чтобы переделать результат, тем более не останется.
Скорый суд и неотвратимость наказания
Заметив нарушения, вы должны приостановить процесс кодирования, пока нарушители не исправят ситуацию. Чем дольше нарушения будут игнорироваться, тем выше вероятность того, что код придется отправить прямиком на помойку. Когда разработчики обнаруживают халтуру своих коллег, они невольно опускаются до того же уровня — это человеческая природа, ничего не поделаешь. Если владение оружием предполагает употребление обоих рук, то грамотное проведение критических обзоров кода требует пресечения деятельности нарушителей за счет авторитета руководителя.
Если все сотрудники осознают слабости кода, они ожидают проявления вашей инициативы. Попытайтесь предвидеть трудности и внушить себе необходимость адекватного реагирования на них. Имейте в виду, что прочтения этих строк совершенно недостаточно для превращения нужно в сделаю. Чтобы это случилось, что-то должно измениться в вашем характере.
Философия в действии
Философия без практики бесполезна.
Видение и действие должны сочетаться гармонично, как рука и перчатка. Иначе говоря, действуйте по своим убеждениям. Многие люди, не исключая программистов и руководителей, знают, как нужно делать, но тем не менее не делают этого.
Некачественная или случайная архитектура приводит к таким последствиям:
- сверхтрудное сопровождение и низкая оперативность (а следовательно, финансовые потери) при введении новых свойств;
- нежелание программистов заниматься сопровождением кода вследствие чрезмерной усложненности системы и неуверенности относительно первоочередных действий при исправлении ошибок и введении новых свойств;
- размывание кода из-за лавинообразного роста числа объектов, за счет чего при увеличении размера исполняемых файлов сокращается производительность.
Ниже перечислены последствия неадекватного проектирования:
- из-за несоблюдения стандартов создается впечатление, что все объекты создавались разными программистами;
- модификация в одном месте приводит к нарушению в нескольких других;
- вследствие многократного дублирования кода для изменения любой функции требуется найти и также изменить все ее экземпляры.
В конце концов, в мире полно людей с благими намерениями, которые, тем не менее, либо действуют строго противоположным образом, либо вообще ничего не делают.
Конкретный пример философии в действии — Леонардо да Винчи
Эту самую философию Майкл Гелб (Michael Gelb) вкратце сформулировал следующим образом.
- Неизменно любознательный взгляд на жизнь и сильнейшее стремление к постоянному обучению.
- Привычка проверять знания через опыт, настойчивость и готовность учиться на ошибках.
- Последовательное совершенствование восприятия действительности органами чувств (в особенности, зрением) как средство обогащения жизненной практики.
- Готовность к восприятию неясностей, парадоксальных явлений и неопределенности.
- Уравновешивание науки и искусства, логики и воображения. Мышление «всем интеллектом».
- Воспитание изящества в движениях, «двуправорукости», физического здоровья и поведения.
- Признание и понимание взаимосвязи между всеми вещами и явлениями. Системное мышление.
Убежденный в том, что опыт — лучший учитель, он постоянно совершенствовал свои воззрения с тем, чтобы улучшить наблюдательность.
Ложка дегтя
Умирая, Леонардо понимал, что труд его жизни остался незаконченным. Это жестокая реальность. Тем не менее я призываю вас стремиться к самосовершенствованию и, руководствуясь полюбившимися философскими воззрениями, каждую неделю делать немного больше полезных дел. Между знанием и действием в нашей рабочей действительности огромная пропасть. Это своеобразное состязание между эпистемологией и онтологией. Факт тот, что изначально мы предрасположены к бездействию; однако, в конце концов, происходит что-то, что заставляет нас воскликнуть: «Хватит с меня этих проблем в коде!» — и наконец сделать что-нибудь стоящее.
Перспективы
Ниже я делаю краткий обзор вопросов, которые мы затрагивали в этой главе. Надеюсь, этот перечень поможет вам адекватно оценить степень своей полезности в области технического лидерства.
- Удается ли вам последовательно играть роль технического лидера? Я совершенно не хочу сказать, что ваши идеи всегда должны быть на порядок лучше чужих, — просто ваши обязанности иные, к ним относятся отбор наиболее удачных идей и их практическая реализация.
- Предполагают ли варианты архитектуры ваших продуктов расширяемость и удобство сопровождения? Ответ на этот вопрос можно получить лишь тогда, когда первая версия продукта уже выпущена на рынок, а вы принялись за оценку ресурсов, требующихся для производства второй версии.
- Смогли ли вы за счет своих проектных решений обеспечить возможность многократного использования компонентов? Может ли любой сотрудник вашей группы взять модуль, разработанный другим сотрудником, и успешно справиться с его сопровождением или расширением функциональности? Ответы на эти вопросы свидетельствуют о ваших достижениях по части организации и руководства проектной деятельностью.
- Как вы обращаетесь с выявленными недостатками кода — устраняете их сразу на стадии разработки или ведете журнал фрагментов кода, требующих переработки?
- Способствует ли здоровая критика действий ваших подчиненных повышению их квалификации?
- Что вы предпочитаете — умные разговоры или практические действия? Помните ли вы, что нереализованные философствования бесполезны?
Техническое лидерство взращивается на почве знания и питается готовностью учиться на собственных ошибках — в конечном итоге такая практика обязательно увенчается успехом.
Что дальше
Повторюсь — оценивать свои лидерские качества нужно по результатам каждодневной практической деятельности, ведомой внутренними убеждениями.
Глава 7 • Закат лидера
У лидерства тоже есть обратная сторона. Иначе говоря, лидерство бывает неэффективным и разрушительным.
В то же время в определенной степени упрямство и нежелание меняться присутствует во всех людях — естественно, эти качества мешают должному исполнению нами своих обязанностей.
Обличие тьмы
Страх порождает самые что ни на есть темные явления.
Есть одна древнееврейская пословица (может быть, вы ее слышали), которая звучит примерно так: «недальновидность правителей губит людей». Вот что случается с теми, кто теряет нить руководства.
Прислушайтесь ко мне — в конце концов, мне самому каждый день приходится бороться с обратной стороной лидерства.
Негативные эталоны в менеджменте
Назначение негативных эталонов — показать, как не стоит себя вести.
Поймите, других людей вам не исправить. Это очевидное, на первый взгляд, обстоятельство очень помогает в процессе взаимодействия с окружающими.
Мелочная опека
Руководитель призван обеспечить решение задачи силами своих подчиненных. Первое, что должен сделать лидер, — это создать условия для полноценного делегирования.
Представители этого типа руководителей встречаются в нашей отрасли чаще всего. Их можно разделить на несколько типов.
- Всезнайка. Такой деятель искренне верит в то, что ему известно все о его работе, о работе компании, о конкретных заданиях программистов.
- Диктатор. Девиз этих деятелей — «я прав, потому что я прав». Диктатор пытается навязывать своим подчиненным конкретные методы решения поставленных перед ними задач. На самом деле всем нам не мешает тщательно следить за тем, чтобы не пойти по этому пути. Лидерство действительно предполагает демонстрацию сотрудникам возможных способов работы, но в этом следует соблюдать осторожность, поскольку лишать подчиненных чувства сопричастности к созданию продукта недопустимо. Настоящий лидер должен создавать условия, в которых разработчики могли бы гордиться результатами своих трудов, а для того, чтобы их гордость воплощалась в хороших результатах, им следует предоставлять определенную свободу выбора средств достижения цели. Тем не менее хороший руководитель устанавливает некоторые пределы свободы. Диктатор же ее просто-напросто подавляет.
- Генерал. Руководитель этого типа хорошо усвоил уроки школы «командования и управления» в разработке программных средств. Генералы обнаруживают значительное сходство с диктаторами, проявляя в своей деятельности еще большую жесткость. Противостоит такому подходу стиль сотрудничества — и, вы знаете, он имеет широкое употребление, просто потому, что он правильный.
Первопричина мелочной опеки кроется в убежденности руководителя в том, что никто не может выполнить работу лучше него. Прибавьте к этому страх допустить ошибку, и вы поймете, почему так много руководителей попадаются в эту ловушку.
Руководитель, практикующий мелочную опеку | Лидер |
---|---|
Что я должен сегодня сделать? | Как помочь подчиненным с достоинством справиться с их задачами? |
Что, если у меня ничего не получится? | Как совместными усилиями мы можем свести к минимуму вероятность неудачи? |
Почему сотрудники не подчиняются моим указаниям? | Как бы более четко формулировать свои наставления? |
Увлекаясь мелочной опекой, мы неизбежно замыкаемся на себе; полноценный лидер, напротив, стремится к конструктивному сотрудничеству с окружающими. Освободиться от оков мелочной опеки помогает осознание ценности ваших сотрудников и пользы от взаимодействия с ними.
Советы тем, кто увлекается мелочной опекой
Лидерство ориентировано на привитие подчиненным собственной мотивации. В частности, лидер должен культивировать в сотрудниках чувство сопричастности (как успехам, так и неудачам) и предоставлять им возможность творческих начинаний. Мелочная опека исключает такие перспективы.
Никто не любит ошибаться, но, тем не менее, иногда это случается со всеми. Это реальность — восприятие ее в таком качестве помогает сбалансировать стиль рабочей деятельности.
Люди всегда ошибаются; хороший лидер же ошибается только тогда, когда приложенные им усилия оказываются недостаточными. Неудачный результат простителен, а вот недостаточные усилия — это смертный грех. Приложите все усилия к тому, чтобы настроить сотрудников на продуктивную деятельность, — не распространяйте на них свои опасения о возможности неудачного исхода. Акцентируйте их внимание на сладости успеха, а не на горечи поражения.
Ваши подчиненные должны работать как следует просто потому, что они ответственны и мотивированы. По мере развития доверительных отношений между вами и вашей командой вы приучите сотрудников к мысли, что правильные действия приводят к наилучшим результатам — как для них самих, так и для компании в целом. Лидер должен постоянно стремиться к созданию такого рода условий; те же руководители, которые увлекаются мелочной опекой, напротив, препятствуют их формированию.
Если ваш начальник, отличающийся склонностью к мелочной опеке, ставит перед вами какую-то задачу, приложите все усилия к тому, чтобы решить ее лучше, чем он ожидает. Большинство руководителей, практикующих мелочную опеку, все-таки обращают внимание на выдающиеся усилия и соответствующие результаты. Они порабощены страхом неудачи, но если вам удастся приучить их к успеху, опасения, скорее всего, развеются.
Неорганизованные руководители
Мне доводилось наблюдать за действиями персонажей, которых можно отнести к нескольким подтипам рассматриваемого стиля. В реальности их, конечно, больше, но я описываю только те, которые приходят на ум.
- Скарлетт О’Хара. Деятели, работающие по данной схеме, либо не могут, либо не хотят концентрироваться на текущих задачах и решениях. Иногда им кажется, что задачи слишком сложны; в иных случаях они не принимают никаких решений по той лишь причине, что боятся совершить ошибку. Отказ от принятия решения зачастую равноценен санкции на его принятие другими людьми; иногда, что еще хуже, дальнейший ход действий обусловливается последствиями непринятых решений.
- Временщик. Имеется в виду человек, нацеленный в первую очередь на продвижение вверх по карьерной лестнице. Такие деятели, думающие исключительно о высоком, считают занятия менеджментом среднего звена не более чем времяпрепровождением. Большую часть своего времени они предпочитают тратить не на работу над проектом, а на демонстрацию окружающим своих амбиций. Сталкиваясь с необходимостью принятия решения, они обычно начинают активно интересоваться чужим мнением.
- Новичок. Это совсем неопытный руководитель, который вовсе не знает, с чего начать. Такие деятели и не помышляют о лидерстве; свою цель они видят в том, чтобы обуздать все административные тонкости своей деятельности. Некоторые из них даже считают, что лидерство определяется не достижениями, а одной лишь должностью. Руководители такого типа испытывают серьезные проблемы по части расстановки приоритетов, поскольку все задачи кажутся им в равной степени сложными.
Последствия деятельности неорганизованных руководителей весьма разнообразны — в частности, они срывают сроки сдачи проектов и вносят в души подчиненных полный разброд относительно конкретных задач. Многие неорганизованные руководители имеют обыкновение в огромных количествах генерировать новые идеи, в связи с чем выполненный наполовину проект быстро оказывается устаревшим.
Принимая необдуманные решения (а взвешенность решений характерна толь-ко для опытных лидеров), неорганизованные руководители способствуют образованию тупиковых ситуаций, допуская промедление, следствием которого оказывается хаос.
Если вы намерены продолжить свой путь к вершинам менеджмента, имейте в виду: для этого успех должен войти в привычку, что невозможно без должного внимания к текущим задачам.
Никаких оправданий неорганизованному стилю руководства мне в голову не приходит. Причин, по которым формируется такая модель поведения, предостаточно, и, поверьте мне, время от времени любые руководители теряют концентрацию, однако настоящие лидеры умеют ее восстанавливать.
Что делать, если неорганизованного стиля придерживается ваш собственный руководитель? Предлагайте разумные решения задач. Делайте то, что считаете нужным, — в особенности если задачи распределены недостаточно четко. Если ваш руководитель дистанцируется от проблемы, у вас будет больше времени. Пользуйтесь этим временем с умом. Главное — должным образом справиться с решением проблем, стоящих перед вашим отделом. Если начальник не хочет работать, инициатива переходит к его подчиненным — при условии, конечно, что им не все равно, как идут дела в компании.
Гений не на месте
Довольно часто в нашей индустрии в менеджеры производят блестящих программистов, неспособных к руководящей деятельности и уж, тем более, неспособных к лидерству. Консенсус он понимает как единодушное согласие со своими предложениями.
Всем гениям свойственно одно и то же качество — исключительная способность к концентрации. Основной акцент они обычно делают на технологии, отодвигая кадры на второй план. Именно это обстоятельство мешает им стать полноценными лидерами.
Гении в ранге руководителей имеют обыкновение разрабатывать для применения подчиненными целые программные шаблоны, которые, по их мнению, необходимо задействовать во всех без исключения продуктах.
Такого рода менеджеры, как правило, разрушают те административные процессы, с помощью которых их подчиненные ранее достигали успехов. Гении рассматривают администрирование как работу «для других», недостойную их внимания. Руководители высшего уровня, как правило, считают гениев прекрасными лидерами, объясняя свою точку зрения их выдающимися способностями. Чем больше наблюдатель удален от повседневных процессов, тем выше он склонен оценивать достижения гениев, не замечая их откровенных недоработок, происходящих от неэффективного распоряжения человеческими ресурсами и пренебрежения к административным процедурам.
Как мыслит гений | Как мыслит лидер |
---|---|
Какая методика разработки программного обеспечения может помочь решить данную проблему? | Как мне привлечь других сотрудников к формулированию методик решения проблем? |
Сколько еще языковых средств мне удастся изучить в этом месяце? | Какую образовательную подготовку стоит пройти моим сотрудникам, чтобы они смогли повысить показатели продуктивности? |
Сложность является препятствием только для невежд | Сложность оправдывается лишь в том случае, если все участники проекта в достаточной мере разбираются в вопросе и внесли свою лепту в создание системы |
Что если вам приходится работать под началом типичного гения? Судя по моему опыту, единственный способ выжить в такой обстановке — повышать уровень своих знаний и не давать гению забыть, что окружающие его люди тоже иногда генерируют неплохие идеи.
Интеллектуалы на лидерских позициях в нашей индустрии нужны; при этом не менее важно, чтобы их умственные способности не ограничивались технологическими проблемами и распространялись также на пользователей и исполнителей.
Строители империй тьмы
Строители империй руководствуются в основном одной-единственной целью — подбором преданных исполнителей их воли; при этом очень часто они забывают о необходимости претворять в жизнь цели компании. Прислуживание они ценят значительно выше, чем производительность.
Империи играют положительную роль только при определенных условиях:
- во-первых, если в них создаются качественные продукты
- во-вторых, если они не замыкаются на решении своих узкокорыстных задач
Если вам довелось работать под началом строителя империи, средств смягчить последствия издержек этого положения (на случай, если они себя проявят) у вас не так уж много. Лучшее, что вы можете сделать, — работать честно. Это качество способно уберечь вас в ситуации, когда над вами начнут сгущаться тучи. Высказывая такое мнение, я, естественно, исхожу из того, что представители верхних эшелонов руководства неусыпно следят за соблюдением интересов компании и не готовы слишком долго терпеть действия мелких «божков». В то же время следует иметь в виду, что если строитель империи на практике демонстрирует положительные результаты, значит, скорее всего, он устраивает высшее руководство. Да, наш мир несовершенен; в истории много прецедентов длительного существования империй тьмы. Если такая структура выполняет полезную функцию и приносит прибыль, то и в корпоративном мире она имеет право на существование.
Деятельность по строительству империй идет вразрез с курсом на выработку консенсуса в технических вопросах. Лидер, излишне обеспокоенный своим положением, вряд ли потерпит ситуацию плюрализма мнений. Как известно, консенсус вырабатывается в результате конкуренции идей; с этой точки зрения мы можем сделать вывод о том, что технологическая база империй зачастую страдает.
С давлением, которое оказывает на нас быстрая смена технологий и бизнес-требований, сложно справиться без такого качества, как гибкость.
Заигрывание с дьяволом
В современных условиях сочетать рабочие обязанности со всеми остальными составляющими повседневной жизни становится все сложнее. Постоянно сталкиваясь с разного рода соблазнами, трудно им не поддаться. Не стоит играть с огнем. Я перечислю ряд признаков, при появлении которых стоит насторожиться.
Вы достигли своего предела
Вы работаете все больше, но эффективность продолжает падать. Отношения с подчиненными стремительно ухудшаются; у вас регулярно случаются приступы ярости, и вы все чаще прибегаете к необоснованной критике. Обзоры кода проводятся все реже, а недостаток концентрации не позволяет вам вырабатывать конструктивные и полезные предложения. Ваше ощущение подавленности передается окружающим, продуктивность сотрудников падает.
Пора остановиться и дать знать всем остальным участникам проекта, что вы выжимаете из себя максимум возможного и срыва сроков сдачи не избежать. Это сложная задача, но по достижении предела продуктивности у вас просто не остается другого выхода. Попытки превзойти свои физические возможности приведут лишь к более плачевным последствиям.
Вы прыгнули выше головы
Работа вас достала. Вы обнаруживаете неспособность разбираться в сложных вопросах с необходимой оперативностью и теряете контроль над персоналом. Вы с неохотой ездите на работу, ищете любую возможность остаться дома, мечтаете о том, чтобы сменить сферу деятельности. Избегая принятия решений, вы надеетесь, что ситуация разрешится сама собой.
Посоветуйтесь с другими руководителями. Обратитесь за поддержкой к начальнику — в конце концов, он для этого и существует. Если возможно, сбавьте темп работы и обсудите сложившуюся ситуацию с подчиненными — возможно, они подскажут какие-то стратегии и тактики, которые позволят вам вернуть себе контроль над процессом разработки. Свои недочеты лучше признавать как можно раньше — в противном случае ближе к завершению проекта ваши ошибки все равно станут для всех очевидными. Если вернуть себе контроль не удастся, возможно, пора уходить. Только вы сами можете определить, насколько вы подходите для выполнения лидерских функций. В таких вещах лучше признаваться самому себе, пока за вас это решение не приняли окружающие.
Вас бесит критика
Приступы ярости, как правило, свидетельствуют об игнорировании двух предыдущих признаков. Ярость, по сути, — это неосознанная реакция на чувство бессилия или на неудачу. На этот признак следует обращать особое внимание: ярость может подорвать ваш авторитет и восстановить его впоследствии будет очень сложно. Критика, в лучшем смысле этого слова, помогает повысить производительность. Раздражает она в том случае, если вы убеждены, что сделали все возможное.
Если вы работаете с полной самоотдачей на протяжении многих недель или месяцев, достигать высот продуктивности становится все сложнее. Прибавьте к этому недостаток опыта и несоответствие личностных характеристик занимаемой должности, и вы превратитесь в бомбу замедленного действия. Собрать все кусочки после взрыва очень трудно, так же как, например, переделать все экземпляры скомпилированного и распространенного исполняемого файла.
Как выжить в период упадка и восстать из пепла
Навыки преодоления трудностей и возобновления успешной деятельности совершенно необходимы.
- Какие отношения нарушились за время ваших трудностей?
- Можно ли поправить дело?
- Что делать с неудачными проектами и пропущенными сроками сдачи?
- Как компенсировать ущерб?
Если вам предстоит восстановить свои пошатнувшиеся лидерские позиции, вы должны обязательно задать эти вопросы.
Начните с людей. Найдите тех, кто пострадал из-за допущенных вами ошибок, и извинитесь перед ними. Не ищите себе оправданий — признайте свою неправоту. Не вдавайтесь в сентиментальность или драматизм — просто дайте знать, что вы сожалеете о том, что случилось, и двигайтесь дальше. Незаслуженно пострадавшие ждут, когда перед ними извинятся, и если вы признаете свои ошибки, вас будут уважать за честность.
Ущерб, нанесенный процессам, не носит столь личный характер, но компенсировать его не проще, чем испорченные человеческие отношения. Если допущенные вами ошибки явили собой прямое нарушение правил компании, принятых принципов работы или методологии разработки, лучше всего постараться обеспечить соответствие им.
Как избежать заката
В идеале лидер вообще не должен попадать в ситуации заката.
Обзор негативных аспектов деятельности руководителя, был призван помочь вам разобраться в некоторых стереотипных стилях руководства, которые за незнанием лучшего мы иногда принимаем или имитируем.
Стиль | Причины и симптомы | Последствия | Рецепт |
---|---|---|---|
Мелочная опека | Ориентация на собственные силы, неверие в способности подчиненных, страх совершить ошибку | Для менеджера: усталость и раздражение; для сотрудников: отсутствие чувства сопричастности к созданию продукта, ощущение ненужности и бессилия; для продукта: исключительная роль менеджера в его создании осложняет его сопровождение | Переориентация на окружающих, выстраивание доверительных отношений с сотрудниками, борьба со страхами путем сотрудничества с персоналом |
Неорганизованность | Откладывание проблем на потом, отвлечение от рабочих вопросов, неполнота | Для менеджера: огромное количество отложенных решений; для сотрудников: хаос, утера координации (все делают то, что считают нужным); для продукта: срыв сроков сдачи, несоответствие спецификациям | Концентрация на текущих задачах, самокоординация, помощь со стороны других руководителей |
Неверное приложение гением своих сил | Пренебрежение вопросами кадрового обеспечения, чрезмерное внимание к технологии | Для менеджера: недоумение по поводу незаинтересованности персонала в реализации задумок; для сотрудников: боязнь оспаривать технические предложения начальника; для продукта: сильно осложняется сопровождение из-за реализации в продукте предложений, исходящих, прежде всего, от менеджера | Сотрудничество с помощником по административным вопросам или обучение основам лидерства и менеджмента |
Строительство империй | Основное внимание уделяется укреплению своих позиций и власти в сочетании с политиканством | Для менеджера: постоянная неудовлетворенность, стремление расширить империю; для сотрудников: изоляция и трения с другими подразделениями компании; для продукта: сотрудничество в принятии решений по продукту заменяется принуждением | Обеспечение для сотрудников возможности проявить себя и отказ от политиканства |
Как видно из таблицы, употребление порочных стилей руководства приводит к определенным последствиям и для самого менеджера, и для его подчиненных, и для продукта. Представители этих стилей не уделяют внимание вопросам лидерства — они либо ведут своих сотрудников в неверном направлении, либо вообще их никуда не ведут. Знание последствий применения упомянутых стилей руководства поможет вам побороть их симптомы. Впрочем, в каждом конкретном случае вы должны проанализировать личные причины появления признаков того или иного стиля — ведь если лечение не затрагивает первопричины болезни, уничтожить ее оно не сможет.
Что дальше
-
Глава 8 • Восход лидера
Хороший лидер — это гораздо больше чем блестящий руководитель. Лидерство, хотя оно и строится на основе различных стилей руководства, подразумевает приложение значительных усилий, которые отнюдь не ограничиваются координацией людей и процессов. Лидеры должны быть на передовой — они призваны разрабатывать новые пути развития компании, привлекая для этой цели надлежащие технологии. Не всегда лидеру удается с первой попытки заставить окружающих двигаться в выбранном направлении. Мобилизовать сотрудников на решение определенных задач помогает харизма — одна из черт лидера, которую, по моему мнению, практически невозможно привить. Харизматический лидер тем более должен понимать, в каком направлении двигаться.
Подобно программному обеспечению, лидерство выстраивается на определенном фундаменте. Для программных продуктов в этой роли выступает архитектура, а для лидерства — ваш характер. Характер, который должен отвечать четким требованиям. Характер, предполагающий ответственность за подготовку технических достижений компании и за их реализацию силами ее сотрудников.
Фундаментальные принципы лидерства
Чтобы лидера можно было назвать лидером, ему нужны последователи; в то же время хороший лидер сам формирует для себя группу последователей. Процесс подготовки последователей прекрасно иллюстрируют пять основных принципов, которые, как мне кажется, определяют суть характера любого лидера.
Линейная функция:
Понимание → Передача знаний → Делегирование → Проверка → Участие
Циклическая функция:
Понимание → Передача знаний → Делегирование → Проверка → Участие ↰
Понимание
Битвы на рынке способны выигрывать только лидеры, понимающие характер, методы и цели военных действий в области программного обеспечения.
Только выстроив для себя подробный план реализации от начала до конца, вы сможете руководить процессом и отслеживать его. Здесь опять же необходимы время и настойчивость. Первого никогда не бывает в достатке (за это я ручаюсь!), а второе условие напрямую зависит от того, насколько серьезно вы относитесь к своим лидерским обязанностям. Что касается времени, то у всех нас его поровну — просто некоторые им пользуются рациональнее, чем другие.
План анализа проблемы можно изложить следующим образом.
- Прочтите требования дважды: один раз, чтобы понять широту замысла, второй — чтобы постичь его глубину.
- Сопоставьте требования с известными методиками реализации и выявите те части функциональности, для реализации которых потребуются новые разработки.
- Набросайте предварительный план макетирования проектов — он поможет выявить среди требуемых свойств неизвестные.
- Составьте на основе документации с требованиями контрольный список, который, в свою очередь, послужит исходной точкой для формулирования задач. Так вы сможете привязать каждое требование к набору задач и тем самым гарантировать реализацию свойства.
Понимание рождает решения.
Передача знаний
У того, кто не может адекватно изложить свои мысли, их слишком мало. Полагаю, что именно эта проблема обусловливает плохую передачу информации в бизнесе: недостаточное понимание проблемы порождает комплекс, в результате чего субъект, который, по смыслу, должен эту проблему доходчиво изложить, начинает надеяться на то, что окружающие смогут интуитивно разобраться в ней и уяснить свои задачи.
Цель передачи знаний — обеспечить понимание персоналом предъявленных к продукту требований на том же уровне, на котором их понимает лидер.
Необходимые элементы эффективной передачи знаний:
Формальные элементы передачи знаний | Функциональные элементы передачи знаний | Стилистические элементы передачи знаний |
---|---|---|
Введение в проблему. Общее ознакомление с проблемой, определение рамок и плана изложения | Объяснение. Пояснение технической терминологии и упрощенное объяснение понятий | Голос. В зависимости от характера аудитории, места проведения занятия и степени срочности объяснения материала варьируется от формального до неформального |
Обсуждение. Описание проблемы в деталях, разделение проблемы на отдельные темы, стремление к самодостаточности каждой темы и одновременно к ее связанности с другими темами | Аргументация. Убеждение с позиций логики и точности языковыми средствами | Тон. Серьезный, но не слишком; подходящий для конкретной бизнес-ситуации. Юмор допускается и приветствуется |
Переход. Связывание всех элементов изложения воедино и демонстрация установленных между ними связей | Демонстрация прикладных аспектов проблемы. Переход от теории к практике и реализации предмета изложения | Ритм. Закрепить отдельные элементы пройденного материала помогают голосовые колебания и изменение тона |
Заключение. Логика передачи знаний должна стать основой для построения плана действий | Иллюстрации. Аналогии и метафоры, помогающие показать альтернативные аспекты проблемы и тем самым углубить ее усвоение |
Необходимо различать запланированный процесс передачи знаний и случайные разговоры на ту или иную тему. Поскольку вы — лидер, ваши замечания, пусть даже высказанные по случаю, зачастую воспринимаются сотрудниками как официальные распоряжения. Большую часть жизни мы доносим до окружающих информацию интуитивно, не пользуясь заготовками и отталкиваясь исключительно от текущего контекста. Различия между бессистемным и формальным мышлением следует обязательно иметь в виду; бывают ситуации, когда случайно высказанная мысль приводит к непредусмотренным разрушительным последствиям для бизнеса. Способность контролировать поле боя общения помогает выиграть битву понимания.
Делегирование
Способность к делегированию — это одно из тех качеств, которое вы, лидер, должны постоянно совершенствовать.
В идеале проект нужно разбить на рабочие единицы, которые впоследствии можно будет распределить между всеми разработчиками. Впрочем, на практике этот подход не всегда себя оправдывает. Может статься, что для решения отдельных задач по проекту или даже для комплексной его реализации лучше всего подходит ограниченная группа сотрудников.
Не забывайте и о хрестоматийном правиле, согласно которому введение в проект новых сотрудников на завершающих стадиях разработки только оттягивает срок его сдачи. Делегировать можно задачи, но не темпы их решения. Качественное проектное решение (при наличии достойной архитектуры) обеспечивает удобство делегирования по модулям.
Нужно уметь корректировать план делегирования на ходу. К необходимости его корректировки нужно быть готовым с самого начала — она не должна стать для вас сюрпризом. В ходе выполнения проекта от начальных стадий к завершающим у лидера нередко появляется ощущение стрельбы по движущейся мишени — вот почему для него так важен опыт. Если бы лидеры разработки программных продуктов могли тренироваться в стрельбе по движущимся мишеням на стрельбище, было бы просто здорово. К сожалению, практиковаться нам приходится в реальных условиях — иначе вряд ли мы срывали бы сроки. Чем больше вы будете тренироваться, тем совершеннее станут ваши навыки. Делегирование — это лучший помощник в деле стрельбы по мишеням. Стоит вам попытаться сбить их все самостоятельно (то есть поддаться соблазну мелочной опеки), патроны кончатся раньше времени.
Проверка
Одним из элементов вашей повседневной деятельности должна стать ежедневная проверка результатов работы сотрудников; при приближении сроков сдачи такие проверки нужно проводить еще чаще.
Эффективный мониторинг подобен непрекращающемуся критическому обзору кода — он также предполагает контроль за соответствием проектному решению и стандартам кодирования. Чем дольше вы будете затягивать проведение обзора, тем больше задач вам придется решать, — а если откладывать процесс слишком долго, у вас просто не останется времени на то, чтобы разобраться в запутанном коде.
Перечислю некоторые методики проверки.
- Ежедневно наведывайтесь к своим подчиненным и интересуйтесь, как у них идут дела.
- Если личный контакт не представляется возможным, воспользуйтесь телефоном или, на крайний случай, электронной почтой.
- С регулярностью в несколько дней тестируйте готовые модули кода. Эта деятельность роднит вас с тестерами, но вы должны воспринимать ее как свою первоочередную обязанность.
- Регулярно пробуйте интегрировать компоненты в целостную систему и проверяйте архитектуру на стройность. Здесь придется «поиграть» с кодом. Так вы сможете выявлять ошибки, допущенные при конструировании, и держаться в курсе методов, которыми ваши программисты решают поставленные перед ними задачи.
- Проводя еженедельные совещания сотрудников, не забывайте отслеживать состояние проекта и вырабатывать вместе с подчиненными новые идеи. Эта деятельность дополняет ежедневные визиты к сотрудникам и позволяет привлечь к решению проблем общего характера коллективный разум.
- Тех участников группы разработчиков, которым удалось быстро расправиться со своими задачами, следует привлекать к тестированию результатов труда остальных. Делать это нужно с осторожностью, допускать высказывания типа «тестирование — это не мое дело» нельзя. Программирование не ограничивается написанием кода, оно также предполагает обеспечение его реального функционирования.
- Требуйте от программистов документировать все новые модули кода и составляйте из этих отчетов сопроводительную документацию для отдела тестирования. Тем самым вы дадите возможность себе и своим подчиненным оценивать ход процесса и соответствие заданным требованиям.
Участие
Несмотря на свое положение лидера, вам нередко придется участвовать в процессе кодирования. Если сочетать эту деятельность с делегированием и проверкой, ничего страшного не произойдет. Участие в «грязной работе» поможет вам утвердиться в роли лидера, хотя здесь нужно стараться воздерживаться от мелочной опеки. Разделяя обязанности по кодированию со своими подчиненными, вы не раз получите от них одобрение; впрочем, имейте в виду, что увлекаться кодированием для менеджера опасно. С учетом численности персонала отдела эта деятельность может стать необходимостью, однако за написание кода, с одной стороны, и организацию этого процесса, с другой, отвечают разные участки мозга. Переключаться с одного вида деятельности на другой довольно сложно.
В нашей работе необходима концентрация — любой специалист в области разработки программных средств должен стремиться в каждый конкретный момент заниматься чем то одним.
Если вы будете активно участвовать в разработке, вам вряд ли хватит стандартных сорока часов в неделю.
Участие — это способность пробежать всю дистанцию, ни разу не теряя внимания. Иногда, поскольку вы лидер, придется исполнять роль тренера, стоящего у трассы, но не стоит забывать — лучшие лидеры сами умеют бегать.
В общем, участие предполагает переживание трудностей и побед вместе с подчиненными. Для этого нужно быть всегда готовым помочь окружающим, уметь прогнозировать возникновение проблем и решать их прежде, чем они окажут воздействие на сотрудников. Другой гранью участия является проявление здорового интереса к личной жизни подчиненных. Не нужно ни к кому навязываться в друзья — просто проявите понимаете того факта, что исполнением рабочих функций их жизнь не ограничивается.
Надстройка
Наставничество
Обучая других обучать, мы приумножаем свои усилия и повышаем эффективность.
Наставничество — это больше, чем преподавание, поскольку оно предполагает передачу педагогических навыков.
Наставничество подразумевает обучение самообразованию при одновременной передаче знаний.
Цель наставничества — воспитать лидеров не хуже самого наставника, а может быть, даже лучше него.
Наставничество — это сочетание участия и понимания (двух фундаментальных принципов лидерства), направленное на повышение квалификации сотрудников.
В зависимости от ситуации вы должны демонстрировать владение двумя видами наставничества:целевым и комплексным.
- Целевое наставничество (targeted mentoring) предполагает оказание сотрудникам вполне конкретной помощи, например в написании процедуры вызова интерфейса прикладного программирования или подпрограммы сортировки — в зависимости от потребности. Такого рода наставничество востребовано всегда.
- Для комплексного наставничества (complete mentoring) нужно нечто большее. Оно требует установления с сотрудниками тесных отношений, построенных на искренности и взаимопонимании (в то же время необходимо отдавать себе отчет, что не со всеми сотрудниками это возможно). Выберите из числа подчиненных самых многообещающих — тех, кого вы хотели бы видеть своими последователями, — и уделите их воспитанию максимум внимания. Делясь своими знаниями, старайтесь укреплять отношения с избранниками.
Вознаграждение
Выдающиеся успехи нужно поощрять.
За то чтобы сотрудники выкладывались на все сто, им платят: дополнительные поощрения должны распространяться лишь на тех, кто, превысив ожидания, прыгнул выше головы.
Не забывайте, что вознаграждать нужно только тех, кто показал исключительные достижения, превысив все ожидания.
Исправления
Настоящий лидер программистов старается сделать так, чтобы его подчиненные сами находили свои ошибки и учились на них.
Быть может, в человеческих отношениях действительно слишком много лицемерия, но лидеру программистов это качество противопоказано.
Предвидение
Способность предугадывать будущее развитие событий привлекает к вам последователей. Некоторые даже считают, что это — основное качество лидера.
Сочетание «глобального» осмысления деятельности вашей компании с техническими навыками и административной проницательностью позволяет выработать новые методы повышения продуктивности сотрудников. Такого рода практичное предвидение в нашей деятельности крайне приветствуется.
Адаптация
Корректировка своих действий в соответствии с текущими условиями это необходимость и одно из основных требований к хорошему лидеру.
Любую трудную задачу следует рассматривать как возможность для дальнейшего развития, а отнюдь не как очередной повод «сжать кулаки».
Среди практических вопросов адаптации, которыми вам стоит задаться, можно привести следующие.
- Каким образом нужно скорректировать мой стиль руководства, чтобы лучше решать текущие задачи?
- Какие новые технологии стоит изучить моим сотрудникам, чтобы наши продукты сохранили конкурентоспособность?
- Каких новых сотрудников мне стоит нанять, чтобы повысить компетентность персонала, а соответственно, и качество исполнения новых проектов?
- Можно ли изменить структуру отдела так, чтобы повысить качество, не срывая при этом сроков выхода продуктов на рынок?
Все эти вопросы (а может быть, и какие-то другие, которые придут вам в голову) нужно задавать себе (а желательно — и сотрудникам) ежедневно.
Пойдут ли за вами?
Принуждение
Прибегать к силе принуждения нужно в последнюю очередь.
Не надо пугаться фраз типа «требования рынка» и «наши конкуренты располагают...» и соответствующих средств мотивирования — они работают!
Не стоит прибегать к аргументам типа «потому что я так сказал».
Долг
Как лучше всего воспитать чувство долга в своих сотрудниках? Нужно культивировать в них ощущение гордости за свои коллективные достижения. Все хотят быть причастными к победам.
Восхищение
Для того чтобы люди восхищались вами постоянно, да еще и получали от этого ощущения силы для своей деятельности, нужно не отступать от своего стиля руководства, неизменно демонстрировать эффективность лидерской деятельности и поддерживать стабильные отношения с персоналом; иными словами — проявлять последовательность.
Вознаграждение
Ценность тех видов вознаграждения, к которым руководители прибегают чаще всего (деньги, выходные и т. п.), ограничена во времени.
Знание
Станьте экспертом в своей области, и программисты, готовые идти по заданному вами пути, не заставят себя ждать.
В нашей индустрии много блестящих программистов и лидеров, но нужно еще больше.
Возрастные аспекты лидерства
Мы все можем учиться на чужом опыте. Будь вы самым молодым или, наоборот, самым старшим из всей команды — в любом случае у окружающих есть чему поучиться. Способность к обучению не имеет возрастных рамок. Отказ от повышения уровня знаний в нашей отрасли чреват закатом карьеры.
Как лидеру сочетать форму и содержание
Форма — это выраженные в поведении личностные характеристики, которые в нашем случае переплетаются с реализацией принципов лидерства. Форму, которая безусловно важна, нужно удачно сочетать с содержанием, которое отражает ваши представления о важнейших лидерских принципах. Форма без содержания — это не более чем голая методика, лишенная стратегической ценности.
Хорошо бы еще учиться на собственных достижениях и ошибках в роли лидеров.
Энди Гроув — агрессивный параноик
Не ставьте себя в изолированное положение — постоянно следите за факторами, которые оказывают влияние на индустрию в целом и на ваших сотрудников в частности. Если для этого придется стать параноиком — станьте им! Лучше ожидать неожиданное, чем удивляться, когда оно предстанет перед вами в полный рост.
Билл Гейтс — одержимость и расчетливость
Впрочем, если вы не понимаете, что одержимость успехом в конечном итоге приводит к успеху, значит, вы недооцениваете один из важнейших аспектов лидерства. Как вы уже знаете, важнейшим принципом деятельности лидера я считаю умение концентрироваться. Этим искусством в совершенстве владеют одержимые.
Вы — (введите недостающее слово)
Качества лидера нельзя почерпнуть из выступлений на семинаре или с полки вашего любимого книжного магазина; лидерство неизмеримо в долларах и центах. Лидерство происходит из деятельности в интересах команды — деятельности разумной и направленной на достижение стратегических коммерческих целей. Поймите, что люди — это, по существу, средства производства, и ваш успех зависит от уважения к вам со стороны подчиненных, которых вы призваны защищать от происков внешних сил»
Don S. Olson and Carol L. Stimmel, The Manager Pool: Patterns for Radical Leadership
Резюме
Лидерство формируется в практической деятельности
Путь к лидерству индивидуален для каждого человека и зависит от конкретных условий:
- компании, в которой вы работаете
- сотрудников, которыми руководите
- времени, в котором живете
Без теории не обойтись, но лишь практика вдыхает в нее жизнь.
Очень важно обращаться к практике документирования. Если вы положительно относитесь к этому занятию, заведите дневник и фиксируйте в нем свою деятельность.
Отталкивайтесь от основных принципов лидерства
Переходя к реальной практике лидерства, не забывайте фундаментальные принципы. Ими пользуются многие мои коллеги и учителя. Не жадничайте и делитесь с окружающими знаниями, которые, по вашему мнению, правдивы. Рассказывая правдивые истории, вы сможете зафиксировать накопленный опыт и утвердить его в своем характере.
Необходимо соблюдать пять основных принципов лидерства.
- Понимание. Определитесь с тем, куда вы идете.
- Передача знаний. Делитесь своими знаниями — так, чтобы подчиненные все поняли.
- Делегирование. Общие задачи нужно решать общими усилиями.
- Проверка. Проверяйте свои действия и то, что делают ваши подчиненные в контексте достижения поставленных целей.
- Участие. Погружайтесь в работу с головой — будьте примером для остальных.
Свое развитие основные принципы лидерства получают в следующих областях деятельности.
- Наставничество. Учите окружающих учить.
- Вознаграждение. Награждая сотрудников за выдающиеся результаты, вы сможете создать ситуацию, в которой одни успехи естественным образом выливаются в другие.
- Исправление. Помогая сотрудникам учиться на собственных ошибках, повышайте их квалификацию.
- Предвидение. Предугадывайте проблемы, пока они не ударили по вашей команде, — это станет хорошим стимулом для окружающих.
- Адаптация. Совершенствуйтесь, извлекая уроки из собственных ошибок.
Что дальше
-
Глава 9 • Как ужиться с начальством
Прочность и гибкость рабочих отношений с начальницей — это один из тех факторов, которые способны ускорить движение к лидерству. Лидер тоже должен уметь следовать в четко заданном направлении; эти навыки помогут вам выстроить план действий относительно собственных подчиненных в контексте решения установленных вами и вашей начальницей приоритетных задач.
Как понять, чем живет ваша начальница
Чем выше положение в управленческой иерархии, тем больше ответственность и тем шире область деятельности, на которую она распространяется.
Руководители, которые стоят в иерархии выше вас, ответственны за всех нижестоящих.
Честность и принципиальность против подтасовок и лжи
Находясь под влиянием рыночной конъюнктуры, компании нередко устанавливают сроки сдачи продуктов, не советуясь с руководителями вашего уровня. Ситуации, когда утверждение бизнес-плана предшествует окончательной формулировке коммерческих требований, случаются сплошь и рядом.
В идеале планирование должно осуществляться в такой последовательности:
- Утверждение коммерческих требований.
- Создание проектного решения, допускающего успешную реализацию в продукте всех требований.
- Макетирование проектного решения с целью выявления его недостатков и последующей корректировки проектного решения или требований.
- Планирование проекта с учетом сроков разработки и тестирования.
Вы должны осознавать нереалистичность поставленных перед вами задач в свете реальных условий.
Честностью я называю способность признаться самому себе в трудности задачи, но все-таки попытаться ее решить.
Стремиться нужно к балансу между ожиданиями и реальными действиями, исходя при этом из соображений честности. Иначе говоря, если вы пару раз сорвете сроки, никто не удивится. Это исправимые вещи. Значительно труднее справиться с привычкой давать невыполнимые обещания. Если вы уж обещаете что-то, не забывайте в полной мере доносить до сведения начальства все те факторы, которые могут воспрепятствовать реализации плана.
Введение в запаздывающий проект новых сотрудников увеличивает время разработки
Закон Брукса
Как помочь начальнице удачно спланировать процесс
Как правило, планирование в масштабах предприятия проводится начальством; вы же призваны заменить общие наметки детальным планом.
В своих мемуарах, рассказывая о Центре управления полетами, Джин Кранц (Gene Kranz) раскрывает принципы, которые, по его мнению, определили заметные успехи подведомственной ему структуры.
- Дисциплина. Способность лидировать, с одной стороны, и идти в заданном направлении, с другой. Понимание того, что для решения задачи необходимо, прежде всего, совладать с собой.
- Компетентность. Космические проекты не терпят небрежности и безразличия — требуется полная готовность к выполнению задания и тотальная устремленность на успех.
- Уверенность. Вера в себя и окружающих; сознание необходимости задушить страх и неуверенность.
- Ответственность. Понимание того, что поставленную задачу нельзя никому передоверить; есть всего две альтернативы: либо сделать то, что требуется, либо потерпеть фиаско.
- Упорство. Нацеленность на преодоление возможных трудностей; последовательность в достижении цели, даже если для этого необходимо пройти по сложному пути.
- Командные усилия. Уважение к способностям друг друга и их разумная эксплуатация; ощущение работы над общей целью и коллективной ответственности за результат.
Знайте свой потолок
При общении с начальством вы не должны заблуждаться относительно уровня собственных знаний. Начальница выше оценит честное «не знаю», чем убедительное, на первый взгляд, мнение, которое высказывается по незнанию проблемы.
В отношениях с начальницей всегда имейте в виду эти два способа решения задач: стратегию и тактику. Скорее всего, в стратегическом отношении она вас превосходит. Если это не так, постарайтесь ей помочь; если же я прав, учитесь! Вероятно, она сможет лучше решать свои задачи, если сконцентрируется на стратегии, а решение тактических вопросов поручит вам. Ваше сотрудничество выгодно обеим сторонам.
Как ожидать неожиданность
Шанс приходит только к тем, кто к нему готов.
Изобретатель современных вакцин Луи Пастер (Louis Pasteur)
Как «подготовиться» к непредсказуемому? Хороший вопрос, на который нет очевидного ответа. С одной стороны, вы должны постоянно пополнять свои знания о технологических возможностях с учетом имеющихся и обещающих вскоре появиться инструментальных средств. Для этого нужно держать в голове технологические новинки в самых разных областях.
Как преодолеть безынициативность компании
У вас есть преимущество, о котором вы, возможно, даже не подозреваете: вы более восприимчивы к тенденциям в мире разработки программных продуктов за пределами конкретного предприятия. Благодаря своему высокому посту ваша начальница, скорее всего, хуже ориентируется в этих вопросах. Такая ситуация, к сожалению, складывается во многих компаниях, и справиться с ней зачастую нет никакой возможности.
Следите за тенденциями в отрасли
В комплекс обязанностей технического лидера входит, в частности, отслеживание новейших тенденций в индустрии и анализ их влияния на процесс разработки.
Кризис приходит в высокотехнологичные компании в том случае, если они сначала отказываются повиноваться веяниям времени, а затем внезапно сталкиваются с необходимостью всеобщей модернизации.
Вы стоите чуть ли не ближе всех к линии фронта; вовремя сообщать другим представителям компании о допущенных ошибках необходимо — ведь от этого зависят и ваши дальнейшие успехи.
Экспериментируйте с новыми методами и приемами
Технический лидер должен апробировать новые методы реализации коммерческих задач. Цель такого рода действий — не в том, чтобы выбрать из нескольких альтернатив. Главное — найти способ снизить издержки разработки и/или повысить ценность предлагаемых компанией продуктов и услуг.
Учитесь чувствовать время
Корпоративная инерция приводит к тому, что когда экономические или технологические условия диктуют потребность в переменах, сотрудники компании их попросту не замечают.
Не забывайте, что интересы клиента на первом месте
Есть и другой вид инерции, который в технологичных компаниях происходит от чрезмерного внимания к методам реализации в ущерб результату. В конце концов, вы призваны создавать продукты и услуги, которые удовлетворяют потребностям клиентов.
Резюме
Основная ваша цель, по-моему, должна состоять в том, чтобы наладить с боссом конструктивное взаимодействие, от которого выиграют обе стороны.
Ниже я привожу краткий перечень наиболее важных моментов этой стороны вашей деятельности.
- Войдите в положение начальницы — она в своей работе подвергается серьезному давлению. Первой реакцией на ее замечания должно быть согласие, однако если у вас есть разумные и обоснованные предложения, выскажите их.
- Честность в суждениях в любом случае предпочтительнее нереалистичных обещаний — пусть даже она иногда приводит к не слишком приятным последствиям.
- Помогайте начальнице в вопросах планирования. Настаивайте на необходимости разработки реалистичных планов и прилагайте максимум усилий к их реализации.
- Если вам нечего противопоставить замечаниям начальницы, признайте поражение. Не стоит вешать ей лапшу на уши в попытках замаскировать собственные огрехи.
- Будьте готовы к непредвиденным изменениям — чем лучше вы будете осведомлены, тем проще будет с ними столкнуться. Иногда неожиданные решения исходят от начальства, в иных случаях — обусловливаются внешними факторами. Тщательная подготовка есть залог ваших успехов.
- Следите за признаками инерции в самом себе и в начальнице. Если она отрицает очевидную потребность в изменениях, старайтесь спасти положение, пока не поздно.
Чтобы окончательно закрыть тему взаимоотношений с начальницей, скажу еще одну вещь. Обращайтесь с ней так, как хотели бы, чтобы обращались с вами. Это золотое правило, которое, хоть и ассоциируется с воскресной школой, работает во всех сферах человеческой деятельности.
Конец уже близко
-
Глава 10 • Слова без песни
Лучшее, что вы можете сделать, — это привлечь весь свой интеллектуальный ресурс к решению текущих проблем, не забывая при этом про конечную цель: вывести подчиненных из состояния хаоса и заставить их двигаться в одном направлении.
Распределенная рабочая сила
Если сотрудники находятся в разных зданиях или даже в разных часовых поясах, обеспечить гармоничное сочетание сотрудничества с уединением, что является основным фактором продуктивной деятельности группы, не так-то просто.
Суть проблемы
Если вам удается успешно сочетать сотрудничество с уединением, процесс разработки существенно упрощается.
- Уединение. Способность работать, не отвлекаясь на внешние раздражители, в условиях, допускающих абстрактное мышление.
- Сотрудничество. Обмен предложениями на очной встрече вплоть до выработки консенсуса во мнениях всей группы или нескольких программистов, работающих над решением одной задачи.
Проблемы, которые возникают в распределенных командах, можно обобщенно сформулировать следующим образом.
- Решения, которые при условии географической централизации принимаются за считанные минуты, растягиваются на многие часы и даже дни.
- Непосредственная проверка деятельности и продуктивности персонала заменяется взаимодействием с сотрудниками по телефону и электронной почте. Таким образом, хрестоматийный принцип руководства «доверяй, но проверяй» не соблюдается.
- Техническое проектирование осуществляется в основном не в интерактивном режиме, а посредством документов. Документы же должны быть не средством, а результатом сотрудничества. Из-за ограничений по времени этап проектирования растягивается или вообще пропускается.
- Сотрудники группы лишены чувства работы в единой атмосфере. Возможности для выстраивания дружеских отношений отсутствуют.
- Виртуальное рабочее пространство формируется средствами электронной почты и службы мгновенной передачи сообщений. При всей своей полезности они не заменяют очного взаимодействия.
- Большую часть времени вы, руководитель, проводите с телефонной трубкой в руках.
Решение
Если провести централизацию нет никакой возможности, значит, придется адаптировать ваш стиль руководства к создавшимся условиям.
Планирование
Во-первых, вы должны тщательно продумать вопрос распределения задач. Это невозможно без предварительного планирования проекта, позволяющего выделить в его рамках отдельные блоки, которые можно распределить между подчиненными с поправкой на недостаток сотрудничества.
Если вам не удастся четко сформулировать отдельные задания, на их уточнение уйдет гораздо больше времени, чем обычно, — просто в силу удаленности от сотрудников.
Постарайтесь во время этого сеанса планирования решить две задачи:
- утвердить основы проектного решения
- сделать первые шаги в направлении формирования команды
Взаимодействие
Для менеджера в практическом смысле это означает, что на проверку новых писем приходится тратить значительную часть рабочего дня. Но ведь у вас много других административных обязанностей, а значит, нужно учиться отвечать на письма как можно быстрее. Попытайтесь ограничить переписку по электронной почте темами, которые можно адекватно выразить в письменной речи или на схемах. Все дискуссии следует проводить по телефону, а для решений, требующих документирования, вполне подойдет электронная почта.
Проверка
В отсутствие начальника люди начинают валять дурака — это в природе человека. Как с этим бороться? Сравнительно эффективный мониторинг возможен только при наличии формального плана сдачи сотрудниками результатов и при условии тщательной проверки его выполнения. Структура распределения работ в данном случае должна быть мельче, чем обычно, — так вы сможете с большей уверенностью предотвращать отклонения от графика разработки проекта.
Личные качества
Чем чаще вы будете посещать своих сотрудников в их привычных рабочих условиях, тем выше шансы на построение полноценной команды. Обозначая свое присутствие на рабочем месте, вы способствуете развитию у сотрудника чувства участия в коллективной деятельности и придаете вес своему лидерству в остальное время.
Культурный фактор в менеджменте
Имея дело с неоднородным в культурном отношении персоналом, вы должны в первую очередь видоизменить привычные методы взаимодействия и мотивирования. Стремитесь к неофициальному общению с представителями иных народов — интересуйтесь их семейными обычаями и культурными традициями. Так вы сможете добиться от них большего рвения; кроме того, видя, что вы пытаетесь вникнуть в их особое миропонимание, программист сможет почувствовать свою ценность в команде.
Язык и культура
С чужаками нельзя общаться так же, как с корешами из соседнего двора, — не выйдет!
Мотивация чужаков и контроль над ними
Имейте в виду, что деньги — это наименее эффективный способ построения командной атмосферы в многокультурной среде.
Оценка методологий разработки программных средств
Создавайте собственные методы и приспосабливайте их для нужд своей организации — вне зависимости от того, что они собой представляют, суть должна быть одна: оперативная разработка качественного программного обеспечения.
Программная инженерия
Программная инженерия — это систематический, структурированный, количественный подход к разработке, функционированию и сопровождению программных средств; иначе говоря, способ применения инженерных методов в разработке программных продуктов
Это не в меру сжатое определение, по-моему, можно расширить.
- Систематически — все аспекты разработки можно контролировать в едином процессе.
- Структурно — последовательное употребление должных методов с целью производства качественного программного продукта.
- Количественно — все требования известны и допускают отображение на методы реализации.
С моей точки зрения, программная инженерия — это скорее идеальная конструкция, чем реальная методология;
MSF
Концептуальная основа метода MSF (Microsoft Solutions Framework — каркас решений Microsoft) предполагает координацию групп, тем или иным способом ответственных за процесс разработки.
Согласно выпущенному компанией руководству3, предлагаемая методика основывается на «трех китах».
- Прикладная модель строится на основе предоставляемых услуг, побуждая разработчиков рассматривать любое приложение как сеть услуг, в которой характеристики и функциональность можно пакетировать вне зависимости от функциональных границ и в расчете на многократное использование.
- Итерационная модель процесса жизненного цикла разработки ориентирована на поставки, отталкивается от рисков и включает четыре основных этапа.
- Используется модель масштабируемой группы разработчиков, состоящей из шести равнозначных ролей.
Что касается этапов MSF, то здесь группа разработчиков должна принять на вооружение ряд принципов.
- Видение/рамки. Основное внимание уделяется не требованиям, а рамкам работ.
- План проекта. Заказчики и участники группы должны договориться о поставках, приоритетах и ожиданиях.
- Закрытые рамки/Первое применение. Первая бета версия готового продукта.
- Выпуск. Продукт или услуга предоставляется рабочей группе и группе поддержки.
Роли в MSF распределяются следующим образом.
- Руководство продуктом. Особое внимание уделяется оценке продукта с коммерческой точки зрения.
- Управление программой. Разработка функциональных спецификаций, утверждение и корректировка графика.
- Разработка. Конструирование продукта (или услуги), соответствующего спецификации и ожиданиям заказчиков.
- Тестирование. Выявление всех проблем перед выпуском программы.
- Обучение пользователей. Каждый пользователь должен получать от продукта максимум возможностей.
- Логистика. Обеспечение беспрепятственных выпуска, установки и миграции.
Лично я положительно оцениваю свой опыт применения MSF — правда, этот метод требует адаптации к реалиям корпоративной культуры и корректировки отдельных характеристик рекомендованных групп.
Экстремальное программирование
Основное внимание в XP уделяется командному программированию с акцентом на код сам по себе. Последний понимается как средство передачи требований и изменений, а также ключ к пониманию задачи программного продукта.
Метод экстремального программирования ориентирован на проекты, допускающие конструирование силами компактных групп (численностью от двух до десяти разработчиков), участники которых напрямую получают информацию от заказчиков. Процесс XP, таким образом, управляется самой группой разработчиков, а центральное место в методологии занимает программист. Коммерческие специалисты фактически отстраняются от руководства, ограничиваясь «поощрительными» функциями. Управленческая инициатива в группе принадлежит инструктору — программисту, ответственному за процесс разработки в целом.
Гибкая разработка
Любой эффективный метод разработки программного обеспечения является таким по свой природе. Гибкость означает способность к адаптации, к изменяющимся требованиям и развивающейся технологии, в том числе на этапе конструирования проекта. Мнения большинства специалистов в области разработки программных средств сходятся в одном: гибкость — это священный Грааль всех методик разработки.
Четыре основные проблемы, свидетельствующие, в зависимости от решения, о гибкости тех или иных методов.
- Отдельные лица и взаимодействие или процесс и инструментальные средства.
- Функционирующее программное обеспечение или комплексная документация.
- Сотрудничество заказчиков или переговоры по контракту.
- Реакция на изменения или следование плану.
Признавая определенную ценность положений, расположенных в правой части списка, авторы придают большую значимость его левой части.
На самом деле методология гибкости — это, скорее, совокупность принципов, применимая к любым процессам и мероприятиям в области планирования, направленным на конструирование программных средств.
Когда требования меняются во время цикла разработки, большинство из нас проклинают все вокруг. Тем самым мы пытаемся дистанцироваться от реального положения вещей — ведь чем глубже мы разрабатываем проблему реализации требования, тем больше двусмысленности обнаруживаем, а значит, возвращаемся к этапу определения продукта. Гибкие методы культивируют определенное восприятие неопределенности.
Мастерство — ядро любого успеха
Программные продукты создают люди, а отнюдь не процессы, исполняемые автоматами.
Мастерство знаменует собой возвращение к корням разработки программных средств. Хорошие разработчики понимают (и всегда понимали), что программирование — это деятельность из области искусства. Какими бы потаенными и подробными техническими знаниями ни обладал разработчик, в конечном итоге процесс разработки приложений сводится к ощущению и опыту. Можно знать самые изощренные детали языка программирования Java, но при этом, не чувствуя эстетической стороны программ, так и не стать достойным разработчиком. Если же человек чувствует процесс разработки программных средств, знание конкретных технических деталей уходит далеко на второй план. Лучшие разработчики постоянно учатся новым технологиям и методологиям; постижение очередной технологии для разработчика должно стать обыденным занятием».
Pete McBreen, Software Craftsmanship
Следуя духу мастерства, создайте собственную методологию разработки. Учитесь у коллег, сумевших документировать изобретенные ими процессы, и пусть опыт станет самым верным средством проверки методов. В конце концов, суть науки сводится к постижению истины путем экспериментов
Технологические революции
Революции в нашей отрасли, бесспорно, случаются. Впрочем, симптомы грядущих изменений, как правило, прослеживаются задолго до окончательного утверждения новых идей и их воздействия на процесс разработки. Вы должны научиться предсказывать тенденции, обещающие заявить о себе через некоторое время.
Я рекомендую вам в ходе долгосрочного планирования учитывать следующие стратегические проблемы.
- Не разбивайте лагерь. Знания ваших подчиненных программистов не должны ограничиваться единственным языком и одной инфраструктурной реализацией архитектурных решений коммерческих задач.
- Объединяйте усилия. См. предыдущий пункт. Обращайтесь к зарекомендовавшим себя решениям от разных поставщиков — чем больше их будет, тем лучше. Время от времени привлекайте консультантов — пусть делятся с сотрудниками новыми знаниями. Стимулируйте процесс обучения за счет построения силами сотрудников компактных макетов, нацеленных на проверку применимости новых методик к разработке более крупных проектов.
- Не задерживайтесь. Успехи компании иногда порождают в ее сотрудниках инертность, которая не позволяет им внимательно отслеживать новые ходы конкурентов и находить возможности для дальнейшего роста. Вы должны стараться сохранять гибкость по части применения новых методов и инструментов. Не отвыкайте от неудобств — даже в том случае, если в данный момент вы их не ощущаете.
Самое главное — путем плотного взаимодействия с начальником и подчиненными выработайте комплексную стратегическую программу, то есть руководство к действию в постоянно меняющемся мире, в котором мы, разработчики, все пребываем.
Экономические несчастья
Пожалуй, самый важный урок, которому нас учат многочисленные кризисы, состоит в следующем: если компания перестает приносить доход, значит, вероятно, конец близок. Таким образом, лучший способ предотвратить наступление кризиса в компании — это следить за издержками разработки и стремиться к рентабельности. Совет на самом деле правильный, но лишь при условии верно выбранного времени. Таким образом, очевидно, что во главе угла находится именно время.
Если правильный выбор времени играет такую важную роль, значит, синхронизировать экономические часы вашей компании с реальной ситуацией можно лишь за счет последовательности. Что я имею в виду? Занимая лидирующую позицию в своей команде, вы должны придерживаться нижеследующих правил.
- Вы — не только технарь, но и бизнесмен. О стоимости, таким образом, нужно думать не меньше, чем о коде.
- Составьте представление о реальных затратах на содержание вашего отдела. Ежемесячно собирайте данные о стоимости технических средств, оборудования, услуг, инструментов и заработной плате персонала.
- Сравнивайте окончательную фактическую стоимость проекта с предварительными расчетами. Оценивайте расхождения между сметой и расходами и на основе этого опыта учитесь подходить к составлению смет с более реалистических позиций. Не забывайте поговорку: «День профилактики стоит года лечения».
- Держите зарплаты сотрудников под контролем. Платите им столько, сколько они заслуживают, сверяясь при этом с рыночной конъюнктурой.
Увольняя сотрудника, позаботьтесь о его дальнейшем трудоустройстве — пишите рекомендательные письма и звоните работодателям. Почувствовав, что скоро могут уволить вас самого, немедля приступайте к поиску нового места работы (если, конечно, это возможно) — не ждите, пока извещение об увольнении придет по факсу. Перейти с одной работы на другую значительно проще, чем выбраться наверх из армии безработных.
Одиночество руководителей
Лидеры, осваивающие во главе своих групп новые территории, часто ощущают свое одиночество. Это — цена лидерства.
Если процесс адаптации к административным функциям еще не закончен, вполне возможно, вы чувствуете себя не слишком комфортно — в эмоциональном плане.
Уделяйте время исследовательской работе
Рекомендую как можно больше времени уделять исследованию новых технологий, написанию кода с помощью не испробованных ранее инструментов и методик. Не стоит, впрочем, заниматься кодированием в рамках текущих проектов — если, конечно, вы не испытываете недостатка в персонале.
Одна из наиболее существенных технических задач лидера сводится к оценке применимости для внедрения в проект новых программных средств, методик и вариантов архитектуры. Вы — лидер и наставник — не сможете обучать сотрудников, не зная реального положения вещей в тех или иных областях. Подобного рода анализ — занятие трудоемкое и требующее серьезной технической подготовки, а это значит, что ваш опыт в роли высококвалифицированного программиста будет весьма кстати.
Как превратить административные функции в инженерные
Автоматизируйте процесс планирования проекта и еженедельного распределения рабочих заданий. Если вы поставите своей целью административную деятельность и не будете всеми силами стараться избегать ее, то сможете достичь сопоставимых высот.
Стратегическое планирование как наука
Может статься, что вашей основной обязанностью окажется стратегическое планирование развития компании в техническом аспекте. Таким образом, вы должны уделить особое внимание совершенствованию навыков создания стратегических планов, в которых должны не просто прогнозироваться возможные векторы развития, а буквально строиться будущее.
Разрабатывая стратегию на будущее, необходимо изучать прошлое. Проанализируйте старые планы, подумайте, почему некоторые из них увенчались успехом, в то время как другие провалились. Таким образом, вам предстоит стать историком применявшихся в компании технологий и предсказателем тенденций на многие годы вперед. Говорят, «те, кто отказываются учить уроки истории, обречены на ее повторение», — быть может, это и банально, но смысл очевиден.
Учитесь ценить человеческие отношения
На самом деле речь о личностной ценности каждого конкретного сотрудника группы, на которого вы затрачиваете время и энергию, пытаясь стимулировать его рост как программиста и потенциального лидера.
Никогда не забывайте о том, что настоящий лидер пытается подвигнуть своих подчиненных на максимально продуктивную деятельность. Чем больше вы в них вкладываете, тем лучше результат. Следовательно, все случаи формального и неформального общения с сотрудниками, по большому счету, воспринимаются как рабочие. Вы — начальник, и именно в этой роли вас видят и оценивают подчиненные.
Финал
Мы пришли к следующим умозаключениям.
- В контексте распределенных рабочих групп усиливается значимость планирования и проверки проекта.
- Для того чтобы управлять сотрудниками, относящимися к разным культурам, вы должны стать гражданином мира и подавить те национальные характеристики, которые могли бы стать препятствием к взаимопониманию и снизить мотивацию вашего многонационального персонала к успешному ведению деятельности.
- Вам предстоит постоянно совершенствовать применяемые методологии разработки. Одним из необходимых условий успеха является стремление к гибкости всех процессов.
- Технологические революции поддаются прогнозированию, а значит, к ним можно подготовиться. Стратегическое планирование на основе понимания предстоящих перемен — вот средство, позволяющее предотвратить излишнюю суету в случае их наступления.
- Экономические кризисы случаются регулярно, и ничего с этим не поделаешь. Стремлением к прибыльности своей компании вы должны стараться свести к минимуму последствия неблагоприятной экономической ситуации. Для начала научитесь руководить отделом не только как технарь, но и как бизнесмен.
- Лидерство иногда приводит к ощущению одиночества. Существуют, впрочем, средства, позволяющие безболезненно выйти из этого состояния. Откажитесь от самоизоляции. Культивируйте в себе активный творческий подход к исследовательской деятельности, администрированию, планированию и общению с людьми.
Лидерство — это увлекательное приключение. Я уверен, возможностями для исследования и творчества наша индустрия изобилует. Мы, люди технической направленности, работая в ней, имеем все шансы расширить свой кругозор и стать пионерами кадрового и программного обеспечения. Итак, цените каждый миг рабочего дня и извлекайте из него пользу — как для себя, так и для подчиненных.
Послесловие • Снова в плавание
Руль
Чем управляется ваша профессиональная деятельность? В идеале она должна основываться на двух важнейших императивах: «сконцентрируйся и лидируй!»
Ищите любую возможность попрактиковаться в деле лидерства — если не закрывать глаза на окружающий мир, такие случаи будут подворачиваться на каждом шагу.
Концентрация — умение не отвлекаться на внешние раздражители помогает уделять максимум внимания решению самых важных задач.
Устранению раздражителей помогает также правильная организация административной деятельности. Внешне прибранный рабочий стол свидетельствует о структурированности мысли, а беспорядок, напротив, выражает неопределенность по поводу приоритетов. Обратите внимание: я сказал «внешне». На самом деле, важнее всего ваше внутреннее отношение к рабочим вопросам.
Чем внимательнее вы будете относиться к своим сотрудникам, тем больше вероятность, что они станут воспринимать ваши задачи как свои и делать все для их решения.
Преданными люди становятся не сразу — для того чтобы сформировать в них это качество, необходимо постоянно терпеливо принимать участие в их рабочей жизни.
Парус
Способность идти (в зависимости от ситуации) по ветру или против ветра есть необходимое условие продвижения в верном (в контексте целей вашей компании) направлении.
В условиях постоянного ужесточения бизнес-требований и развития технологий изменения неминуемы. Пользователи едва успевают за этой динамикой, не говоря уже о программистах, которые часто повторяют собственные ошибки.
Для того чтобы устоять в бурю, нужно постоянно стремиться к созданию качественных программных продуктов и регулярно повышать планку этого самого «качества». Вам придется утрясать сроки с начальством, препираться со специалистами по анализу рынка насчет задач, на решение которых способен тот или иной продукт, как-то разбираться с недостатками сетевой инфраструктуры... Этот список можно продолжать бесконечно. Ничего удивительного в том, что продукты нашей деятельности зачастую несут оттенок незаконченности. Дело даже не во впечатлении — они действительно являются таковыми. Вероятно, лишь в идеальном мире можно было бы создать условия для производства абсолютно безошибочного продукта. Впрочем, на пути к идеалу мы движемся слишком медленно — непозволительно медленно. Сосредоточьтесь на качестве, и вы сможете завоевать уважение коллег и успех на рынке.
Для того чтобы постоянно поднимать планку «качества», нужно быть увлеченным своей работой — только при этом условии, кстати говоря, ваши лидерские начинания имеют шанс на развитие. Именно увлеченность позволяет удерживаться на плаву в шторм. Увлеченность формируется за счет баланса рабочей деятельности, с одной стороны, и приятных для вас мелочей жизни, с другой. Невоздержанность в той или иной сфере жизни приводит к потере увлеченности, а следовательно, к усталости и краху. Старайтесь удержать увлеченность работой и любовь к жизни — превращайте все свои начинания в увлекательные приключения.
Отдыхать необходимо — иначе вы рискуете потерять увлеченность и, в конечном итоге, «сгореть». Если топлива не осталось, зажечь огонь заново не так-то просто.
Якорь
Люди устроены немного по-другому. За некоторый период времени они могут несколько раз сменить маску, а в экстренных ситуациях — измениться до неузнаваемости. Ваша задача — научиться работать с людьми в их самых необычных обличьях, с тем чтобы выстроить их однонаправленную деятельность. Относительно направления, в котором всем предстоит двигаться, вы не должны испытывать никаких сомнений. Кроме того, вам нужны факторы притяжения (attractors). Необходимо научиться привлекать к себе людей за счет уверенного лидерства. Даже самый талантливый руководитель на это не способен. Творческому и продуктивному программисту это тоже не под силу. Но, сосредоточившись на развитии в своем характере лидерских качеств, вы сможете добиться в этой области нужного результата. Дело не в методиках. Совершенствовать методики позитивного мышления можно сколько угодно — привлекательными для сотрудников они все равно не станут. Незаменимым в этом отношении оказывается великолепие последовательного и продуманного лидерства.
Переосмысливать фундаментальные принципы лидерства нужно по мере необходимости. Что сделать из того, до чего вы еще не додумались? Какие практики следует прекратить? Трудно надеяться на то, что стать лидером программистов вам удастся лишь по той причине, что вы занимаете пост менеджера, руководителя группы разработчиков, начальника отдела разработки — да хоть менеджера по информации! Право на лидерство нужно еще заслужить — для этого необходимо осознать свои слабые места и стремиться к их устранению. Надеяться на то, что за ваши достоинства вас будут превозносить до небес, не стоит — но, по крайней мере, они (достоинства) возымеют действие на сотрудников компании. Ваши недостатки, наоборот, не пройдут незамеченными — о них будут говорить, в том числе и вам самим; да, так устроен мир, ничего не поделаешь. В общем, налегайте на свои достоинства.