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