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