Poslovanje

Architecting for Sustainable Delivery: Beyond Feature Velocity

Arhitektura za održivu isporuku: više od brzine razvoja funkcionalnosti

Brzinu isporuke značajki lako je slaviti jer je vidljiva. Izdanje se objavi, stavka plana razvoja promijeni boju, a tim može pokazati nešto novo što korisnici mogu upotrebljavati. Ti su trenuci važni. No produktna organizacija izgrađena samo oko brzine sljedećeg izdanja na kraju tu brzinu plaća sporijim odlukama, krhkim sustavima, nejasnim vlasništvom i iscrpljenim ljudima.

Održiva isporuka nije suprotnost brzom kretanju. To je sposobnost da se nastave uvoditi korisne promjene bez stalnog povećavanja troška, rizika i koordinacije potrebnih za sljedeću promjenu. To zahtijeva arhitekturu, ali ne samo softversku arhitekturu. Zahtijeva i jasne granice proizvoda, zdrave timske navike i zajedničku definiciju toga što znači dovršiti posao.

Brzina je rezultat, a ne strategija

Tim može djelovati brzo dok gomila ozbiljna ograničenja. Možda isporučuje zaobilazno rješenje jer temeljni model nije jasan. Možda svaka promjena zahtijeva da se nekolicina ljudi uskladi kroz nekoliko servisa. Možda se problemi u podršci rješavaju herojski, ali se nikada ne pretvaraju u poboljšanja proizvoda ili inženjerskog rada.

Nijedan od tih problema nužno ne sprječava izdanje ovog tjedna. Oni otežavaju sljedeće tromjesečje.

Tehnički lideri stoga bi trebali gledati dalje od pitanja: „Koliko smo značajki isporučili?” Korisna popratna pitanja uključuju:

  • Koliko pouzdano možemo promijeniti ovo područje proizvoda?
  • Tko može donijeti i potvrditi odluku kada uobičajeni stručnjak nije dostupan?
  • Koji problem korisnika ovaj posao rješava i kako ćemo to znati?
  • Koji su prečaci namjerni, dokumentirani i prihvatljivi za ponovno razmatranje?
  • Je li ovo izdanje pojednostavnilo budući rad ili ga učinilo više povezanim?

Ta pitanja ne zamjenjuju metrike isporuke. Ona im daju kontekst. Tim koji kratko razdoblje isporučuje manje stavki dok uklanja usko grlo možda povećava svoj stvarni kapacitet. Tim koji isporučuje dugačak popis malih dodataka dok svaki radni tijek čini zamršenijim možda ga smanjuje.

Dizajnirajte za promjenu na granici proizvoda

Rasprave o arhitekturi često počinju s bazama podataka, servisima, okvirima ili infrastrukturom u oblaku. Ti su izbori važni, ali najskuplji neuspjesi često počinju ranije: tim nije dovoljno jasno odredio granicu proizvoda.

Razmotrite zahtjev da se „doda odobravanje računa”. Ta fraza može skrivati nekoliko različitih potreba: sprječavanje neovlaštenog pristupa, uvođenje tijeka rada za pregled, prikupljanje informacija za usklađenost ili jednostavno omogućavanje administratoru da kontrolira pozivnice. Svako tumačenje podrazumijeva različite podatke, dozvole, korisničke putanje, operativne odgovornosti i načine otkaza.

Održivi tim nakratko usporava na toj granici. Utvrđuje aktera, odluku, promjene stanja i neprihvatljive ishode. Zatim bira najmanji dizajn koji može izraziti te potrebe bez pretvaranja da rješava nepovezane buduće probleme.

Koristite razdjelnice, a ne spekulativnu složenost

Dobra arhitektura stvara razdjelnice ondje gdje je promjena vjerojatna. Razdjelnica može biti dobro definiran modul, stabilno sučelje, zaseban radni tijek ili jasno dodijeljen podatkovni model. Ona nije automatski novi mikroservis, sloj apstrakcije ili sustav konfiguracije.

Primjerice, ako se pravila odobravanja mogu razvijati, izolirajte odluku iza usmjerenog komponenta umjesto da provjere raspršite kroz kontrolere, pozadinske zadatke i kôd korisničkog sučelja. Prva implementacija može ostati jednostavna. Važno je da ostatak proizvoda postavlja jedno jasno pitanje, umjesto da ugrađuje vlastitu verziju pravila.

Razlika je važna. Razdjelnica čuva mogućnosti. Spekulativna složenost stvara obveze održavanja prije nego što postoji dokaz da je potrebna.

Učinite vlasništvo konkretnim

Vlasništvo se često opisuje kao način razmišljanja. U praksi mora biti vidljivo. Netko bi trebao znati za koje je ishode određeno područje proizvoda odgovorno, što znače njegovi operativni signali, gdje se nalaze njegove važne odluke i kako posao ulazi u njegov red čekanja.

To ne znači da jedna osoba postaje stalni vratar. Zapravo, sustav koji ovisi o jednom stručnjaku ima slabo, a ne snažno vlasništvo. Trajno vlasništvo širi kontekst, a pritom zadržava jasnu odgovornost.

