Бизнис

Architecting Remote Teams for Sustainable Product Velocity

Архитектура на оддалечени тимови за одржлива брзина на развој на производи

Работата од далечина не го прави автоматски побрз еден продуктен тим. Таа го отстранува патувањето до работа и додава флексибилност, но исто така ја открива секоја нејаснотија што канцеларијата порано ја криеше: нејасни одлуки, фрагментирана одговорност, неискажани претпоставки и работа што се придвижува дури откако некој ќе забележи дека е заглавена.

Одржливата брзина на развој на продуктот не е способноста да се испорачува континуирано со максимална брзина. Таа е способноста постојано да се претвораат вредни идеи во сигурна вредност за клиентите, без да се исцрпуваат луѓето или да се ослабува системот што ја овозможува идната испорака. За тим што работи од далечина, тоа бара архитектура надвор од кодната база: архитектура за одлуки, комуникација, одговорност и учење.

Дизајнирајте за автономија, а не за постојана достапност

На тим што работи од далечина не треба да му е потребно сите да бидат онлајн во исто време за да постигнува вообичаен напредок. Кога работата зависи од итни одговори, распределениот распоред станува редица од прекини. Развивачите губат долги периоди на концентрација, продуктовите одлуки чекаат во приватни пораки, а тимот ја меша одзивноста со соработката.

Алтернативата е намерна автономија. Дајте им на луѓето доволно контекст за безбедно да носат локални одлуки, а потоа направете ги тие одлуки видливи. Добро обликувана задача го објаснува проблемот, посакуваниот исход, ограничувањата, познатите ризици и начинот на кој ќе се оценува успехот. Таа не го пропишува секој детал од имплементацијата, освен ако тој детал навистина е фиксен.

На пример, „додадете поддршка за извоз“ е барање. „Овозможете им на администраторите на сметки да го извезат филтрираниот приказ на дневникот за ревизија како CSV, зачувајте ги применетиот временски опсег и филтри и избегнете синхроно генерирање датотеки за големи множества резултати“ е продуктна задача. Втората верзија му дава простор на инженерскиот тим да дизајнира, притоа заштитувајќи го исходот за клиентот и оперативните ограничувања.

Направете ја одговорноста експлицитна на границата на продуктот

Одговорноста често се опишува како отчетност за услуга или репозиториум. Тоа е корисно, но нецелосно. На тимот му е потребна одговорност и околу корисничките исходи: кој го разбира проблемот, прави компромиси, го следи резултатот по објавувањето и го одржува работниот тек здрав со текот на времето?

Кога одговорноста е нејасна, тимовите што работат од далечина компензираат со состаноци. Секој мал избор станува барање за консензус, бидејќи никој не е сигурен кој смее да одлучи. Експлицитната одговорност го намалува тоа триење без да создава изолирани силоси.

  • Продуктна одговорност: некој ја одржува дефиницијата на проблемот, контекстот на клиентот и образложението за приоритетот.
  • Техничка одговорност: некој обезбедува решението да се вклопува во архитектурата, потребите за сигурност и оперативната реалност.
  • Одговорност за испорака: некој ги одржува зависностите, ризиците и подготвеноста за објавување видливи.
  • Заедничка тимска одговорност: сите придонесуваат со преглед, преиспитување и поддршка, наместо именуваниот сопственик да го третираат како тесно грло.

Една личност може да има повеќе од една од овие одговорности во мал тим, но одговорностите сепак треба да бидат разликувани. Именувањето сопственик не значи дека таа личност ја извршува секоја задача. Тоа значи дека тимот знае кој ја води работата до јасна одлука или разрешување.

Користете ја писмената комуникација како продуктна површина

Во работата од далечина, пишувањето не е административен товар. Тоа е дел од оперативниот систем. Одлука што постои само во видеоповик е тешко повторно да се разгледа, тешко е да ја оспорат луѓе од друга временска зона и речиси е невозможно подоцна да ја разбере нов член на тимот.

Добрата писмена комуникација е доволно концизна за читање и доволно целосна за дејствување. Таа ја бележи одлуката, причината, разгледаните алтернативи кога е релевантно и важните следни чекори. Лесна белешка за одлука може да спречи недели повторувани дебати.

Одделете ја дискусијата од одлуката

Многу разговори од далечина стануваат долги бидејќи тимот никогаш не наведува каков вид интеракција се одвива. Дали целта е да се соберат мислења, да се идентификуваат ризици, да се избере пристап или да се сподели веќе донесена одлука? Почнете со таа разлика.

За значајни технички избори, краток предлог може да биде доволен:

Одлука: обработувајте ги големите извози асинхроно.

Зошто: синхроните барања носат ризик од истекување на времето и го зафаќаат капацитетот на апликацијата.

Компромис: корисниците мора да чекаат за завршување и им треба начин да ја преземат датотеката.

Следен чекор: дефинирајте задржување, дозволи и известување за неуспех пред имплементацијата.

