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