Эти дети бросили ведьму в духовку! Ты можешь в это поверить? То есть, конечно, очевидно, она собиралась их съесть; именно она и включила духовку. И да, они ели ее дом, но кто вообще делает дом из теста и конфет? Она явно хотела заманить детей в ловушку. С таким же успехом она могла бы водить подозрительный белый фургон без окон.
Наши стандарты кодирования были разработаны в другое время и в другом месте. Первоначально целью было сделать код более читаемым, поэтому стандарты были сосредоточены на соглашениях об именовании переменных и функций. Со временем мы разработали базовые стандарты модулей, чтобы попытаться избежать увеличения кода, с которым столкнулись в его некоторых важных частях. Но тогда мы все использовали один и тот же язык программирования – C#. Сегодня организация превратилась в настоящего полиглота с большой кодовой базой C#, JavaScript и растущей кодовой базой Python в командах инженеров DevOps. Стандарты кодирования, которые мы изначально разработали, более не могут эффективно масштабироваться на эти языки, и попытки поддерживать их замедляют нас и создают враждебность между командами. Я полагаю, что пришло время переосмыслить цель стандартов кодирования, какую ценность они приносят и как мы ее достигаем в нынешних условиях. Вместо подхода «сверху вниз», который мы использовали в прошлом, я предполагаю, нам подойдет более совместный подход, который позволил бы каждому работнику и команде принять участие в обсуждении.
[Сначала проблема] Стандарты кодирования, которые мы изначально разработали, более не могут эффективно масштабироваться на эти языки, и попытки поддерживать их замедляют нас и создают враждебность между командами.[Контекст] Наши стандарты кодирования были разработаны в другое время и в другом месте. Первоначально целью было сделать код более читаемым, поэтому стандарты были сосредоточены на соглашениях об именовании переменных и функций. Со временем мы разработали базовые стандарты модулей, чтобы попытаться избежать увеличения кода, с которым столкнулись в его некоторых важных частях.[Связь контекста и проблемы] Но тогда мы все использовали один и тот же язык программирования – C#. Сегодня организация превратилась в настоящего полиглота с большой кодовой базой C#, JavaScript и растущей кодовой базой Python в командах инженеров DevOps.[Решение] Я полагаю, что пришло время переосмыслить цель стандартов кодирования, какую ценность они приносят и как мы ее достигаем в нынешних условиях. Вместо подхода «сверху вниз», который мы использовали в прошлом, я предполагаю, нам подойдет более совместный подход, который позволил бы каждому работнику и команде принять участие в обсуждении.
Модель «Проблема-контекст-решение» в действииПриведу пример этого процесса с помощью ситуации, которая произошла, когда я писал эту книгу.В моей компании есть формальный структурированный процесс создания новых дизайнов для продуктов. Он хорошо работает в большинстве наших доменов, но один из них немного отличается. Обычные процессы в основном включают общение с клиентами и выяснение проблем, а также разработку продуктов для их решения. Но эта конкретная область включает научные знания, поэтому в компании работают эксперты в соответствующих научных сферах.Проблема в том, что обычный процесс проектирования уменьшал значимость вклада экспертов. Мы стараемся избегать группового мышления и предвзятости, которые внутренние заинтересованные стороны могут привнести в дизайн, потому что хотим быть уверены, что прислушиваемся исключительно к нашим клиентам. Но наши заказчики не знают о науке, которая влияет на то, как они работают, и экспертам предстоит сыграть большую роль в процессе проектирования.Кое-то из команды захотел решить этот вопрос и написал короткое послание, применив модель «Проблема-контекст-решение».Проблема. Нашим экспертам не дают достаточно права голоса в процессе, хотя их знания необходимы для создания эффективного продукта. На практике это приводит к менее эффективным продуктам, мы должны исправить это.Контекст. Хотя большинство проблем, связанных с дизайнерскими решениями, требуют специальных знаний, мы обнаружили, что заказчикам не хватает основных знаний о проблеме. Наши эксперты, опираясь на более чем столетний опыт науки, обладают этими важнейшими знаниями.Связь. Конкретно для этого домена нам необходимо изменить стандартный процесс, чтобы дать право голоса экспертам. Они могут помочь нам интерпретировать то, что мы слышим от клиентов, и воспользоваться огромным количеством проверенных научных данных по этой теме.Решение. Я рекомендую привлекать экспертов не на начальном этапе общения с людьми, а на более позднем этапе обобщения данных, чтобы они могли помочь нам лучше интерпретировать то, что мы услышали от клиентов, в контексте их научного опыта.В итоге эта рекомендация была принята, и для некоторых членов нашей команды это был почти момент прозрения. Называя проблему, предоставляя общий контекст, связывая его с проблемой, а затем предлагая решение, автор создал пространство для понимания, экологичного совместного обсуждения и в конечном счете улучшил рабочий процесс.