Делай как вGoogle
Скачать 5.77 Mb.
|
58 Глава 2. Успешная работа в команде Стремление изменить текущее положение вещей Умение ставить амбициозные цели и достигать их, даже когда коллеги сопро- тивляются или проявляют инертность. Пользователь прежде всего Понимание пользователей продуктов Google, уважительное отношение к их мнению и готовность предпринять действия, отвечающие их интересам. Заботливое отношение к команде Сочувственное и уважительное отношение к коллегам, готовность оказывать им активную помощь без лишних вопросов и улучшать сплоченность команды. Правильные поступки Соблюдение этических норм во всем и готовность принимать сложные или не- удобные решения для защиты целостности команды и продукта. В настоящее время, определив желательные черты характера и образ поведения сотрудника, мы начали уходить от использования термина «по-гугловски». Всегда лучше четко обозначать свои ожидания! Заключение Основой практически любого ПО является сплоченная команда. Миф о гениаль- ности разработчика, в одиночку создающего ПО, все еще сохраняется, но правда в том, что в действительности никто не работает один. Чтобы организация, занимаю- щаяся созданием ПО, выдержала испытание временем, она должна иметь здоровую культуру, основанную на смирении, доверии и уважении и вращающуюся вокруг команды, а не отдельного человека. Кроме того, творческий характер разработки ПО требует, чтобы люди рисковали и иногда терпели неудачу, принять которую помогает здоровая командная среда. Итоги y Помните о недостатках работы в изоляции. y Оцените, сколько времени вы и ваша команда тратите на общение и межличност- ные конфликты. Даже небольшие вложения в понимание личностей и разных стилей работы могут иметь большое значение для повышения эффективности. y Если вы хотите эффективно работать в команде или крупной организации, пом- ните о своем предпочтительном стиле работы и стилях работы коллег. ГЛАВА 3 Обмен знаниями Авторы: Нина Чен и Марк Баролак Редактор: Риона Макнамара Искать ответы на вопросы, связанные с вашей предметной областью, лучше внутри ор- ганизации, а не в интернете. Но для этого организации нужны эксперты и механизмы распространения знаний, о которых мы поговорим в этой главе. Эти механизмы могут быть очень простыми (задать вопрос и написать ответ) и более структурированными, такими как учебные пособия и классы. Самое главное — в организации должна под- держиваться культура обучения, которая требует создания чувства психологической безопасности, позволяющего людям признавать недостаток собственных знаний. Сложности в обучении Обмен опытом между организациями — непростая задача, особенно при отсутствии устойчивой культуры обучения. Компания Google уже сталкивалась с рядом про- блем, главным образом в период роста. Отсутствие чувства психологической безопасности Среда, в которой люди боятся рисковать или совершать ошибки из страха на- казания. Часто проявляется как культура страха или стремление избегать про- зрачности. Информационные островки Фрагментация знаний, возникающая, когда разные подразделения организации не общаются друг с другом или не используют общие ресурсы. В такой среде каждая группа создает свой способ действий 1 . Это часто приводит к следующему: Фрагментация информации Каждый островок представляет лишь часть общей картины. Дублирование информации На каждом островке изобретается свой способ решения одной и той же задачи. 1 Другими словами, вместо того чтобы разрабатывать один глобальный максимум, в органи- зации создается множество локальных максимумов ( https://oreil.ly/6megY ). 60 Глава 3. Обмен знаниями Информационный перекос На островках по-разному используется одно и то же решение. Единая точка отказа (ЕТО) Узкое место, возникающее, когда важная информация поступает только от одного человека (вспомните фактор автобуса ( https://oreil.ly/IPT-2 ) из главы 2). Она может появиться из самых благих намерений вроде предложения «давай я сделаю это вместо тебя» и давать кратковременное увеличение эффективно- сти («так быстрее») в ущерб долгосрочной перспективе развития (команда не учится выполнять работу). ЕТО приводит к победе принципа «все или ничего». Принцип «все или ничего» Команда, в которой проведена грань между теми, кто знает «все», и новичками. Если эксперты всегда и все делают сами, не тратя времени на подготовку новых экспертов путем наставничества или создания инструкций, знания и обязанности продолжают накапливаться у тех, кто уже имеет опыт, а новые члены команды брошены и развиваются медленно. Попугайство Повторение без понимания сути. Обычно характеризуется бездумным копирова- нием паттернов или кода без понимания их цели на основе предположения, что это необходимо по неизвестным причинам. Кладбища с привидениями Места, обычно в коде, которых люди стараются не касаться, потому что боятся, что что-то может пойти не так. В отличие от вышеупомянутого попугайства, для кладбищ с привидениями характерно отсутствие каких-либо действий из-за страха и суеверий. В оставшейся части главы мы рассмотрим успешные политики преодоления этих сложностей, обнаруженные инженерами Google. Философия Программную инженерию можно определить как командную разработку многовер- сионного ПО 1 , в центре которой находятся люди. Да, код — это важный результат, но лишь малая часть создания продукта. Необходимо отметить, что код не возникает сам по себе из ничего, равно как и опыт. Каждый эксперт когда-то был новичком: успех организации зависит от роста ее сотрудников и инвестиций в них. Совет эксперта всегда неоценим. Члены команды могут разбираться в разных об- ластях, поэтому выбор товарища по команде, которому можно задать любой вопрос, 1 Parnas D. L. Software Engineering: Multi-person Development of Multi-version Programs. Heidelberg: Springer-Verlag Berlin, 2011. Создание условий: психологическая безопасность 61 очень важен. Но если эксперт уходит в отпуск или переходит в другой коллектив, команда может оказаться в беде. И хотя один человек может оказать помощь многим, эта помощь не масштабируется и ограничивается числом «многих». Документированные знания лучше масштабируются не только в команде, но и во всей организации. Такие механизмы, как командная электронная база знаний (wiki), позволяют множеству авторов делиться своим опытом с большими группами людей. Но масштабируемость документации сопровождается компромиссами между ее обобщенностью и применимостью к конкретным ситуациям, а также требует до- полнительных затрат на обслуживание и поддержание ее актуальности. Между знаниями отдельных членов команды и задокументированными знаниями находятся коллективные знания. Эксперты часто знают то, что нигде не задоку- ментировано. Если задокументировать эти знания и поддерживать их, они станут доступными не только тем, кто имеет возможность общаться с экспертом, но и всем, кто сможет найти и прочитать документацию. Получается, что в идеальном мире, где все всегда и сразу документируется, нет нуж- ды консультироваться с человеком, верно? Не совсем. Письменные знания имеют преимущества масштабирования, но целевая личная помощь ничуть не менее ценна. Человек-эксперт может синтезировать свои знания, оценить, какая информация применима к конкретному случаю, определить актуальность документации и знать, где ее найти или к кому обратиться. Коллективные и письменные знания дополняют друг друга. Даже идеальная ко- манда экспертов с совершенной документацией должна общаться друг с другом, координировать действия с другими командами и адаптировать свои политики. Никакой подход к обмену знаниями не может быть правильным сразу для всех типов обучения, и лучшее сочетание, скорее всего, будет зависеть от особенностей организации. Организационные знания, вероятно, будут меняться по мере роста организации. Тренируйтесь, сосредоточьтесь на обучении и росте и создайте свою группу экспертов. Инженерных знаний много не бывает. Создание условий: психологическая безопасность Психологическая безопасность имеет решающее значение для формирования об- разовательной среды. Чтобы учиться, вы должны сначала осознать, что есть что-то, чего вы не понимаете. Мы должны приветствовать такую честность ( https://xkcd.com/1053 ), а не наказывать ее. (В Google эта работа поставлена довольно хорошо, но иногда инженеры не хотят признавать, что они чего-то не понимают.) Значительная часть обучения — это способность пробовать что-то и чувствовать себя в безопасности. В здоровой среде люди чувствуют себя комфортно, задают вопросы, ошибаются и приобретают новые знания. Исследование в Google ( https:// 62 Глава 3. Обмен знаниями oreil.ly/sRqWg ) показало, что психологическая безопасность является самым важным условием создания эффективной команды. Наставничество Мы в Google стараемся задать тон общения, когда к компании присоединяется «нуглер» (новый гуглер). Чувство психологической безопасности мы создаем с по- мощью назначения наставника — человека, который не является членом команды, менеджером или техническим руководителем, в обязанности которого входит от- вечать на вопросы и оказывать помощь нуглеру. Наличие официально назначенного наставника для обращения за помощью облегчает новичку работу и избавляет его от страха, что он может отнимать время у коллег. Наставник — это доброволец, работающий в Google больше года и готовый консульти- ровать новичка по любым вопросам, от использования инфраструктуры до навигации по культуре Google. Он поддерживает нуглера, когда тот не знает, к кому обратиться за советом. Наставник не входит в одну команду с новичком, что позволяет второму чувствовать себя более комфортно при обращении за помощью. Наставничество формализует и облегчает обучение, но самообучение — это непре- рывный процесс. Коллеги всегда учатся друг у друга: как новые сотрудники, так и опытные инженеры, изучающие новые технологии. В здоровой команде коллеги могут не только давать ответы, но и задавать вопросы, не боясь показать, что они чего-то не знают. Психологическая безопасность в больших группах Обратиться за помощью к коллеге по команде легче, чем к большой группе в основ ном незнакомых людей. Но, как мы видели, индивидуальные решения плохо масштаби- руются. Групповые решения более масштабируемы, но они также более пугающие. Новичкам может быть страшно задать вопрос большой группе, зная, что он может храниться в архиве много лет. Потребность в психологической безопасности усилива- ется в больших группах. Каждый член группы должен сыграть свою роль в создании и поддержании безопасной среды, гарантирующей, что новички не будут бояться задавать вопросы, а начинающие эксперты будут чувствовать, что способны помочь новичкам, не опасаясь нападок со стороны авторитетных экспертов. Самый действенный способ создать такую безопасную и гостеприимную среду — заменить состязательность групп их сотрудничеством. В табл. 3.1 приведены неко- торые примеры рекомендуемых паттернов (и соответствующих им антипаттернов) групповых взаимодействий. Эти антипаттерны могут возникать непреднамеренно: кто-то, возможно, пытается по- мочь, но случайно проявляет снисходительность и неприветливость. Мы считаем, что здесь уместно перечислить социальные правила сообщества Recurse Center ( https:// oreil.ly/zGvAN ): Расширение знаний 63 Никакого притворного удивления («Что?! Я не могу поверить! Ты не знаешь, что такое стек?!») Притворное удивление разрушает чувство психологической безопасности и за- ставляет членов группы бояться признаться в нехватке знаний. Никаких «на самом деле» Скрупулезные исправления, которые, как правило, связаны с игрой на публику, а не с точностью. Никаких подсказок из задних рядов Прерывание текущего обсуждения, чтобы предложить свое мнение, без коррект- ного вступления в разговор. Никаких «-измов» («Это так просто, что даже моя бабушка справилась бы!») Выражения предвзятости (расизм, эйджизм, гомофобия), которые могут заста- вить людей чувствовать себя ненужными, неуважаемыми или незащищенными. Таблица 3.1. Паттерны групповых взаимодействий Рекомендуемые паттерны (сотрудничество) Антипаттерны (состязательность) Простые вопросы или ошибки правильно воспринимаются и находят ответы и решения К простым вопросам или ошибкам придираются, и человек, задавший вопрос, наказывается Объяснения направлены на обучение человека, задавшего вопрос Объяснения направлены на демонстрацию своих знаний На вопросы даются полезные ответы с терпением и добро- желательностью Ответы даются свысока, в язвительной и неконструктивной форме Взаимодействия принимают форму общего обсуждения для поиска решений Взаимодействия принимают форму спора между «победи- телями» и «проигравшими» Расширение знаний Обмен знаниями начинается с вас. Важно понимать, что вам всегда есть чему по- учиться. Следующие рекомендации позволят вам расширить свои знания. Задавайте вопросы Главный урок этой главы: постоянно учитесь и задавайте вопросы. Мы говорим нуглерам, что на раскачку может уйти до шести месяцев. Этот длитель- ный период необходим для освоения большой и сложной инфраструктуры Google, но он также подтверждает идею о том, что обучение — это непрерывный итеративный процесс. Одна из самых больших ошибок, которую допускают новички, — не про- сят помощи в сложной ситуации. Возможно, вам нравится преодолевать проблемы в одиночку или вы боитесь, что ваши вопросы «слишком просты». «Я должен по- 64 Глава 3. Обмен знаниями пробовать решить проблему сам, прежде чем просить о помощи», — думаете вы. Не попадайтесь в эту ловушку! Часто ваши коллегия являются лучшим источником информации: используйте этот ценный ресурс. Не заблуждайтесь: день, когда вы вдруг обнаружите, что знаете все, не наступит никогда. Даже у инженеров, годами работающих в Google, возникают ситуации, когда они не знают, что делать, и это нормально! Не бойтесь говорить: «Я не знаю, что это такое, не могли бы вы объяснить?» Относитесь к незнанию как к области возможностей, а не страха 1 Неважно, кто вы — новичок или ведущий специалист: вы всегда должны находиться в среде, где есть чему поучиться. В отсутствие такой среды неизбежен застой, при котором вам стоит поискать новую среду. Моделировать такое поведение особенно важно для тех, кто играет руководящую роль: важно не приравнивать «руководство» к «знанию всего». На самом деле чем больше вы знаете, тем больше понимаете, что ничего не знаете ( https://oreil.ly/VWusg ). Открыто задавая вопросы 2 или показывая пробелы в знаниях, вы подтверждаете, что для других это тоже нормально. Терпение и доброжелательность отвечающего способствуют созданию атмосферы, в которой нуждающиеся в помощи чувствуют себя в безопасности. Помогите чело- веку, задающему вам вопрос, преодолеть нерешительность. Инженеры, вероятно, смогли бы самостоятельно разобраться в коллективных знаниях, но они пришли не для того, чтобы работать в вакууме. Адресная помощь помогает инженерам работать быстрее, что, в свою очередь, повышает эффективность всей команды. Вникайте в контекст Обучение — это не только узнавание чего-то нового, но и развитие понимания решений, лежащих в основе существующего дизайна и реализации. Представьте, что вашей команде поручили развивать унаследованную кодовую базу критически важной части инфраструктуры, существовавшей много лет. Ее авторы давно ушли, а код непонятен. Может возникнуть соблазн переписать все заново и не тратить время на изучение существующего кода. Но вместо того чтобы воскликнуть: «Я ничего не понимаю», и закончить на этом, попробуйте погрузиться глубже: какие вопросы вы должны задать? Рассмотрим принцип «забора Честерсона» ( https://oreil.ly/Ijv5x ): перед тем как удалить или изменить что-то, сначала разберитесь, зачем это «что-то» здесь на- ходится. 1 Синдром самозванца ( https://oreil.ly/2FIPq ) не редкость среди успешных учеников, и гуглеры не исключение. Большинство авторов этой книги тоже подвержены синдрому самозванца. Мы понимаем, что страх неудачи пугает людей с синдромом самозванца и может затормозить развитие. 2 См. статью «How to ask good questions» ( https://oreil.ly/rr1cR ). Масштабирование вопросов: вопросы к сообществу 65 В деле реформирования, в отличие от деформирования, существует один про- стой и ясный принцип, который можно назвать парадоксом. Представьте, что существуют определенные нормы или законы, например забор, построенный поперек дороги. Молодой реформатор радостно подходит к забору и говорит: «Я не вижу в нем смысла, давайте уберем его». На что более умный реформатор вполне может ответить: «Коль скоро вы не увидите пользы, я не позволю убрать его. Идите и подумайте. А потом скажете мне, что вы видите в нем определенную пользу, и я позволю снести его». Это не означает, что код не может быть лишен ясности или существующие паттерны проектирования не могут быть неправильными, но часто инженеры склонны прихо- дить к выводу «это плохо!» быстрее, чем нужно, особенно в отношении незнакомого кода, языков или парадигм. Google тоже не застрахован от такого подхода. Ищите и вникайте в контекст, особенно в решениях, которые кажутся необычными. Когда вы поймете суть и цель кода, подумайте, имеет ли смысл ваше изменение. Если да, то смело меняйте код. Но если нет, задокументируйте свои рассуждения для будущих читателей. Многие руководства по стилю в Google включают дополнительные подробности, чтобы помочь читателям понять причины существующих рекомендаций по стилю, а не просто запомнить список произвольных правил. Понимание причин появления данного руководства позволяет авторам принимать обоснованные решения о том, когда руководство должно перестать применяться и его следует обновить (глава 8). |