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