Надвор од кодот: Инженерство на производи што учат и се приспособуваат
Повеќето софтверски тимови можат да испорачаат функционалност. Потешкото прашање е дали производот станува покорисен откако ќе биде испорачан.
Таа разлика одвојува база на код од производ што учи. Кодот го извршува она што е специфицирано. Производ што учи и се приспособува му помага на својот тим да забележи што навистина прават луѓето, да разбере каде се нарушува искуството и намерно да прави подобрувања без секое издание да го претвора во коцкање.
За техничките лидери, ова не е аргумент за додавање вештачка интелигенција во секоја патна карта. Тоа е аргумент за вградување повратни информации, расудување и сопственост во начинот на кој се дизајнира и управува со производот.
Производите учат преку повратни циклуси, не преку слогани
Корисниот дигитален производ никогаш не е завршен во моментот кога ќе биде објавена неговата прва верзија. Реалната употреба открива претпоставки што документите со барања не можат: корисниците следат неочекувани патеки, терминологијата е погрешно разбрана, бавни моменти се појавуваат на различни места од предвиденото, а навидум мал работен тек создава барања за поддршка.
Одговорот не треба да биде „соберете повеќе податоци“ во апстрактна смисла. На тимовите им е потребен циклус со јасна цел:
- Дефинирајте го исходот за клиентот што функционалноста треба да го подобри.
- Изберете мал сет сигнали што откриваат дали тој исход се случува.
- Прегледајте ги тие сигнали заедно со квалитативните повратни информации и оперативните докази.
- Донесете ја следната одлука за производот, па повторно измерете.
Разгледајте тек за прикачување документи. Тимот првично може да мери завршени прикачувања, а потоа да открие дека многу луѓе успешно прикачуваат датотеки, но го напуштаат следниот чекор за преглед. Самото завршување не беше исходот; тоа беше сигурноста дека документот е прифатен и употреблив. Следната итерација може да ги подобри пораките за валидација, да прикаже статус на обработка или да го направи чекорот за преглед појасен.
Важната навика е да се поврзат доказите со одлука. Контролна табла што никој не ја користи не е повратен циклус. Ниту, пак, низа коментари од клиенти без назначен сопственик што ќе ги толкува.
Дизајнирајте за набљудливост пред инцидентот
Учењето зависи од можноста да се види што прави системот. Ова подеднакво важи за корисничкото искуство, однесувањето на апликацијата и здравјето на испораката.
Кога корисник ќе пријави дека „страницата не работеше“, тимот треба да може да го стесни проблемот без да бара од него да репродуцира нејасна низа од сеќавање. За тоа е потребна внимателна телеметрија: значајни пораки за грешки, барања што може да се следат, соодветни дневници и настани што опишуваат важни дејства во производот, наместо секое кликнување.
Набљудливоста често се третира како инфраструктурна работа што може да чека додека не дојде обемот. Во пракса, дури и скромен производ има корист од брзо одговарање на основни прашања: Дали барањето стигна до услугата? Дали откажа зависност? Која верзија го обработи? Дали проблемот е ограничен на прелистувач, тип на сметка или работен тек?
Користете сигнали со воздржаност
Повеќе инструментација не е автоматски подобра. Настаните треба да служат на прашање на кое тимот можеби ќе треба да одговори. Собирањето чувствителни информации „за секој случај“ додава ризик без да го подобри расудувањето.
- Инструментирајте значајни премини, како започнување, завршување, повторен обид или напуштање критичен работен тек.
- Вклучете доволно контекст за дијагностицирање неуспеси без складирање непотребни лични податоци.
- Направете ја сопственоста експлицитна: некој треба да знае кои сигнали се важни и кога се прегледуваат.
- Отстранете или ревидирајте настани кога производот се менува, за контролните табли да не зачувуваат застарени претпоставки.
Оваа дисциплина ја олеснува и далечинската соработка. Пишана дефиниција за метрика, заедничка контролна табла и видлив запис за одлуки ја намалуваат зависноста од разговори во ходник и индивидуална меморија.
Сопственоста значи носење на исходот преку граници
Здравата сопственост не значи еден развивач да биде единствено одговорен за секој проблем во продукција, тикет за поддршка и одлука за производот. Таа е заедничко очекување дека работата не завршува кога тикетот ќе премине во друга колона.
Развивач што поседува одредена способност се прашува што се случува по распоредувањето. Може ли поддршката да го објасни однесувањето? Може ли операциите да откријат неуспех? Може ли продукт-менаџер да каже дали се подобрил предвидениот исход? Може ли друг инженер безбедно да го промени по шест месеци?
Овој начин на размислување ги менува техничките избори. Кратенката сè уште може да биде разумна, но нејзините трошоци стануваат видливи: на кревка интеграција ѝ треба мониторинг, на рачен процес му треба сопственик, а на сложена функционалност ѝ треба патека за поддршка. Тогаш тимовите можат свесно да изберат компромиси наместо да ги откријат при итна ескалација.
Техничките лидери можат да го зајакнат ова со организирање на работата околу способности на производот, наместо само околу тесни слоеви на имплементација. Тим одговорен за патувањето на воведување, на пример, може да ги координира промените во интерфејсот, однесувањето на услугата, мерењата, документацијата и доверливоста како една кохерентна грижа.
На далечинските тимови им требаат намерни ритуали за учење
Дистрибуираната работа не го спречува силното размислување за производот, но го отстранува случајното усогласување. Тимот не може да претпостави дека сите го слушнале истиот проблем на клиентот, го виделе истиот инцидент или разбрале зошто е направен компромис.
Одговорот не се повеќе состаноци. Тоа се подобри артефакти и појасни моменти за одлуки. Кратка белешка за дизајн може да ги наведе проблемот, ограничувањата, алтернативите, планот за пуштање и мерките за успех. Белешка за издание може да објасни што се променило и како да се следи. Кратка ретроспектива може да претвори тешка испорака во подобрување на системот на работа.
Пишаната комуникација е особено вредна кога бележи неизвесност. „Веруваме дека ова ќе ги намали неуспесите при поставувањето; ќе го разгледаме резултатот по објавувањето“ е посилно отколку да се претстави хипотеза како сигурност. Тоа му дава на тимот дозвола да учи наместо да брани почетен план.
Испорачувајте на начини што ги зачувуваат опциите
Одржливата испорака не се мери според тоа колку често тимот распоредува. Таа се мери според тоа колку безбедно тимот може да прави промени, да го набљудува нивниот ефект и да реагира кога реалноста не се согласува со очекувањата.
Малите, повратни изданија помагаат. Знаме за функционалност, постепено пуштање или прекинувач за конфигурација може да ја ограничи изложеноста додека тимот го проверува однесувањето. Овие техники не се замена за тестирање, но создаваат простор за учење во продукција без корисниците да се третираат како несвесни испитаници.
Практичниот план за издание треба да одговори на неколку едноставни прашања:
- Кое однесување се менува и за кого?
- Што би покажало дека промената помага?
- Кои начини на неуспех се најверојатни?
- Како тимот ќе ги открие тие неуспеси?
- Која е патеката за враќање назад или ублажување?
- Кој е достапен да донесува одлуки за време на пуштањето?
Кога овие одговори недостигаат, распоредувањето станува чин на надеж. Кога се јасни, испораката станува контролиран експеримент со соодветни заштитни мерки.
Градете кариери околу расудување, не само околу резултат
За развивачите, преминот од имплементирање задачи кон обликување приспособливи производи е предност во кариерата. Тој ги развива вештините што остануваат вредни како што алатките се подобруваат: поставување на проблемите, препознавање компромиси, комуницирање неизвесност и поврзување на техничката работа со исходите за клиентите.
Почнете со мало. Во следната дискусија за планирање, прашајте како ќе се препознае успехот по објавувањето. За време на имплементацијата, идентификувајте еден веројатен оперативен неуспех и олеснете го неговото дијагностицирање. По лансирањето, прочитајте ги повратните информации од поддршката или доказите за употреба пред целосно да преминете на следниот тикет.
Овие дејства не бараат менаџерска титула. Тие го покажуваат видот расудување од кое зависи техничкото лидерство.
Производот е системот што се подобрува самиот себе
Одличните производи не се дефинирани само со елегантна архитектура или импресивен датум на издание. Тие се дефинирани со способноста на тимот да продолжи да ги подобрува без да ги исцрпи луѓето одговорни за нив.
Градете софтвер што може да го открие своето однесување. Создавајте повратни циклуси што водат до одлуки. Дајте им на тимовите сопственост над исходите, а не само над резултатот. Испорачувајте промени што го зачувуваат просторот за учење.
Надвор од кодот, тоа е вистинскиот инженерски предизвик: создавање производи, тимови и навики што внимателно се приспособуваат кога светот ќе се покаже посложен од првиот план.