Главная страница
Навигация по странице:

  • Три столпа социального общения

  • Почему эти столпы так важны

  • Смирение, уважение и доверие на практике

  • Усмирите свое эго

  • Учитесь критиковать и принимать критику

  • Получив отрицательный результат, повторите попытку

  • Культура подробного анализа причин неудачи

  • Будьте открыты для сотрудничества

  • Действовать по-гугловски

  • Делай как вGoogle


    Скачать 5.77 Mb.
    НазваниеДелай как вGoogle
    Дата31.05.2022
    Размер5.77 Mb.
    Формат файлаpdf
    Имя файлаDelay_kak_v_Google_Razrabotka_programmnogo_obespechenia_2021_Tom.pdf
    ТипДокументы
    #559735
    страница6 из 69
    1   2   3   4   5   6   7   8   9   ...   69
    51
    людьми. Поделитесь своим видением. Разделите труд. Учитесь у других. Создайте блестящую команду.
    Подумайте, сколько есть примеров широко используемого ПО, написанного одним человеком? (Кто-то вспомнит «LaTeX», но вряд ли этот продукт «широко исполь- зуется», если только вы не считаете, что число людей, пишущих научные статьи, является статистически значимой частью всех пользователей компьютеров!)
    Высокоэффективные команды — это золотая жила и верный ключ к успеху. При- ложите все силы, чтобы создать такую команду.
    Три столпа социального общения
    Итак, если командная работа — лучший путь к созданию блестящего ПО, как создать
    (или найти) хорошую команду?
    Чтобы достичь нирваны совместной работы, сначала запомните «три столпа» соци- альных навыков. Они не только смазывают колеса взаимопонимания, но и являются основой для здорового взаимодействия и сотрудничества.
    Столп 1: смирение
    Вы не центр Вселенной (как и ваш код!). Вы не всезнающий и не безгрешный.
    Вы открыты для самосовершенствования.
    Столп 2: уважение
    Вы искренне заботитесь о тех, с кем работаете, относитесь к ним по-доброму и цените их способности и достижения.
    Столп 3: доверие
    Вы верите, что другие тоже компетентны, действуют правильно и вы сможете передать им руль, если понадобится
    1
    Если проанализировать первопричины практически любого социального конфликта, в конечном итоге можно проследить его до отсутствия смирения, уважения и (или) доверия. Поначалу это утверждение может показаться неправдоподобным, но убеди- тесь сами — поразмышляйте над какой-нибудь неприятной или неудобной ситуацией в вашей жизни. Все ли участники конфликта были смиренны? Действительно ли они относились друг к другу с уважением? Имело ли место взаимное доверие?
    Почему эти столпы так важны?
    Начиная читать эту главу, вы, наверное, не планировали записываться в группу под- держки. Сочувствуем. Социальные проблемы трудно решать: люди беспорядочны, непредсказуемы и часто раздражают своим общением. Вместо того чтобы вкладывать энергию в анализ социальных проблем и искать стратегические решения, гораздо
    1
    Это невероятно сложно, если в прошлом вы погорели, передав управление некомпетентным людям.

    52
    Глава 2. Успешная работа в команде проще пустить все на самотек. Работать с предсказуемым компилятором намного проще, не так ли? Зачем вообще погружаться в социальную сферу?
    Вот цитата из известной лекции Ричарда Хэмминга (
    http://bit.ly/hamming_paper
    ):
    «Взяв за правило рассказывать секретарям анекдоты и проявлять немного друже- любия, я получал от них очень ценную помощь. Например, однажды по какой-то дурацкой причине все копировальные службы в Мюррей Хилл оказались заняты.
    Не знаю почему. Надо было что-то делать. Моя секретарша позвонила кому-то в Холмдел, прыгнула в служебный автомобиль, провела час в дороге, скопировала материал и вернулась. Это стало мне наградой за то, что я не ленился приобо- дрять ее, шутил и вообще был дружелюбен. Мне это ничего не стоило, но позже такое мое поведение окупилось. Столкнувшись с необходимостью использовать систему и изучая возможные способы заставить систему делать вашу работу, вы учитесь менять систему под себя».
    Вывод прост: не стоит недооценивать социальные игры. Это не обман или мани- пулирование, а выстраивание отношений, помогающих достичь цели. Отношения всегда живут дольше, чем проекты. При хорошем отношении коллеги будут готовы пройти лишнюю милю, если вам это потребуется.
    Смирение, уважение и доверие на практике
    Все эти речи о смирении, уважении и доверии звучат как проповедь. Давайте спустимся на грешную землю и подумаем, как применить эти идеи в жизни. Для начала рассмотрим список конкретных моделей поведения и примеры. Многие из этих моделей покажутся очевидными, но вскоре вы заметите, как часто вы (и ваши коллеги) не следуете им — мы заметили это в себе!
    Усмирите свое эго
    Если вы замечаете, что кому-то не хватает смирения, проще всего попросить этого человека быть скромнее. Никто не горит желанием работать с тем, кто постоянно ведет себя как самый важный человек в комнате. Даже если вы уверены в своем пре- восходстве, не показывайте этого. Подумайте, так ли необходимо, чтобы последнее слово всегда оставалось за вами? Так ли важно комментировать каждую деталь в предложении или обсуждении? Вы знаете людей, которые так себя ведут?
    Скромным быть важно, но это не значит, что можно показывать слабину — в уве- ренности в себе нет ничего плохого. Просто не стройте из себя всезнайку. Думайте о «коллективном» эго — старайтесь поддерживать командный дух и коллективную гордость. Например, Apache Software Foundation имеет долгую историю создания сообществ вокруг программных проектов. Эти сообщества отличает невероятно сильное самосознание: они отвергают людей, озабоченных саморекламой.
    Эго имеет множество проявлений и часто мешает работать. Вот еще одна замеча- тельная история из лекции Хэмминга, которая прекрасно иллюстрирует проявление личного эго (выделение наше):

    Весь секрет в командной работе
    53
    «Джон Тьюки почти всегда одевался очень небрежно. Когда он приходил в офис, руководители не сразу понимали, что перед ними первоклассный специалист, к мнению которого стоит прислушаться. Джон тратил много времени и сил на преодоление такого неприятия! Я не говорю, что вы должны соответствовать окружению, но обращаю ваше внимание, что “видимость соответствия здорово помогает”. Если вы будете утверждать свое эго, заявляя: “Это будет по-моему”, то будете расплачиваться за это на протяжении всей своей карьеры. И в других сферах жизни это будет приводить к огромному числу ненужных неприятностей.
    <...> Столкнувшись с необходимостью использовать систему и изучая возмож- ные способы заставить систему делать вашу работу, вы учитесь менять систему под себя. В противном случае вам придется бороться с ней постоянно и всю свою
    жизнь вести маленькую необъявленную войну».
    Учитесь критиковать и принимать критику
    Несколько лет назад Джо устроился на новую работу программистом. Спустя не- делю он начал копаться в кодовой базе. Его заинтересовало, какой вклад в код внес каждый член команды. Он стал отправлять им простые обзоры кода по электронной почте, вежливо спрашивая о проектных решениях или указывая места, где можно улучшить логику. Через пару недель его вызвали в кабинет директора. «В чем про- блема? — спросил Джо. — Я сделал что-то неправильно?» «У нас было много жалоб на ваше поведение, — сказал директор. — По-видимому, вы были очень резки по отношению к своим товарищам по команде, критикуя их налево и направо. Они рас- строены. Вам следует быть вежливее». Джо был совершенно сбит с толку. Конечно, он думал, что коллеги оценят и с радостью примут его обзоры кода. Однако Джо должен был проявить большую осторожность и уважительность к членам команды и использовать более тонкие средства для внедрения код-ревью в культуру — воз- можно, предварительно обсудить идеи с командой и предложить попробовать новый подход в течение нескольких недель.
    В профессиональной среде программной инженерии критика почти никогда не бывает личной — обычно она просто является частью процесса улучшения про- екта. Хитрость в том, чтобы убедиться, что вы (и те, кто вас окружает) понимаете разницу между конструктивной критикой творческих результатов и откровенным оскорблением чувств. Последнее — мелочно и недейственно. Первое может (и долж- но!) быть полезным, если содержит рекомендации по улучшению. И самое главное, конструктивная критика проникнута уважением: человек, выступающий с такой критикой, искренне заботится о других и хочет, чтобы они совершенствовали себя или свой труд. Научитесь уважать своих коллег и вежливо подавать конструктивную критику. Если вы действительно уважаете кого-то, у вас будет мотивация выбирать тактичные и понятные формулировки — навык, приобретаемый с опытом (глава 9).
    С другой стороны, нужно учиться принимать критику. Не только скромнее оценивать свои навыки, но и верить, что в глубине души коллеги действуют в ваших интере- сах (и в интересах проекта!) и на самом деле не считают вас умственно отсталым.

    54
    Глава 2. Успешная работа в команде
    Программирование — это обычный навык. Если коллега указал вам пути улучшения мастерства, разве вы воспримете это как оскорбление и принижение вашего досто- инства? Надеемся, что нет. Точно так же ваша самооценка не должна быть связана с кодом, который вы пишете, или любым творческим проектом, над которым вы работаете. Вы — это не ваш код: повторяйте это снова и снова. Вы — это не то, что вы делаете. Поверьте в это сами и заставьте коллег считать так же.
    Например, если у вас есть неуверенный в себе коллега, вам точно не следует гово- рить ему: «Дружище, ты совершенно неправильно понял поток управления в этом методе. Ты должен использовать стандартный шаблон xyzzy, как и все остальные».
    Так поступать не следует: говорить человеку, что он «не прав» (как если бы мир был черно-белым), требовать изменений и заставлять его чувствовать себя хуже других. Коллега вне всяких сомнений обидится, и его реакция наверняка окажется чрезмерно эмоциональной.
    То же самое можно сказать более тактично: «Знаешь, меня смущает поток управ- ления в этой части. Интересно, сможет ли применение шаблона xyzzy сделать его понятнее и проще в поддержке?» Обратите внимание, как в этом случае проявляется смирение, как акцент ставится на себе, а не на собеседнике. Вы утверждаете, что не коллега ошибся, а вы не поняли код. Этой фразой вы предлагаете лишь прояснить ситуацию для вас, что, возможно, поспособствует достижению цели устойчивого развития проекта в долгосрочной перспективе. Вы также ничего не требуете — даете коллеге возможность мирно отклонить предложение. Обсуждение сосредоточено на коде, а не на чьих-то умственных способностях или навыках.
    Получив отрицательный результат, повторите попытку
    В деловом мире существует городская легенда о менеджере, который допустил ошибку и потерял 10 миллионов долларов. На следующий день он уныло входит в офис и начинает собирать свои вещи, а когда ему звонят с неизбежной фразой:
    «Генеральный директор хочет видеть вас в своем кабинете», он тащится в кабинет директора и тихо кладет заявление на стол.
    «Что это?» — спрашивает директор.
    «Мое заявление об уходе, — говорит менеджер. — Полагаю, вы вызвали меня, чтобы уволить».
    «Уволить? Вас? — отвечает директор недоверчиво. — Зачем мне вас увольнять?
    Я только что заплатил 10 миллионов долларов за ваше обучение!»
    1
    Конечно, это весьма необычная история, но генеральный директор в ней понимает, что увольнение менеджера не возместит потерю 10 миллионов долларов, а только усугубит ситуацию потерей ценного работника, который, в чем можно не сомневаться, не повторит своей ошибки.
    1
    В интернете можно найти десятки вариантов этой легенды, приписываемых разным знаме- нитым менеджерам.

    Весь секрет в командной работе
    55
    Один из наших любимых девизов в Google: «Неудача — тоже вариант». Как известно,
    «не ошибается тот, кто ничего не делает» и «кто не рискует, тот не пьет шампанское».
    Неудача — это прекрасная возможность учиться и совершенствоваться
    1
    . На самом деле Томас Эдисон часто повторял: «Если я попробую 10 000 способов, которые не сработают, я не потерплю неудачу. Я не отчаюсь, потому что каждая неудачная по- пытка — это еще один шаг вперед».
    В Google X — подразделении, занимающемся прорывными технологиями, такими как беспилотные автомобили и ретрансляторы для доступа в интернет на воздушных шарах, — неудачи намеренно встроены в систему стимулирования. Люди придумы- вают диковинные идеи, а их коллегам активно рекомендуется как можно быстрее доказать невозможность их воплощения. Люди получают вознаграждение (и даже соревнуются) за опровержение определенного количества идей или одной идеи в течение определенного времени. И только когда никому не удалось опровергнуть идею, она переходит на первую стадию создания прототипа.
    Культура подробного анализа причин неудачи
    Извлечению уроков из ошибок главным образом способствует документирование неудач с помощью анализа основных причин и описания «результатов вскрытия» проблем (как это называют в Google и многих других компаниях). Будьте особенно внимательны: документ с описанием результатов вскрытия не должен быть беспо- лезным списком оправданий — он должен содержать объяснение причин проблем и план дальнейших действий и быть доступным всем, чтобы команда действительно следовала предложенным изменениям. Правильное документирование ошибок по- могает сохранить понимание того, что произошло, и избежать повторения истории.
    Не стирайте следы — освещайте их, как взлетно-посадочную полосу, для тех, кто следует за вами!
    Хорошее описание результатов вскрытия должно включать:
    y краткое описание события;
    y историю развития события от его обнаружения до расследования и получения выводов;
    y основную причину события;
    y оценку влияния события и ущерба;
    y перечень действий и мероприятий, предпринятых для немедленного исправления проблемы;
    y перечень действий и мероприятий, направленных на предотвращение повторения события;
    y уроки и выводы.
    1
    Если вы снова и снова продолжаете делать одно и то же и раз за разом терпите неудачу, то это не неудача, а некомпетентность.

    56
    Глава 2. Успешная работа в команде
    Учитесь терпению
    Несколько лет назад я работал над инструментом для преобразования репозиториев
    CVS в Subversion (а позже в Git). Из-за капризов CVS я все время натыкался на странные ошибки. Поскольку мой давний друг и коллега Карл хорошо знал CVS, мы решили поработать вместе и исправить эти ошибки.
    Когда мы начали парное программирование, возникла проблема: я предпочитал восходящий способ и погружался в самый низ, быстро выискивая варианты пути на- верх, минуя детали. Карл, напротив, отдавал предпочтение нисходящему способу: он стремился получить полную картину о ландшафте и погрузиться в реализацию почти каждого метода в стеке вызовов, прежде чем приступить к устранению ошибки. Это приводило к межличностным конфликтам, разногласиям, а иногда и ожесточенным спорам. Дошло до того, что мы просто не могли программировать вместе — это было слишком сложно для нас обоих.
    Тем не менее мы давно питали безграничное доверие и уважение друг к другу. Не- большая доля терпения помогла нам выработать новый метод сотрудничества. Мы садились вместе за компьютер, выявляли ошибку, а затем разделяли ее и атаковали сразу с двух сторон (сверху вниз и снизу вверх), а потом объединяли полученные результаты. Наши терпение и готовность экспериментировать с новыми стилями работы спасли не только проект, но и дружбу.
    Будьте открыты для сотрудничества
    Чем больше вы открыты для сотрудничества, тем выше ваша способность влиять на других и тем сильнее вы кажетесь. Это заявление выглядят противоречивым.
    Но практически каждый может вспомнить коллегу-упрямца — кто бы что ему ни го- ворил, он еще больше запирался в своем упрямстве. Что в итоге происходит с такими членами команды? Люди перестают прислушиваться к их мнению или возражениям, начинают «обходить» таких коллег как препятствие, от которого никуда не деться.
    Вы наверняка не захотите быть таким человеком, поэтому помните: это нормально, когда кто-то хочет вас переубедить. В первой главе этой книги мы говорили, что инженерия — это компромиссы. Нельзя быть правым во всем и всегда, если у вас нет неизменного окружения и совершенных знаний. Поэтому вы должны менять свою точку зрения, когда вам представят новые доказательства. Тщательно расставляйте свои приоритеты: чтобы быть услышанным, сначала выслушайте других. Собери- те аргументы коллег, прежде чем остановить обсуждение и твердо объявить свое решение, — если вы будете постоянно колебаться, меняя свою точку зрения, люди подумают, что вы слабовольный и нерешительный.
    Идея уязвимости может показаться странной. Если кто-то признается в своем незнании рассматриваемой темы или путей решения проблемы, на какое доверие он может рас- считывать? Уязвимость — это проявление слабости, которое разрушает доверие, верно?
    Неверно! Признание, что вы допустили ошибку или просто не подтвердили свой уровень, может в долгосрочной перспективе повысить ваш статус. На самом деле готовность показать уязвимость — это внешнее проявление смирения, которое

    Весь секрет в командной работе
    57
    демонстрирует надежность и готовность брать на себя ответственность, а также сообщает, что вы доверяете коллегам. В ответ люди будут уважать вашу честность и силу. Иногда действительно лучше прямо сказать: «Я не знаю».
    Профессиональные политики, например, печально известны тем, что никогда не при- знают свои ошибки или невежество, даже если всем очевидно, что они ошибаются или не знают предмета обсуждения. Такое поведение обусловлено тем, что политики постоянно подвергаются нападкам со стороны своих противников, и именно из-за него большинство не верит словам политиков. Однако вам, пишущим ПО, не нужно постоянно защищаться — ваши товарищи по команде являются вашими единомыш- ленниками, а не конкурентами. У вас с ними одна цель.
    Действовать по-гугловски
    У нас в Google есть собственная внутренняя версия принципов «смирения, уважения и доверия».
    С самого начала существования нашей культуры мы называли действия «по-гуг- ловски» (googley) или «не по-гугловски». Ни в одном словаре вы не найдете это слово, но оно означает «не будь злым», «поступай правильно» или «будь добр к другим».
    Со временем мы начали использовать термин «по-гугловски» как неформальный признак соответствия нашей культуре у кандидатов на должность инженера или у коллег. Люди часто выражают мнение о других, используя этот термин, например
    «человек пишет хороший код, но действует не совсем по-гугловски».
    В конце концов, мы поняли, что термин «по-гугловски» перегружен смыслом и может стать источником неосознанной предвзятости при найме или оценке работы. Если для каждого сотрудника выражение «по-гугловски» будет означать что-то свое, есть риск свести его к «совсем как я». Очевидно, что это не лучший тест для найма новых сотрудников — мы не хотим нанимать людей, которые «совсем как мы», нам нужны люди из разных слоев общества, с разными мнениями и опытом. Личное желание интервьюера выпить пива с кандидатом (или коллегой) никогда не должно рассма- триваться как признак, что кто-то является хорошим кандидатом или сотрудником и сможет добиться успеха в Google.
    В конечном итоге мы в Google решили эту проблему, явно определив, что под «по- гугловски» подразумевается набор черт характера, которые мы ищем, включающие сильные лидерские способности и приверженность «смирению, уважению и доверию».
    Развитие в неопределенности
    Умение, имея дело с противоречивыми сообщениями или указаниями, достичь согласия и добиться прогресса в решении проблемы, даже если окружающая среда постоянно меняется.
    Бережное отношение к обратной связи
    Умение уважительно принимать критику и давать обратную связь и понимание ценности обратной связи для личного (и командного) развития.

    1   2   3   4   5   6   7   8   9   ...   69


    написать администратору сайта