Ова не е бирократија. Тоа им дава на прегледувачите нешто конкретно што можат да го подобрат и им овозможува на отсутните членови на тимот да придонесат без да го реконструираат разговорот од фрагменти од пораки.

Заштитете го фокусот, додека ги зачувувате повратните информации

На тимовите што работат од далечина им се потребни и асинхрона длабочина и поврзаност во реално време. Грешката е тие да се третираат како спротивставени филозофии. Асинхроната работа е одлична за подготовка, документација, преглед на код, рутински статус и одлуки што имаат корист од размислување. Синхроното време е вредно за неразрешен конфликт, истражување на сложен дизајн, координација при инциденти и градење односи.

Практичното прашање не е „Дали ова треба да биде состанок?“ Туку „Кој исход бара луѓето да бидат заедно токму сега?“ Ако одговорот е едноставно споделување информации, запишете го. Ако одговорот е намалување на неизвесноста преку брза интеракција, одржете состанок со јасна агенда и заминете со одлуки или доделени следни чекори.

Прегледот на код заслужува особено внимание. Културата на прегледување во тим што работи од далечина треба да фаворизира мали, разбирливи промени, јасни описи и навремени повратни информации. Големите pull requests тешко се анализираат на какво било растојание; во распределен тим, тие исто така го зголемуваат времето на чекање и ги прават прегледувачите неволни да почнат. Помалите промени го прават квалитетот континуирана активност, наместо бариера во доцна фаза.

Планирајте околу учењето, а не околу сигурноста

Развојот на продукти е полн со неизвесност. Патоказот е корисен кога комуницира насока и посакувани исходи, а не кога се преправа дека секој датум и граница на опсегот веќе се познати. Тимовите што работат од далечина имаат корист од раното правење на неизвесноста видлива, бидејќи скриените претпоставки е потешко да се поправат откако работата е распределена низ локации и календари.

Поделете ја работата во фази што создаваат докази. Прототипот може да одговори дали интеракцијата е разбирлива. Техничкиот spike може да открие дали интеграцијата ги има потребните дозволи и ограничувања. Ограниченото објавување може да покаже дали работниот тек го решава предвидениот проблем на клиентот. Секоја фаза треба да го промени она што тимот го знае и да влијае врз следната одлука.

Ова исто така го подобрува кариерниот развој. Развивачите стануваат посилни продуктни партнери кога можат да објаснат не само како функционира една функционалност, туку и која неизвесност ја намалува, каков компромис прави и како тимот ќе знае дали помогнала.

Изградете систем за испорака што може да се опорави

Брзината станува кревка кога секое објавување зависи од херојски напор. Одржливите тимови ги третираат сигурноста, одржливоста и оперативната подготвеност како дел од испораката на продуктот. Функционалноста не е завршена само затоа што работи на машината на развивачот; ѝ треба соодветен пат до тестирање, распоредување, набљудување и опоравување.

  • Одржувајте ги распоредувањата доволно мали за проблемот да може да се изолира и поништи.
  • Користете контроли за функционалности кога способноста има потреба од побезбедно воведување или брз пат за оневозможување.
  • Дефинирајте набљудливи сигнали пред објавувањето, како неуспешни задачи, промени во латентноста или стапки на завршување.
  • Резервирајте капацитет за одржување, проблеми во продукција и подобрувања на цевководот за испорака.
  • Прегледувајте ги инцидентите за системски поуки, а не за индивидуална вина.

Тим што може смирено да се опорави ќе носи подобри одлуки од тим што се плаши од секое објавување. Таа сигурност се стекнува преку навики: разбирливи промени, сигурна автоматизација, јасни предавања и искрен поглед кон оперативниот ризик.

Одржувајте го човечкиот систем здрав

Лидерството од далечина не е надзор со подобри контролни табли. Броењето пораки, commits или часови онлајн ја наградува видливата активност наместо корисните исходи. Тоа исто така ги охрабрува луѓето да останат демонстративно достапни кога им се потребни непрекинато време, одмор или помош.

Наместо тоа, направете го напредокот разбирлив преку исходи: кој проблем напредувал, која одлука била донесена, кој ризик се променил и што е блокирано. Создајте редовни простори за техничка критика, продуктно откривање и неформално поврзување, но не ја присилувајте секоја интеракција во ритуал. Довербата расте кога очекувањата се јасни и луѓето можат сигурно да ги исполнат.

Најефективните тимови што работат од далечина помалку личат на збир од поединци што пренесуваат тикети, а повеќе на група сопственици што се грижат за заеднички продукт. Тие пишуваат јасно, одлучуваат промислено, објавуваат безбедно и учат јавно. Тоа е архитектурата во која вреди да се инвестира: не систем што бара постојана брзина, туку систем што продолжува да создава корисен замав кога условите се несовршени.

Портрет на автор на блогот

Mihajlo

Јас сум Михајло - развивач поттикнат од љубопитност, дисциплина и постојаната желба да создадам нешто значајно. Споделувам увиди, упатства и бесплатни услуги за да им помогнам на другите да ја поедностават својата работа и да растат во постојано развивачкиот свет на софтверот и вештачката интелигенција.