Бизнис

Ownership is the Missing Architecture for Sustainable Software

Сопственоста е архитектурата што недостига за одржлив софтвер

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

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

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

Сопственоста е систем, а не слоган

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

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

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

Цената на фрагментираната одговорност

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

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

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

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

Градете сопственост околу исходите

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

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

  • Кој проблем сме одговорни да го подобриме?
  • Кои корисници и засегнати страни го доживуваат резултатот?
  • Кои одлуки можеме да ги донесеме без ескалација?
  • Кои системи, интерфејси и оперативни одговорности се во нашиот опсег?
  • Како ќе знаеме дали исходот се подобрил или се влошил?

Овие прашања откриваат корисна разлика меѓу одговорноста и сопственоста. Одговорноста може да се додели како задача: ажурирај endpoint, прегледај pull request, напиши белешки за изданието. Сопственоста вклучува расудување: одлучување што е важно, рано препознавање ризици и истрајување кога списокот со задачи повеќе не ја опишува вистинската работа.

Дајте им на сопствениците овластување да дејствуваат

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

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

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

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

Поентата не е бирократијата. Поентата е зачувување на контекстот и правење на сопственоста видлива кога првичните носители на одлуки не се достапни.

Направете ја оперативната работа дел од работата на производот

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

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

Практичните навики помагаат:

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

Овие практики не се данок на иновацијата. Тие се она што ѝ овозможува на иновацијата да продолжи без производот да станува сè покревок.

Сопственоста е и кариерна вештина

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

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

Менаџерите и постарите инженери треба внимателно да го наградуваат ова однесување. Пофалувајте ги луѓето за подобрување на системите, споделување контекст и намалување на идната работа — не само за спасување итни лансирања. Во спротивно, организацијата учи дека сопственоста значи вонреден напор, наместо промислено управување.

Архитектурата што го надживува планот

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

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

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

Mihajlo

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