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

  • Инженерия равенства

  • Предвзятость — это проблема

  • КЕЙС: В GOOGLE НЕДОСТАТОЧНО ПОЛНО ПРЕДСТАВЛЕНЫ РАЗНЫЕ РАСОВЫЕ ГРУППЫ

  • Понимание необходимости разнообразия

  • Выстраивание мультикультурного потенциала

  • Делай как вGoogle


    Скачать 5.77 Mb.
    НазваниеДелай как вGoogle
    Дата31.05.2022
    Размер5.77 Mb.
    Формат файлаpdf
    Имя файлаDelay_kak_v_Google_Razrabotka_programmnogo_obespechenia_2021_Tom.pdf
    ТипДокументы
    #559735
    страница10 из 69
    1   ...   6   7   8   9   10   11   12   13   ...   69
    79
    команд и извлечь нужные уроки, а мощные инструменты, такие как Kythe (
    https://
    kythe.io
    ), позволяют легко находить ссылки по всей кодовой базе (глава 17). Важной особенностью документирования передовых практик (глава 8) является обеспече- ние согласованных стандартов для всего кода в Google. Удобочитаемость является механизмом как соблюдения, так и распространения стандартов.
    Одно из основных преимуществ программы поддержки удобочитаемости заключа- ется в том, что она дает инженерам больше, чем просто коллективные знания, на- копленные их командой. Чтобы получить сертификат удобочитаемости, инженеры должны отправлять CL централизованной команде рецензентов, которые проверяют код всей компании. Централизация проверки дает существенные выгоды: програм- ма ограничена линейным масштабированием с ростом организации, но позволяет упростить соблюдение согласованности, препятствует появлению островков и (часто непреднамеренному) отклонению от установленных норм.
    Значение согласованности всей кодовой базы невозможно переоценить: даже если десятки тысяч инженеров будут писать код десятилетиями, согласованность га- рантирует, что код на данном языке будет выглядеть одинаково во всем корпусе.
    Это позволяет читателям сосредоточиться на том, что делает код, а не на том, как он выглядит. Авторам масштабных изменений (глава 22) легче вносить изменения по всему монолитному репозиторию для тысяч команд. Люди могут переходить из команды в команду и быть уверенными, что способ использования языка в новой команде не сильно отличается от способа, применявшегося в предыдущей команде.
    Эти преимущества имеют свою цену: поддержка удобочитаемости — это сложный процесс по сравнению с другими средствами распространения знаний, такими как документация и учебные курсы, потому что она обязательна и обеспечивается ин- струментами Google (глава 19). Эти затраты нетривиальны и выражаются:
    y в дополнительных сложностях для команд, в которых нет рецензентов удобо- читаемости, потому что им приходится искать рецензентов вне своей команды, чтобы получить одобрение удобочитаемости для CL;
    y в дополнительных затратах времени на проверку кода авторов, которые сами не являются рецензентами;
    y в линейном масштабировании специфической работы узкого круга рецензентов.
    Перевешивает ли выгода эти затраты? Нужно учитывать фактор времени: выгоды и затраты имеют разный временной охват. Программа сознательно идет на кратко- срочные затраты, вызванные задержками на проверку кода, чтобы получить долго- срочные выгоды в виде высококачественного кода, согласованного по всему репози- торию, и накопление опыта инженерами. Долгосрочные преимущества обусловлены ожиданием, что написанный код будет служить годы, если не десятилетия
    1 1
    По этой причине код, если известно, что он будет существовать недолго, освобождается от требований удобочитаемости. Примерами могут служить каталог experimental/
    (явно предназначенный для экспериментального кода, который не может использоваться в про-

    80
    Глава 3. Обмен знаниями
    В большинстве инженерных процессов всегда есть возможность что-то улучшить.
    Некоторые затраты можно уменьшить с помощью инструментов. Многие проблемы удобочитаемости могут обнаруживаться статически и автоматически комментиро- ваться с помощью инструментов статического анализа. Благодаря постоянному раз- витию таких инструментов рецензенты удобочитаемости могут фокусироваться на аспектах более высокого порядка: делать код понятным сторонним читателям, зная, что, например, пробелы в конце строки будут обнаружены автоматизированными средствами.
    Но одного стремления к лучшему недостаточно. Удобочитаемость вызывает споры: некоторые инженеры считают, что это ненужное бюрократическое препятствие и неэффективное использование рабочего времени инженера. Действительно ли выгоды от программы поддержки удобочитаемости перевешивают затраты на нее?
    За ответом мы обратились к нашей команде по исследованию продуктивности (EPR, engineering productivity research).
    Команда EPR провела углубленные исследования положительных и отрицательных сторон программы поддержки удобочитаемости, в том числе выяснив, мешает ли этот процесс людям, научились ли они чему-нибудь или изменили ли свое поведение в ходе участия в программе. Исследования показали, что процесс поддержки удо- бочитаемости оказывает положительное влияние на скорость разработки. На про- верку CL авторов, овладевших навыками удобочитаемости, обычно уходит меньше времени
    1
    . Удовлетворенность инженеров качеством своего кода, по их личным отзывам (в отсутствие более объективных показателей качества), выше среди тех, кто участвовал в программе удобочитаемости. Значительное большинство инжене- ров, прошедших программу, сообщают об удовлетворенности процессом и считают его стоящим. Они утверждают, что многому научились у рецензентов и изменили свое поведение, стараясь избегать проблем с удобочитаемостью при разработке и рецензировании кода.
    Подробное описание этого исследования и внутреннего исследования продуктив- ности инженеров в Google в главе 7.
    В Google очень сильная культура рецензирования кода, и удобочитаемость является естественным ее продолжением. Поддержка удобочитаемости выросла из страсти одного инженера в формальную программу с участием экспертов, передающих знания всем инженерам Google. Эта программа развивалась и изменялась с ростом Google и будет продолжать развиваться по мере изменения потребностей Google.
    дуктах) и программа Area 120 (
    https://area120.google.com
    ) — творческая мастерская для экспериментальных продуктов Google.
    1
    На этот показатель влияет множество факторов, включая срок работы в Google и тот факт, что для проверки списков изменений авторов, не владеющих удобочитаемостью, обычно требуется проводить дополнительные раунды рецензирования.

    Итоги
    81
    Заключение
    Знания в некотором смысле являются наиболее важным (хотя и нематериальным) капиталом организации, занимающейся разработкой ПО, и обмен этими знаниями имеет решающее значение для устойчивости организации и ее готовности к из- менениям. Культура, способствующая открытому и честному обмену знаниями, обеспечивает эффективное распространение информации и позволяет организации расширяться. В большинстве случаев инвестиции в упрощение обмена знаниями приносят многократные дивиденды в течение жизни компании.
    Итоги
    y
    Чувство психологической безопасности является основой для создания среды обмена знаниями.
    y
    Начните с малого: задавайте вопросы и записывайте ответы.
    y
    Дайте людям возможность получать помощь, облегчив доступ к экспертам и спра- вочным руководствам.
    y
    Систематически поощряйте и вознаграждайте тех, кто уделяет время распростра- нению знаний и опыта в своей команде или в организации.
    y
    Универсального рецепта передачи информации не существует: расширение воз- можностей обмена знаниями требует применения комплекса стратегий, а иде- альное для вашей организации сочетание средств для обмена знаниями почти наверняка будет меняться со временем.

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

    Предвзятость — это проблема
    83
    намеренно: у всех людей есть предубеждения, и в последние несколько десятилетий социологи не раз признавали, что большинство людей проявляет бессознательную предвзятость, навязывая и пропагандируя стереотипы. Бессознательная предвзятость коварна, и часто ее легче просто исключить, чем смягчить. Даже желая поступать правильно, мы можем не осознавать своих предубеждений. На организационном уровне важно понимать, что предубеждения существуют, и стараться их исключить из разработки продуктов и работы с пользователями.
    Из-за предвзятости компании Google иногда не удавалось справедливо представить пользователей в своих продуктах и уделить достаточное внимание недопредставлен- ным группам. Многие пользователи связывают это с тем, что основной контингент наших инженеров составляют мужчины, белые или азиаты, которые, конечно, не представляют все сообщества, использующие наши продукты. Отсутствие предста- вителей всевозможных групп пользователей среди наших сотрудников
    1
    означает, что мы не обладаем необходимым разнообразием для понимания, какое влияние может оказывать использование наших продуктов.
    КЕЙС: В GOOGLE НЕДОСТАТОЧНО ПОЛНО ПРЕДСТАВЛЕНЫ РАЗНЫЕ РАСОВЫЕ ГРУППЫ
    В 2015 году инженер-программист Джеки Алсине (Jacky Alcin
    é) заметил
    2
    , что алгоритмы распознавания изображений в Google Photos классифицируют его темнокожих друзей как
    «горилл». Google не спешила реагировать на эти ошибки.
    Чем вызван такой феерический провал? Тому есть несколько причин:
    • Алгоритмы распознавания изображений зависят от наличия «правильного» (часто имеет- ся в виду «полного») набора данных. Набор фотографий, на которых обучался алгоритм распознавания изображений в Google, был явно неполным — данные не представляли всего населения планеты.
    • В самой компании Google (и технической индустрии в целом) негроидная раса недоста- точно широко представлена
    3
    , и это повлияло на субъективные решения при разработке алгоритмов и сборе данных. Бессознательная предвзятость самой организации привела к тому, что был выпущен недостаточно готовый продукт.
    • Мы не включили в потенциальную целевую аудиторию Google Photos недопредставлен- ные группы. Тесты Google не заметили ошибки, которые затем увидели пользователи и справедливо расценили как проявление неуважения.
    Даже в конце 2018 года мы в Google все еще не могли адекватно решить эту проблему
    4 1
    Ежегодный отчет о разнообразии в Google за 2019 год (
    https://diversity.google/annual-report
    ).
    2
    @jackyalcine
    . 2015. «Google Photos, Y’all Fucked up. My Friend’s Not a Gorilla». Twitter, June 29,
    2015. https://twitter.com/jackyalcine/status/615329515909156865 3
    Во многих отчетах за 2018–2019 годы отмечалось отсутствие разнообразия в высокотехно- логических сферах. В числе наиболее известных можно назвать: National Center for Women
    & Information Technology (
    https://oreil.ly/P9ocC
    ) и Diversity in Tech (
    https://oreil.ly/Y1pUW
    ).
    4
    Simonite T. When It Comes to Gorillas, Google Photos Remains Blind. Wired, January 11, 2018.

    84
    Глава 4. Инженерия равенства
    Наш продукт, упомянутый в этом примере, был неверно спроектирован и реализован, он не учитывал должным образом все расовые группы и в результате подвел наших пользователей и вызвал плохие отзывы о Google в прессе. Другие наши продукты тоже страдают от подобных провалов: функция автозаполнения может вернуть оскорбительные или расистские результаты. Рекламная система Google может использоваться для показа расистских или оскорбительных объявлений. YouTube может не выявить ненавистнических высказываний, которые технически запрещены на этой платформе.
    Во всех этих случаях технологии не виноваты. Например, функция автозаполне- ния не предназначена для каких-то конкретных групп пользователей или их дис- криминации. Но ее конструкция оказалась недостаточно гибкой, чтобы исключить дискриминационные высказывания, которые считаются языком ненависти. Вред для самой компании Google также очевиден: снижение доверия пользователей и со- кращение сотрудничества с компанией. Например, соискатели из числа темнокожих, латиноамериканцев и евреев могут потерять веру в Google как платформу или даже в возможность существования всеохватывающей среды, что подрывает цель Google — достижение сбалансированного представления разных групп при найме.
    Как такое могло случиться? В конце концов, Google стремится нанимать специали- стов с безупречным образованием или профессиональным опытом — выдающихся программистов, которые пишут лучший код и проверяют свою работу. Девиз Google:
    «Создавай для всех», — но правда в том, что нам предстоит пройти еще долгий путь, прежде чем мы сможем подтвердить его. Одно из решений этих проблем — помочь самой организации, занимающейся программной инженерией, иметь в своих рядах представителей всех групп людей, для которых мы создаем продукты.
    Понимание необходимости разнообразия
    Мы в Google считаем, что выдающийся инженер должен быть сосредоточен на при- влечении различных точек зрения в разработку и внедрение продуктов. Это также означает, что гуглеры, отвечающие за собеседование и прием на работу других ин- женеров, должны содействовать расширению представления в компании различных групп. Например, проводя собеседование, важно выяснить, как решения о приеме на работу влияет на баланс представленных групп. Чтобы действительно создавать продукты для всех, мы должны поощрять более широкий спектр образовательной подготовки у наших инженеров.
    Прежде всего важно разрушить представление о том, что кандидат с ученой степенью и/или опытом работы в области computer science по определению обладает всеми навыками, необходимыми выдающемуся инженеру. Также важно избавиться от идеи, что только люди с образованием в области computer science могут проектиро- вать и создавать продукты. В настоящее время большинство программистов имеет такое образование (
    https://oreil.ly/2Bu0H
    ): они с успехом пишут код, создают теории, изменяющие мир, и применяют методологии для решения проблем. Однако, как

    Выстраивание мультикультурного потенциала
    85
    показывают вышеупомянутые примеры, этого недостаточно для всеохватывающей
    и равноправной инженерии.
    Инженеры должны учитывать в работе все особенности экосистемы, на которую они стремятся влиять. Как минимум понимать демографические характеристики пользо- вателей, уделять внимание людям, которые отличаются от них самих, особенно тем, которые могут использовать выпускаемые продукты для причинения вреда другим.
    Сложнее всего учитывать особенности людей, лишенных права голоса в среде, где они получают доступ к технологиям. Для этого инженеры должны понимать интересы представителей всех существующих и потенциальных групп пользователей. В от- сутствие разнообразного представления групп в командах каждый инженер должен учиться создавать продукты, пригодные для всех пользователей.
    Выстраивание мультикультурного потенциала
    Отличительной чертой выдающегося инженера является проницательность — спо- собность понять, как продукты могут приносить пользу и вред различным группам людей, и умение выявлять и отвергать функции или продукты, которые приводят к неблагоприятным результатам. Это высокая и труднодостижимая цель, поскольку становление высокопроизводительного инженера требует индивидуального подхода.
    Тем не менее, чтобы добиться успеха, мы должны принять во внимание не только наши сообщества, но и миллиарды новых пользователей, которые появятся в буду- щем, а также нынешних пользователей, которые могут быть лишены права голоса или оставаться неучтенными в наших продуктах.
    Со временем вы можете создать инструменты, которыми ежедневно пользуются миллиарды людей, влияющие на представления о ценности человеческой жизни, контролирующие человеческую деятельность и собирающие и сохраняющие конфи- денциальные данные, например фотографии детей и близких. Как инженер вы можете обладать большей властью, чем думаете, и прямо влиять на общество. Важно, чтобы вы понимали ответственность и не использовали свою власть во вред кому-либо. Для начала осознайте свою предвзятость, вызванную многими социальными и образова- тельными факторами. После этого вы сможете замечать упускаемые из виду вариан- ты использования, из-за которых ваши продукты могут быть полезны или вредны.
    Технологии продолжают развиваться с возрастающей скоростью, создавая почву для новых сценариев использования искусственного интеллекта (ИИ) и машинного об учения. Чтобы оставаться конкурентоспособными, мы стремимся к увеличению охвата и эффективности в создании высококвалифицированных инженерно-техни- ческих кадров. Однако обратите внимание, что в настоящее время одни имеют воз- можность создавать будущие технологии, а другие — нет. Нам необходимо понять, будут ли способствовать создаваемые нами программные системы процветанию общества и обеспечению равного доступа к технологиям.
    Исторически сложилось, что компании стремятся к быстрому достижению стра- тегической цели, связанной с получением прибыли и доминированием на рынке,

    1   ...   6   7   8   9   10   11   12   13   ...   69


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