Korisni timski dogovor navodi:

  • područje proizvoda ili sustava za koje se preuzima vlasništvo;
  • korisničke i poslovne ishode koji su važni;
  • tim odgovoran za svakodnevne odluke i održavanje;
  • sučelja i ovisnosti koji zahtijevaju koordinaciju;
  • očekivani odgovor kada nešto zakaže ili povratne informacije korisnika otkriju nedostatak.

Vlasništvo također mijenja način na koji timovi tretiraju održavanje. Nedostaci, zbunjujući radni tijekovi, spori upiti, nepristupačne interakcije, nepouzdane implementacije i nejasna dokumentacija nisu prekidi „stvarnog” rada na proizvodu. Oni su dokaz o proizvodu koji korisnici zaista doživljavaju.

Udaljeni timovi trebaju namjerne operativne sustave

Rad na daljinu čini skrivene pretpostavke skupljima. U uredu se nejasna odluka može ispraviti u razgovoru u hodniku. Kroz vremenske zone nejasnoća može ostati netaknuta jedan dan, a zatim se ponovno pojaviti kao ponovni rad u zahtjevu za povlačenje ili kašnjenje izdanja.

Odgovor nije više sastanaka. To je lagan operativni sustav za odluke.

Zapišite problem prije rasprave o rješenju. Bilježite odluke ondje gdje ih mogu pronaći ljudi na koje utječu. Neka asinkrona ažuriranja odgovaraju na pitanja koja bi kolega inače morao postaviti. Sastanke koristite za neslaganja, kompromise i izgradnju odnosa; pisane artefakte koristite za trajni kontekst.

Zamijenite predstavu o statusu korisnim signalima

Dobro ažuriranje nije popis aktivnosti. „Radili smo na migraciji” čitatelju ostavlja više pitanja nego odgovora. Snažnije ažuriranje navodi što se promijenilo, što ostaje neizvjesno, koja je odluka potrebna i koji rizik može utjecati na isporuku.

Na primjer: „Migracija sada u testiranju obrađuje postojeće račune i nove prijave. Preostala odluka jest trebaju li odobrenja na čekanju isteći. Bez te odluke opseg izdanja i dalje je stabilan, ali tijek rada podrške nije.”

Ovaj stil poštuje pažnju i olakšava suradnju. Također uči timove da rano izlože neizvjesnost, kada ju je najjeftinije riješiti.

Ugradite kvalitetu u put do produkcije

Kvaliteta ne bi trebala biti ceremonijalna faza na kraju razvoja. Ona je skup povratnih petlji ugrađenih u način na koji se posao kreće od ideje do produkcije.

Za značajnu promjenu to može uključivati jasan put prihvaćanja, pregled kôda, automatizirane provjere primjerene riziku, način promatranja rezultata nakon izdanja i plan za poništavanje ili ograničavanje štete. Točan proces će se razlikovati. Promjena teksta i radni tijek povezan s plaćanjem ne bi trebali nositi isto opterećenje.

Važno načelo jest proporcionalnost. Timovi gube povjerenje kada svaka promjena zahtijeva težak proces. Također gube povjerenje kada se važne promjene oslanjaju na optimizam. Zrela isporuka prilagođava razinu pažnje mogućoj posljedici pogreške.

Kada su implementacije rutinske, timovi se mogu sigurno poboljšavati u manjim koracima. Manji koraci skraćuju cikluse povratnih informacija, smanjuju opseg vraćanja promjena i olakšavaju učenje o tome koja je promjena proizvela koji ishod. To nije samo inženjerska prednost; to je učenje o proizvodu zdravijim tempom.

Razvijajte karijere povećavanjem utjecaja

Za programere je održiva isporuka također karijerna vještina. Snažni suradnici čine više od dovršavanja dodijeljenih zadataka. Oni ljudima oko sebe čine jasnijim sljedeći koristan korak.

To može značiti razjašnjavanje zahtjeva prije početka implementacije, dokumentiranje ne očite odluke, poboljšavanje testa za ponavljajući nedostatak ili uočavanje da ovisnost stvara kašnjenje koje se može izbjeći. Može značiti i odupiranje porivu da se svaki problem riješi samostalno. Traženje ranog pregleda često je znak prosudbe, a ne slabosti.

Tehničko vodstvo vidljivo je u kvaliteti odluka koje tim može donijeti nakon što ste podijelili kontekst, a ne u broju odluka koje moraju proći kroz vas.

Trajna prednost

Korisni digitalni proizvodi rijetko su rezultat jednog dramatičnog izdanja. Nastaju iz mnogih odgovornih odluka: odabira jasne granice, eksplicitnog iznošenja kompromisa, tretiranja održavanja kao rada na proizvodu i pomaganja ljudima da surađuju bez oslanjanja na stalnu dostupnost.

Brzina isporuke značajki i dalje je važna. Korisnici zaslužuju napredak. No najotporniji timovi napredak mjere dubljim standardom: postaju li sposobniji isporučiti sljedeću vrijednu promjenu. Gradite tu sposobnost, a brzina postaje manje sprint koji treba održavati, a više svojstvo organizacije.

Portret autora bloga

Mihajlo

Ja sam Mihajlo — programer vođen znatiželjom, disciplinom i stalnom željom da stvorim nešto smisleno. Dijelim uvide, tutorijale i besplatne usluge kako bih pomogao drugima da pojednostave svoj rad i rastu u svijetu softvera i umjetne inteligencije koji se neprestano razvija.