Lannisters gjithmonë paguajnë borxhet e tyre. Cila është motoja e Lannister? Yuri Boldyrev njollos blogerin e vogël nën Kremlin, Rogers

Praktikat teknologjike të menaxhimit të borxhit në një ekip të vetëm


Rreth një vit më parë, ekipi ynë kaloi nga një fazë e rritjes së shpejtë të veçorive në një zhvillim më të rrjedhshëm me fokus në përmirësimin e cilësisë. Në këtë pikë, produktet tona kanë grumbulluar një sasi të dukshme zgjidhjesh jo optimale, kode të shëmtuara dhe biblioteka të vjetruara. Diçka duhej bërë për të gjithë këtë.


Deri më sot kemi arritur të ndërtojmë një proces që e bën luftën kundër borxhit teknik të parashikueshëm, pa dhimbje dhe të pashmangshme.


Çfarë morëm si rezultat:

  • Skuadra është e lumtur. Retrospektiva e lëshimit përfshin rregullisht pika pozitive në lidhje me përmirësimin e teknologjisë dhe reduktimin e borxhit teknik.
  • Për disa publikime tremujore me radhë, ne ishim në gjendje të rrisnim funksionalitetin pa rritur numrin e rreshtave të kodit në projekt. Heqja e kodit të panevojshëm dhe thjeshtimi i asaj që ishte e nevojshme zvogëloi madhësinë e bazës së kodit për funksionalitetin ekzistues. Dhe ky reduktim përafërsisht përkoi në shkallë me kodin e ri që zbaton funksionalitetin e ri.
  • Gjatë rifaktorimeve dhe përmirësimeve, produkti është gjithmonë në gjendje pune. Çdo dy javë ne lëshojmë një publikim të përkohshëm plotësisht funksional.

Më lejoni t'ju tregoj se si e arritëm këtë.

Çfarë është borxhi teknik

Përkufizimi im i punës për borxhin teknik është sasia e punës që duhet bërë për ta bërë një projekt të përmbushë vizionin e ekipit për atë që është e mrekullueshme. Vini re se borxhi teknik mund të lindë jo vetëm për shkak të përdorimit liberal të patericave në zhvillim, por edhe për shkak të ndryshimit të ideve për bukurinë. Për shembull, praktikat e zakonshme të industrisë kanë ndryshuar. Ose zhvilluesit nuk u dashuruan me OOP dhe ranë në dashuri me programimin funksional. Ose korniza dikur në modë nuk është më një tortë dhe është bërë e vështirë të gjesh specialistë që do të donin të shkruanin mbi të.


Megjithatë, arsyeja kryesore për borxhin teknik është entropia në të gjithë diversitetin e saj. Testet e njësive me aftësi të kufizuara, komentet e vjetruara që humbën kontaktin me kodin, vendime të pasuksesshme arkitekturore, zbatimi i veçorive që askush nuk i përdor më, një themel për një të ardhme që nuk ka ardhur dhe shumë e shumë më tepër.


Nga kjo rezulton se shfaqja e borxhit teknik është e pashmangshme në çdo projekt jetëgjatë.

Kur borxhi teknik nuk është problem

Pse borxhi teknik është i keq? Rrit koston e zhvillimit të mëtejshëm për shkak të një numri faktorësh:

  • Shpejtësia e zbatimit të funksionalitetit të ri është zvogëluar.
  • Mundësia e regresioneve gjatë korrigjimit të defekteve rritet.
  • Procesi i zhvillimit bëhet më pak i parashikueshëm dhe për këtë arsye më pak i menaxhueshëm.
  • Procesi i futjes së një zhvilluesi të ri në projekt po zgjatet.

Kjo humbje nganjëherë quhet "interesi i borxhit teknik"


Ka situata ku këto humbje janë më të lira sesa eliminimi i borxhit teknik:

  • Fundi i jetës së projektit është afër. Vini re, ky nuk është fundi i shtimit të funksionalitetit, por momenti kur mund të ndaloni së shpenzuari përpjekjet e programuesit për mbështetjen gjithashtu. Kjo kategori përfshin gjithashtu prototipe një herë, demo një herë për ekspozita, etj.
  • Vlera e kohës së zhvillimit tani është shumë më e lartë se sa pritej në të ardhmen. Rregullime urgjente për një afat fiks, startup që po u mbarojnë paratë nga raundi tjetër i financimit, etj. Në raste të tilla, fiksimi i borxhit teknik mund të vonohet derisa nxehtësia e momentit të jetë ftohur. Ka projekte që nuk dalin nga gjendja e jashtëzakonshme, por këshillat nga ky artikull gjithsesi nuk do t'i ndihmojnë.

Çfarë duhet bërë me borxhin teknik? Qasje të dështuara

Qasja nr. 1. "Nuk kemi kohë, lirimi duhet të dorëzohet dje"

Dëshira për të përmbushur me çdo kusht afatin e së nesërmes, në dëm të shpejtësisë së zhvillimit pasnesër.


Ndonjëherë një strukturë e parafabrikuar e bërë nga paterica është një zgjedhje objektivisht e saktë. Në praktikën time, kjo u shpreh më qartë kur bëja versione demo për ekspozita. Data e ngjarjes është rreptësisht e caktuar; nëse nuk e keni arritur në kohë për një ekspozitë të rëndësishme, përpjekja tjetër do të jetë pas një viti. Në këtë rast, ju mund ta shfaqni produktin "nga duart tuaja", duke shmangur me kujdes të gjitha gabimet. Si inxhinier, është e pakëndshme për mua të bëj projekte të tilla, por patericat në to janë të justifikuara.


Kur bëni një produkt që do të zgjasë shumë, gjithçka është ndryshe. Përmbushja e afatit për shkak të zgjidhjeve teknike të dyshimta është një kënaqësi e shtrenjtë. Kostoja totale është:

  1. nga zbatimi i vetë patericës,
  2. nga zëvendësimi i tij i mëvonshëm me një zgjidhje të plotë,
  3. nga vuajtja e të paturit një pateric mes pikave të mëparshme.

Pika e dytë është shumë e lehtë për t'u nënvlerësuar, dhe ekziston rreziku që të mos mendoni fare për të tretën, më të shtrenjtën.


Kur takoni një drejtues të teknologjisë me një sy të dridhur në një konferencë, mund të rezultojë se ishte makthi i korrigjimit të pafund të një dizajni të bërë nga paterica që e solli atë në këtë gjendje.


Qasja nr. 2. "Po, këtu duhet të hedhim gjithçka jashtë dhe ta shkruajmë përsëri"

Sa më e keqe të jetë situata e borxhit teknik, aq më i fortë është tundimi për të varrosur të gjithë kodin e projektit dhe për të shkruar gjithçka përsëri. Ky është një nga gabimet klasike që mund të vrasë të gjithë projektin.


Tema është trajtuar aq mirë në artikullin e famshëm të Joel Spolsky sa nuk shoh asnjë kuptim të paraqes argumentet e mia.

Qasja nr. 3. "Ne do të rifaktojmë natën dhe fundjavat, në mënyrë që menaxheri të mos e zbulojë."

Argumentimi i nevojës për të eliminuar borxhin teknik për sa i përket përfitimeve të biznesit nuk është gjithmonë i lehtë. Ekipi i zhvillimit mund të joshet të shkojë rreth skajeve të përafërta dhe të fillojë një rifaktorim të madh në vend. Kjo mund të bëhet gjatë orarit jo të punës, në pauza midis detyrave të tjera ose "në bisht" të detyrave të tjera duke fryrë vlerësimet.


Çfarë të keqe ka? Oh, një mori gjërash:

  • Transparenca e reduktuar minon besimin midis menaxhmentit dhe ekipit. Shpesh përpjekjet e mëvonshme për të korrigjuar situatën duke imponuar disiplinë dhe shtrënguar vida do të çojnë në një përkeqësim të mëtejshëm të punës ekipore.
  • Një situatë e rrënjosur në të cilën prioritetet e ekipit dhe menaxhmentit janë konfliktuale shkakton demotivim në të dyja palët.
  • Frytet e rifaktorimit përfshihen në produkt në mënyra të paparashikueshme dhe shkaktojnë defekte regresioni aty ku nuk priten. Në ekipet e ndërgjegjshme, kjo çon në një ngarkesë të papritur dhe të paplanifikuar në QA. Në të pandërgjegjshme, ajo shkon në prodhim dhe prishet atje.

Pasi ekipi përdor këtë recetë, sytë e menaxhmentit fillojnë të dridhen.

Parimet tona

1. Shtoni detyra teknike në ngarkesën e përgjithshme

Ekzistojnë një numër modelesh në jetën e detyrave në projekte:

  • Një detyrë që nuk është e mbetur ka më pak shanse për të hyrë në punë.
  • Një detyrë pa një formulim të qartë ka më pak shanse për të hyrë në punë.
  • Një detyrë që nuk mund të vlerësohet me një shkallë të lartë besimi ka më pak shanse për të hyrë në punë.
  • Një detyrë e madhe do të presë më gjatë në radhë sesa një e vogël.

Maxim Dorofeev flet shumë mirë për këto gjëra në "Teknika e tij e kutisë së zbrazët".


Për të parandaluar akumulimin e borxhit teknik, puna për eliminimin e tij duhet të përfundojë duke marrë parasysh parimet e listuara më sipër.


Të gjitha detyrat, përveç atyre më të voglat, janë të listuara në ditarin e mbetur. Në këtë mënyrë ata kanë një shans për të bërë jo vetëm në kohën e tyre të lirë, por edhe si pjesë e punës së planifikuar. Për më tepër, detyra të tilla janë më të vështira për t'u humbur plotësisht nga syri - numri i prapambetur shikohet më shpesh dhe më nga afër sesa në TODO në kod, copa letre në monitor, faqe wiki të braktisura, peceta të lyera me çaj me diagrame dhe të tjera burimet e informacionit.

  • Nëse ka një TODO jo të parëndësishme në kod, ai përmban një lidhje me detyrën në listën e mbetur. Ne kontrollojmë përputhshmërinë me këtë parim në shqyrtimin e kodit dhe nuk pranojmë TODO komplekse pa referenca.

    Mund të ketë dramë pas komentit.

    Një herë, pranë një TODO të tillë shkruhej: “Paterica. Pronari i produktit më detyroi ta bëja atë. Hiqeni sa më shpejt të jetë e mundur."

  • Kur një zhvillues kupton se një vend kërkon rifaktorim, ai krijon një problem në numrin e mbetur.
  • Kur një zhvillues ka një dëshirë për të përmirësuar platformën, ai krijon një detyrë në ngarkesën e mbetur.
  • Planet arkitekturore afatgjata futen në grumbull në formën e detyrave të veçanta sapo të ketë siguri të mjaftueshme për të paktën hapat e parë.

Për sa kohë që ndryshime të tilla mbeten të lira për sa i përket kostove të zhvillimit dhe sasisë së testimit të kërkuar, ne mund të përmirësojmë gradualisht bazën tonë të kodit pa ndërprerë objektivat e biznesit ose pa paraqitur rreziqe shtesë.

2. Planifikoni histori teknike bazuar në prioritetet e biznesit

Nëse një pemë bie në pyll, por askush nuk e dëgjoi, a kishte zë? Nëse ka kod të keq në një projekt, por ai modul nuk do të duhet kurrë të ndryshohet, a ka borxh teknik?


Unë besoj se kur një programuesi e ka të pakëndshme të shikojë një modul të vjetër, kjo në vetvete nuk është një problem shumë i madh. Shumë më keq është ajo që ndodh kur duhet të shtoni funksionalitet të ri në këtë modul ose të zgjeroni atë të vjetër. Krahasuar me bërjen e ndryshimeve në kodin e shkruar mirë, detyra të tilla kanë më shumë gjasa (dhe më shumë gjasa të tejkalojnë vlerësimin origjinal) dhe përmbajnë më shumë gabime. Ndonjëherë shumë më tepër. Për të mbrojtur veten nga këto lloj problemesh, ne përpiqemi të planifikojmë rifaktorimet në mënyrë që ato të bëhen përpara se të shkruajmë funksionalitete të reja në të njëjtin vend.


Nëse funksionaliteti ndryshon dhe rifaktorimet duken të vogla, ato mund të bëhen së bashku. Madhësia e zgjedhur në mënyrë empirike e detyrës për të cilën kjo qasje do të jetë optimale është 3 ditë punë për një zhvillues ose më pak. Kur është e qartë se ka më shumë punë, ajo ndahet në rifaktorim duke ruajtur sjelljen aktuale dhe duke zbatuar funksionalitet të ri.


Kështu, rendi i punës për eliminimin e borxhit teknik përcaktohet nga rendi i detyrave të biznesit në ngarkesën e mbetur.


Parimi i “prioriteteve të biznesit” ka një aplikim tjetër. Një nga problemet e zakonshme që vuajnë zhvilluesit që përpiqen të shkruajnë mirë është vështirësia për t'i kushtuar kohë optimizimit të performancës, përmirësimit të mirëmbajtjes ose gjërave të tjera që nuk përfshihen drejtpërdrejt në planin e punës. Pothuajse gjithmonë ekziston nevoja e biznesit për këto përmirësime. Kush nuk dëshiron që sistemi të funksionojë më shpejt, më i qëndrueshëm dhe të jetë më i lirë për t'u mirëmbajtur? Të gjitha këto përfitime mund të vlerësohen dhe, në bazë të këtij vlerësimi, detyrat për përmirësim mund të vendosen në listën e mbetur, së bashku me çdo tjetër.


Pra, nëse doni të optimizoni performancën, por në vend të kësaj duhet të rregulloni një gabim tjetër të mërzitshëm, ndoshta thjesht nuk dini si t'i shpjegoni përfitimet e optimizimit në një gjuhë që pronari i produktit mund ta kuptojë.

3. Lëreni kodin më të pastër se sa ishte më parë

Pothuajse çdo kod, përveç atij të shkruar së fundmi, mbetet pak prapa idesë aktuale të bukurisë në fushën e stilit dhe arkitekturës. Kur ju duhet të ndryshoni kodin si pjesë e një detyre, konsiderohet praktikë e mirë të bëni të gjitha përmirësimet e sigurta që janë të mundshme në zonën e prekur. Çfarë mund të jetë?

  • Sjellja e moduleve në stilin aktual.
  • Ndryshimi i emrave të ndryshoreve të brendshme në më të kuptueshëm.
  • Thjeshtoni zbatimin duke ruajtur sjelljen.
  • Rifaktorimet lokale që nuk sjellin ndryshime në shkallë të gjerë në modulet e tjera.

Këto përmirësime pritet ta bëjnë kodin më të mirë, por jo të rrisin ndjeshëm koston e zhvillimit ose testimit.


Për shkak të këtij parimi, cilësia e kodit gradualisht rritet në sfond, edhe në ato vende ku nuk ishin planifikuar rifaktorime të veçanta. Për më tepër, sa më shpesh të punojmë në një pjesë të caktuar të sistemit, aq më i mirë është kodi për këtë pjesë. Një kontrast i bukur me projektet ku zhvilluesi shpenzon më shumë kohë në pjesët me kodin më të keq.

4. Çfarëdo që të ndodhë, sistemi duhet të mbetet në gjendje pune.

Një nga parimet bazë të SCRUM thotë se në fund të çdo sprint sistemi duhet të arrijë një gjendje të qëndrueshme.


“Deri në fund të sprintit, rritja duhet të jetë gati, që do të thotë se plotëson kriteret e gatishmërisë së Scrum Team dhe është gati për përdorim. Ai duhet të jetë gati për t'u përdorur, pavarësisht nga vendimi i pronarit të produktit për ta lëshuar ose vonuar atë."

Çdo punë për eliminimin e borxhit teknik bëhet në përputhje me këtë parim.


Transformime të mëdha dekompozohen domosdoshmërisht në mënyrë që çdo fazë individuale të mund të përfundojë në një sprint. Për shembull, ne ndryshuam sistemin e ndërtimit në dy faza (Angular 1.x: paketë në rrjetë zvarritëse, gërmim i përgjuar)


Ne punojmë me VCS sipas parimeve të afërta me gitflow klasik. Zhvillimi kryhet në degë të tipareve, testimi kryhet atje. Si rregull, një degë e tillë nuk zgjat më shumë se një sprint dyjavor. Një degë që jeton më gjatë pothuajse gjithmonë rezulton në kosto shtesë.


Përvoja jonë e konfirmon qartë këtë model. Sa herë që nuk arrinim të përfundonim një rifaktorim të madh në dy javë, ishte një dhimbje dhe vuajtje. Dhe sa më gjatë të ishte detyra dhe sa më gjatë të jetonte dega e hapur, aq më ngadalë shkonte puna dhe aq më shumë kishte probleme.


Nevoja për të qenë gjithmonë disa hapa larg një lëshimi të qëndrueshëm krijon një nga problemet inxhinierike më të vështira dhe interesante - gjetja e zbërthimit optimal të planeve strategjike. Ndryshimet në shkallë të gjerë mund të ndahen në hapa të veçantë, të pavarur. Këshillohet që të filloni të merrni përfitime sa më shpejt që të jetë e mundur. Sa më mirë të kryhet kjo ndarje e punës, aq më të mëdha janë shanset për të përfunduar punën.

Si duket procesi ynë

Një herë për lëshim ne bëjmë një rishikim të detajuar të ngarkesës teknike:

  • Ne mbyllim histori të parëndësishme (relevancën e humbur, të bëra si pjesë e diçkaje tjetër, dublikatë).
  • Ne përditësojmë përshkrimin ku vizioni i çështjes ka ndryshuar.

Kur tregimet e biznesit shfaqen në horizont, bëhet një analizë teknike dhe të gjitha historitë teknike që do të ndihmonin në zbatim lidhen me historinë e biznesit.


Në përgatitje për planifikimin e sprintit:

  • Ne kontrollojmë lidhjet midis historive teknike dhe atyre të biznesit.
  • Ne i lidhim të gjitha gabimet e lidhura me histori teknike që mund të rregullohen me çmim të ulët në të njëjtin vend.

Si të formohet pjesa teknike e prapambetjes

Kur mora rolin e drejtuesit në ekip, pyeta secilin zhvillues dhe QA se çfarë përmirësimesh në produktin që ata donin më shumë të bënin. Shumica e kërkesave lidheshin me përmirësimet teknike të platformës dhe rifaktorimet. Siç tregoi përvoja e mëtejshme, të gjitha problemet kryesore teknike të produktit u përfshinë në këtë grup dëshirash. Kështu që ju mund ta përdorni këtë praktikë për të ndërtuar shpejt një ngarkesë teknike nga e para ose për të marrë një ide të përgjithshme të gjendjes së borxhit teknik në një projekt të ri.


Plotësimi aktual i ngarkesës së mbetur me detyra teknike ndodh për shkak të praktikave të përshkruara më sipër dhe nuk kërkon përpjekje ose analiza të veçanta. Përveç kësaj, idetë e reja për përmirësimin teknik të produktit i shtohen diferencës së mbetur. Kjo bëhet nga çdo anëtar i ekipit që ka ardhur me një ide të tillë. Gjëja kryesore në këtë fazë është të mos humbasësh idenë. Sqarimi dhe përcaktimi i prioritetit ndodh më vonë, gjatë planifikimit të punës.

konkluzionet

  • Borxhi teknik është i pashmangshëm.
  • Për shumicën e projekteve, eliminimi i borxhit teknik është një investim i mirë përpjekjesh.
  • Nëse borxhi teknik nuk adresohet, shpejtësia e zhvillimit gradualisht do t'i afrohet zeros.
  • Tundimi për të hedhur gjithçka jashtë dhe për të shkruar përsëri mund të vrasë ose dëmtojë seriozisht projektin tuaj.
  • Përfitimet e eliminimit të borxhit teknik duhet të përshtaten me përfitimet e biznesit, përndryshe ekziston rreziku që detyrat për krijimin e funksionalitetit të ri të konsiderohen gjithmonë më të rëndësishme.
  • Detyrat për eliminimin e borxhit teknik ia vlen të menaxhohen. Detyra të tilla nuk ndryshojnë nga detyrat e tjera të projektit për sa i përket kontabilitetit, planifikimit dhe prioritizimit.
  • Situatat lindin rregullisht ku mund të zvogëloni borxhin teknik dhe të zgjidhni një problem biznesi në të njëjtën kohë më lirë sesa ta bëni atë veçmas. Këto mundësi duhen shfrytëzuar.
  • Konventat e menduara dhe të përditësuara në kohë të stilit të kodit dhe proceset e rishikimit ndihmojnë në ngadalësimin e shfaqjes së borxhit të ri teknik.
  • Përsëritjet e shkurtra janë po aq të dobishme për rifaktorimet sa janë edhe për zhvillimin e funksionalitetit të ri.
  • Ekipi zakonisht e di se ku është borxhi teknik në projekt dhe sa i keq është. Vlen të përdoret kjo njohuri kur krijoni një ide për borxhin teknik të projektit.

Në përgjigjen time do të prek jo vetëm Shtëpitë e Mëdha, por edhe disa shtëpi të tjera për të cilat kam mundur të marr informacion.

1.Starkey - "Dimri po vjen". Do të thotë se paqja dhe siguria janë të përkohshme dhe iluzore; njeriu duhet të jetë gjithmonë i përgatitur për fatkeqësi dhe luftëra për të përballuar rrezikun plotësisht të armatosur. Në Westeros, dimri nuk është vetëm një stinë që zgjat me vite, por edhe një simbol i sprovave të vështira. Dhe në fakt, kjo moto nuk ka të bëjë vetëm me Shtëpinë e Starks, por të gjithë vendin.

2. Lannisters Shtëpia Lannister duket se ka dy moto, njëra që konfirmon stemën e frikshme -" Dëgjo zhurmën time!", e dyta, ekuivalente me një thënie, por që tingëllon një rend i madhësisë më shpesh se e para - " Lannisters gjithmonë paguajnë borxhet e tyre". Motoja e parë mund t'i atribuohet drejtpërdrejt stemës. Stema e Lannister përshkruan luan i shfrenuar- "një luan vrumbullues", dhe motoja "Dëgjo zhurmën time" e plotëson drejtpërdrejt atë, është gjithashtu dëshmi se luani është mbreti i kafshëve, dhe Lannisterët kanë një pozitë të lartë në shoqëri. Thënia "Një Lannister paguan gjithmonë borxhet e tij" lidhet kryesisht me Bankën e Hekurt të Braavos "Banka e Hekurt do të marrë gjithmonë atë që duhet". Së dyti, "A Lannister paguan gjithmonë borxhet e tyre" do të thotë që Lannisterët nuk i harrojnë kurrë ata që i ndihmuan dhe se Lannisterët nuk i falin kurrë gabimet që u janë bërë.

3. Baratheon - "Ne jemi të tërbuar Fillimisht i përkiste Durandons of Storm's End. Orys Baratheon (vëllai i paligjshëm i Aegon I Pushtuesit), pasi kishte vrarë Argilac arrogantin, Zotin e fundit të Stormlands, adoptoi moton e tij. Por motoja u përkthye shumë fjalë për fjalë. Jep një përkthim logjik i motos" Zemërimi është elementi ynë", me një shpjegim të kuptimit të tij" Zemërimi është elementi ynë, që do të thotë: kur na zemëron, e hedh peshkun në det, ku ndihet mirë.“Domethënë, për Baratheonët, shfaqja e dhunshme e emocioneve në kurriz të arsyes së ftohtë nuk është ves.

4. Greyjoy - "Ne nuk mbjellim"Greyjoys janë kryesisht piratë. Territori i tokave të tyre ndodhet në shkëmbinj dhe rërë të zhveshur. Motoja e kësaj shtëpie është një mesazh i drejtpërdrejtë që Greyjoys nuk punojnë në tokë (që në të vërtetë nuk ekziston). Ata nuk mbjellin çdo gjë dhe nuk rritet, ata grabitin ata që kanë të korra dhe plaçka, pasi nuk kanë dhe nuk mund të kenë të tyren.

5. Targaryen - "Zjarri dhe Gjaku Motoja Targaryen mund të interpretohet në dy mënyra. E para - Egon Pushtuesi dhe dy motrat e tij, mbi tre dragonj, nënshtruan Westerosin, i cili quhet "me të dhe shpatën". Opsioni i dytë - (i lartpërmendur vetmia e perëndimit të diellit) - " Targaryens janë të lindur dragoi, ata kanë gjakun e Valyria Lashtë dhe dragonjtë, si dhe një bonus imuniteti ndaj zjarrit dhe dragonj të zbutur. Kur Targarianët thonë Zjarr dhe Gjak, ata u kujtojnë atyre që e kanë harruar papritur."

6. Arryns - "I gjatë si nderi"Nga njëra anë, Shtëpia e Arryn, duke ndjekur shembullin e Jon Arryn, kujdesej për ruajtjen e nderit. Jon nuk mund të frikësohej apo korruptohej. Dhe në tokat e Westeros ishte e pamundur të gjeje dikë që kujdesej më shumë për ruajtjen e nderit sesa Por pas vdekjes së Jonit, ndoshta një opsion tjetër është më i zbatueshëm - arroganca aristokratike, përbuzja për ata me status më të ulët, ata thonë, "ku jeni nga ne".

7. Tarly - "E para në betejë“Shtëpia e Tarly-t ka lindur shumë luftëtarë të mëdhenj dhe gjeneralë të shquar, siç konfirmon edhe kjo moto.

8. Tully - "Familja, detyra, nderi"House Tully është besnik mbi të gjitha ndaj lidhjeve të saj familjare. Detyra dhe nderi vijnë pas tyre, por familja vjen e para. House Tully mbështeti Rob Stark në Luftën e Pesë Mbretërve, për të cilën ata paguanin.

9. Martells - "I paepur, i paepur, i paepur". Një model krenarie dhe jofleksibiliteti. Martelët janë e vetmja shtëpi që Targaryen nuk mund ta merrnin me forcë. Dhe nga sjellja e personazheve të kësaj shtëpie është fare e qartë se ata janë kokëfortë dhe të palëkundur. Ata nuk kanë nevojë për ligjet e zotërve, miratimi i mbretërve, ato janë më vete, por tregojnë qartë se nuk janë gati të heqin dorë.

10. Tyrell - "Duke u rritur, ne bëhemi më të fortë". Motoja e shtëpisë Tyrell u konfirmua nga ushtria e tyre, numri i të cilave nuk mund të krahasohej me asnjë ushtri në Westeros. Tyrellët kishin gjithashtu një "jastëk" në formën e pasurisë që kishin grumbulluar. Duke pasur parasysh se palltoja e krahëve të kësaj shtëpie paraqet një trëndafil, me të mund të tërhiqet edhe një paralele, nga një filiz i vogël në një kaçubë të madhe trëndafili. Kështu anëtarët e shtëpisë Tyrell, duke grumbulluar gradualisht forcën, zhvilluan dhe forcuan pozicionet e tyre. Megjithatë, si vetë Olenna tha, ata nuk janë fare luftëtarë.

11. Bolton -"Tehet tona janë të mprehta". Kjo moto shërben më tepër si një paralajmërim për armiqtë (dhe jo vetëm) të familjes Bolton. Përfaqësuesit e kësaj shtëpie kanë një reputacion të zymtë, madje në libra ata mbanin mantele të bëra nga lëkura e njeriut dhe zbukuronin me të muret e kështjellave të tyre. : "Një burrë i zhveshur nuk ka sekrete, por një njeri me lëkurë dhe aq më tepër." "Thetat tona janë të mprehta" - me sa duket mund të nënkuptojë edhe tehe për lëkurën e mishit.

12. Mormont - "Këtu qëndrojmë". Motoja, e cila, sipas sunsetsolitude, gjithashtu është përkthyer gabimisht në Rusisht." Këtu qëndrojmë - mund të thotë "Këtu janë tokat tona", që nga ana tjetër do të thotë "Një ishull i vogël por krenar që nuk shqetëson askënd, por mund të përcaktojë veten e tij. Këtu janë tokat tona, mbajeni mend këtë kur të vini këtu, ne do të paralajmërojë." Ose mund të përkthehet si "Për këtë ne qëndrojmë" - që do të ishte një tregues i drejtpërdrejtë i forcës së kokëfortësisë së Mormonit"

13. Frey - "Ne qëndrojmë krah për krah“Frey-t i vlerësonin lidhjet familjare dhe paprekshmërinë e kësaj fjale, gjë që pasqyronte kjo moto. Që andej, Walder Frey kishte një mëri të papërshkrueshme ndaj Rob Stark, i cili theu premtimin për t'u martuar me vajzën e tij, gjë që solli pasoja të trishtueshme.

"Një Lannister paguan gjithmonë borxhet e tij." © FFG ( Jason A. Engle)

"Lannisters gjithmonë paguajnë borxhet e tyre"(Gjithashtu: "Një Lannister paguan gjithmonë borxhet e tij" dëgjo)) është një thënie popullore në Shtatë Mbretëritë për Shtëpinë Lannister dhe një shprehje e preferuar e Tyrion Lannister. Nuk është më pak e famshme se motoja "zyrtare" e shtëpisë, "Më dëgjo të ulërij!" Kjo shprehje ka një kuptim të dyfishtë. Nga njëra anë, kjo do të thotë që Lannisters, si shtëpia më e pasur në shtet, janë gjithmonë të gatshëm të paguajnë faturat dhe të falënderojnë ata që i ndihmuan, ose të premtojnë shpërblime në të ardhmen - gjithmonë mund të mbështeteni në bujarinë dhe përkushtimin e "luanët". Por kjo moto ka edhe një kuptim të dytë, kërcënues: Lannisters nuk i harrojnë fyerjet që u janë bërë dhe patjetër do të hakmerren ndaj shkelësve.

Në gojën e Cersei Lannister, thënia dukej në një fjalim drejtuar kundër vetë Tyrion - Cersei akuzoi vëllanë e saj për intriga kundër saj dhe Joffrey dhe u përpoq të shantazhonte Alaya e kapur. Më vonë, pasi u gjend në krye të shtetit, Cersei përdori të njëjtat fjalë për të justifikuar vendimin e saj për të ndaluar pagesën e borxheve publike ndaj Bankës së Hekurt të Braavos - Lannisterët paguajnë gjithmonë borxhet e tyre dhe ky borxh do të paguhet herët a vonë. Më vonë ajo e përmendi thënien në një dialog me Balman Birch dhe Falisa Stokeworth, duke u premtuar atyre një shpërblim për ndihmën e tyre, dhe më pas dërgoi Tyroshin që u përpoq ta mashtronte te xhelati me fjalët "Lannisters paguajnë borxhet e tyre, dhe ju do të paguani. gjithashtu.”

Tywin Lannister e përmendi thënien në një bisedë me Tyrion, duke justifikuar nevojën për t'i dhënë Harrenhal Petyr Baelish, pasi ai vetë e dëshironte. Vetë Tyrion përsëriti menjëherë fjalët për borxhet, duke kërkuar një shpërblim për veten e tij për shërbimet e tij si Hand. Shae përsëriti thënien, duke i kujtuar Tyrion premtimin e tij për ta kthyer atë në shtëpinë e qytetit. Pasi mësoi për dezertimin e perëndimorëve te Robb Stark, Tyrion mendoi me vete se Tywin me siguri do t'i ndëshkonte tradhtarët dhe iu kujtua thënia.

Jaime Lannister ia kujtoi Urswick-ut, duke u përpjekur ta joshte atë me pasuri, dhe më vonë, pasi humbi dorën, ai përsëriti thënien me vete, duke nxitur etjen e tij për hakmarrje dhe dëshirën për të jetuar. Ai i tha Brienne nga Tarth se e shpëtoi atë nga përdhunimi në shenjë mirënjohjeje për fundosjen e galerisë së Robin Rieger në fillim të udhëtimit të tyre, duke kujtuar përsëri thënien. Më vonë ai përsëriti këto fjalë në një bisedë me Varys, duke shpjeguar kështu dëshirën e tij për të liruar Tyrion. Pasi hoqi Edmure Tully-n nga skela në muret e Riverrun, Jaime mendoi me vete: "Lannisterët po paguajnë borxhet e tyre dhe ju jeni e vetmja monedhë që më ka mbetur".

Vetë Edmure Tully kujtoi thënien kur mësoi për vrasjen e Willem Lannister dhe Theon Frey nga Rickard Karstark. Roose Bolton, duke folur për qëllimin e tij për t'u larguar nga Harrenhal dhe për t'ia lënë Vargo Howth-it, tha se "Lannisters nuk janë të vetmit që paguajnë borxhet e tyre". Jaime përsëriti thënien kur u dha lamtumirën Brave Boys kur u largua nga kështjella, duke lënë të kuptohet se do të hakmerrej ndaj tyre, dhe më pas, duke u kthyer në kështjellë për Brienne, ai i drejtoi të njëjtat fjalë Vargo Haught, duke thënë se do të merrte një shpërblesë për Jaime dhe Brienne

Praktikat teknologjike të menaxhimit të borxhit në një ekip të vetëm


Rreth një vit më parë, ekipi ynë kaloi nga një fazë e rritjes së shpejtë të veçorive në një zhvillim më të rrjedhshëm me fokus në përmirësimin e cilësisë. Në këtë pikë, produktet tona kanë grumbulluar një sasi të dukshme zgjidhjesh jo optimale, kode të shëmtuara dhe biblioteka të vjetruara. Diçka duhej bërë për të gjithë këtë.


Deri më sot kemi arritur të ndërtojmë një proces që e bën luftën kundër borxhit teknik të parashikueshëm, pa dhimbje dhe të pashmangshme.


Çfarë morëm si rezultat:

  • Skuadra është e lumtur. Retrospektiva e lëshimit përfshin rregullisht pika pozitive në lidhje me përmirësimin e teknologjisë dhe reduktimin e borxhit teknik.
  • Për disa publikime tremujore me radhë, ne ishim në gjendje të rrisnim funksionalitetin pa rritur numrin e rreshtave të kodit në projekt. Heqja e kodit të panevojshëm dhe thjeshtimi i asaj që ishte e nevojshme zvogëloi madhësinë e bazës së kodit për funksionalitetin ekzistues. Dhe ky reduktim përafërsisht përkoi në shkallë me kodin e ri që zbaton funksionalitetin e ri.
  • Gjatë rifaktorimeve dhe përmirësimeve, produkti është gjithmonë në gjendje pune. Çdo dy javë ne lëshojmë një publikim të përkohshëm plotësisht funksional.

Më lejoni t'ju tregoj se si e arritëm këtë.

Çfarë është borxhi teknik

Përkufizimi im i punës për borxhin teknik është sasia e punës që duhet bërë për ta bërë një projekt të përmbushë vizionin e ekipit për atë që është e mrekullueshme. Vini re se borxhi teknik mund të lindë jo vetëm për shkak të përdorimit liberal të patericave në zhvillim, por edhe për shkak të ndryshimit të ideve për bukurinë. Për shembull, praktikat e zakonshme të industrisë kanë ndryshuar. Ose zhvilluesit nuk u dashuruan me OOP dhe ranë në dashuri me programimin funksional. Ose korniza dikur në modë nuk është më një tortë dhe është bërë e vështirë të gjesh specialistë që do të donin të shkruanin mbi të.


Megjithatë, arsyeja kryesore për borxhin teknik është entropia në të gjithë diversitetin e saj. Testet e njësive me aftësi të kufizuara, komentet e vjetruara që humbën kontaktin me kodin, vendime të pasuksesshme arkitekturore, zbatimi i veçorive që askush nuk i përdor më, një themel për një të ardhme që nuk ka ardhur dhe shumë e shumë më tepër.


Nga kjo rezulton se shfaqja e borxhit teknik është e pashmangshme në çdo projekt jetëgjatë.

Kur borxhi teknik nuk është problem

Pse borxhi teknik është i keq? Rrit koston e zhvillimit të mëtejshëm për shkak të një numri faktorësh:

  • Shpejtësia e zbatimit të funksionalitetit të ri është zvogëluar.
  • Mundësia e regresioneve gjatë korrigjimit të defekteve rritet.
  • Procesi i zhvillimit bëhet më pak i parashikueshëm dhe për këtë arsye më pak i menaxhueshëm.
  • Procesi i futjes së një zhvilluesi të ri në projekt po zgjatet.

Kjo humbje nganjëherë quhet "interesi i borxhit teknik"


Ka situata ku këto humbje janë më të lira sesa eliminimi i borxhit teknik:

  • Fundi i jetës së projektit është afër. Vini re, ky nuk është fundi i shtimit të funksionalitetit, por momenti kur mund të ndaloni së shpenzuari përpjekjet e programuesit për mbështetjen gjithashtu. Kjo kategori përfshin gjithashtu prototipe një herë, demo një herë për ekspozita, etj.
  • Vlera e kohës së zhvillimit tani është shumë më e lartë se sa pritej në të ardhmen. Rregullime urgjente për një afat fiks, startup që po u mbarojnë paratë nga raundi tjetër i financimit, etj. Në raste të tilla, fiksimi i borxhit teknik mund të vonohet derisa nxehtësia e momentit të jetë ftohur. Ka projekte që nuk dalin nga gjendja e jashtëzakonshme, por këshillat nga ky artikull gjithsesi nuk do t'i ndihmojnë.

Çfarë duhet bërë me borxhin teknik? Qasje të dështuara

Qasja nr. 1. "Nuk kemi kohë, lirimi duhet të dorëzohet dje"

Dëshira për të përmbushur me çdo kusht afatin e së nesërmes, në dëm të shpejtësisë së zhvillimit pasnesër.


Ndonjëherë një strukturë e parafabrikuar e bërë nga paterica është një zgjedhje objektivisht e saktë. Në praktikën time, kjo u shpreh më qartë kur bëja versione demo për ekspozita. Data e ngjarjes është rreptësisht e caktuar; nëse nuk e keni arritur në kohë për një ekspozitë të rëndësishme, përpjekja tjetër do të jetë pas një viti. Në këtë rast, ju mund ta shfaqni produktin "nga duart tuaja", duke shmangur me kujdes të gjitha gabimet. Si inxhinier, është e pakëndshme për mua të bëj projekte të tilla, por patericat në to janë të justifikuara.


Kur bëni një produkt që do të zgjasë shumë, gjithçka është ndryshe. Përmbushja e afatit për shkak të zgjidhjeve teknike të dyshimta është një kënaqësi e shtrenjtë. Kostoja totale është:

  1. nga zbatimi i vetë patericës,
  2. nga zëvendësimi i tij i mëvonshëm me një zgjidhje të plotë,
  3. nga vuajtja e të paturit një pateric mes pikave të mëparshme.

Pika e dytë është shumë e lehtë për t'u nënvlerësuar, dhe ekziston rreziku që të mos mendoni fare për të tretën, më të shtrenjtën.


Kur takoni një drejtues të teknologjisë me një sy të dridhur në një konferencë, mund të rezultojë se ishte makthi i korrigjimit të pafund të një dizajni të bërë nga paterica që e solli atë në këtë gjendje.


Qasja nr. 2. "Po, këtu duhet të hedhim gjithçka jashtë dhe ta shkruajmë përsëri"

Sa më e keqe të jetë situata e borxhit teknik, aq më i fortë është tundimi për të varrosur të gjithë kodin e projektit dhe për të shkruar gjithçka përsëri. Ky është një nga gabimet klasike që mund të vrasë të gjithë projektin.


Tema është trajtuar aq mirë në artikullin e famshëm të Joel Spolsky sa nuk shoh asnjë kuptim të paraqes argumentet e mia.

Qasja nr. 3. "Ne do të rifaktojmë natën dhe fundjavat, në mënyrë që menaxheri të mos e zbulojë."

Argumentimi i nevojës për të eliminuar borxhin teknik për sa i përket përfitimeve të biznesit nuk është gjithmonë i lehtë. Ekipi i zhvillimit mund të joshet të shkojë rreth skajeve të përafërta dhe të fillojë një rifaktorim të madh në vend. Kjo mund të bëhet gjatë orarit jo të punës, në pauza midis detyrave të tjera ose "në bisht" të detyrave të tjera duke fryrë vlerësimet.


Çfarë të keqe ka? Oh, një mori gjërash:

  • Transparenca e reduktuar minon besimin midis menaxhmentit dhe ekipit. Shpesh përpjekjet e mëvonshme për të korrigjuar situatën duke imponuar disiplinë dhe shtrënguar vida do të çojnë në një përkeqësim të mëtejshëm të punës ekipore.
  • Një situatë e rrënjosur në të cilën prioritetet e ekipit dhe menaxhmentit janë konfliktuale shkakton demotivim në të dyja palët.
  • Frytet e rifaktorimit përfshihen në produkt në mënyra të paparashikueshme dhe shkaktojnë defekte regresioni aty ku nuk priten. Në ekipet e ndërgjegjshme, kjo çon në një ngarkesë të papritur dhe të paplanifikuar në QA. Në të pandërgjegjshme, ajo shkon në prodhim dhe prishet atje.

Pasi ekipi përdor këtë recetë, sytë e menaxhmentit fillojnë të dridhen.

Parimet tona

1. Shtoni detyra teknike në ngarkesën e përgjithshme

Ekzistojnë një numër modelesh në jetën e detyrave në projekte:

  • Një detyrë që nuk është e mbetur ka më pak shanse për të hyrë në punë.
  • Një detyrë pa një formulim të qartë ka më pak shanse për të hyrë në punë.
  • Një detyrë që nuk mund të vlerësohet me një shkallë të lartë besimi ka më pak shanse për të hyrë në punë.
  • Një detyrë e madhe do të presë më gjatë në radhë sesa një e vogël.

Maxim Dorofeev flet shumë mirë për këto gjëra në "Teknika e tij e kutisë së zbrazët".


Për të parandaluar akumulimin e borxhit teknik, puna për eliminimin e tij duhet të përfundojë duke marrë parasysh parimet e listuara më sipër.


Të gjitha detyrat, përveç atyre më të voglat, janë të listuara në ditarin e mbetur. Në këtë mënyrë ata kanë një shans për të bërë jo vetëm në kohën e tyre të lirë, por edhe si pjesë e punës së planifikuar. Për më tepër, detyra të tilla janë më të vështira për t'u humbur plotësisht nga syri - numri i prapambetur shikohet më shpesh dhe më nga afër sesa në TODO në kod, copa letre në monitor, faqe wiki të braktisura, peceta të lyera me çaj me diagrame dhe të tjera burimet e informacionit.

  • Nëse ka një TODO jo të parëndësishme në kod, ai përmban një lidhje me detyrën në listën e mbetur. Ne kontrollojmë përputhshmërinë me këtë parim në shqyrtimin e kodit dhe nuk pranojmë TODO komplekse pa referenca.

    Mund të ketë dramë pas komentit.

    Një herë, pranë një TODO të tillë shkruhej: “Paterica. Pronari i produktit më detyroi ta bëja atë. Hiqeni sa më shpejt të jetë e mundur."

  • Kur një zhvillues kupton se një vend kërkon rifaktorim, ai krijon një problem në numrin e mbetur.
  • Kur një zhvillues ka një dëshirë për të përmirësuar platformën, ai krijon një detyrë në ngarkesën e mbetur.
  • Planet arkitekturore afatgjata futen në grumbull në formën e detyrave të veçanta sapo të ketë siguri të mjaftueshme për të paktën hapat e parë.

Për sa kohë që ndryshime të tilla mbeten të lira për sa i përket kostove të zhvillimit dhe sasisë së testimit të kërkuar, ne mund të përmirësojmë gradualisht bazën tonë të kodit pa ndërprerë objektivat e biznesit ose pa paraqitur rreziqe shtesë.

2. Planifikoni histori teknike bazuar në prioritetet e biznesit

Nëse një pemë bie në pyll, por askush nuk e dëgjoi, a kishte zë? Nëse ka kod të keq në një projekt, por ai modul nuk do të duhet kurrë të ndryshohet, a ka borxh teknik?


Unë besoj se kur një programuesi e ka të pakëndshme të shikojë një modul të vjetër, kjo në vetvete nuk është një problem shumë i madh. Shumë më keq është ajo që ndodh kur duhet të shtoni funksionalitet të ri në këtë modul ose të zgjeroni atë të vjetër. Krahasuar me bërjen e ndryshimeve në kodin e shkruar mirë, detyra të tilla kanë më shumë gjasa (dhe më shumë gjasa të tejkalojnë vlerësimin origjinal) dhe përmbajnë më shumë gabime. Ndonjëherë shumë më tepër. Për të mbrojtur veten nga këto lloj problemesh, ne përpiqemi të planifikojmë rifaktorimet në mënyrë që ato të bëhen përpara se të shkruajmë funksionalitete të reja në të njëjtin vend.


Nëse funksionaliteti ndryshon dhe rifaktorimet duken të vogla, ato mund të bëhen së bashku. Madhësia e zgjedhur në mënyrë empirike e detyrës për të cilën kjo qasje do të jetë optimale është 3 ditë punë për një zhvillues ose më pak. Kur është e qartë se ka më shumë punë, ajo ndahet në rifaktorim duke ruajtur sjelljen aktuale dhe duke zbatuar funksionalitet të ri.


Kështu, rendi i punës për eliminimin e borxhit teknik përcaktohet nga rendi i detyrave të biznesit në ngarkesën e mbetur.


Parimi i “prioriteteve të biznesit” ka një aplikim tjetër. Një nga problemet e zakonshme që vuajnë zhvilluesit që përpiqen të shkruajnë mirë është vështirësia për t'i kushtuar kohë optimizimit të performancës, përmirësimit të mirëmbajtjes ose gjërave të tjera që nuk përfshihen drejtpërdrejt në planin e punës. Pothuajse gjithmonë ekziston nevoja e biznesit për këto përmirësime. Kush nuk dëshiron që sistemi të funksionojë më shpejt, më i qëndrueshëm dhe të jetë më i lirë për t'u mirëmbajtur? Të gjitha këto përfitime mund të vlerësohen dhe, në bazë të këtij vlerësimi, detyrat për përmirësim mund të vendosen në listën e mbetur, së bashku me çdo tjetër.


Pra, nëse doni të optimizoni performancën, por në vend të kësaj duhet të rregulloni një gabim tjetër të mërzitshëm, ndoshta thjesht nuk dini si t'i shpjegoni përfitimet e optimizimit në një gjuhë që pronari i produktit mund ta kuptojë.

3. Lëreni kodin më të pastër se sa ishte më parë

Pothuajse çdo kod, përveç atij të shkruar së fundmi, mbetet pak prapa idesë aktuale të bukurisë në fushën e stilit dhe arkitekturës. Kur ju duhet të ndryshoni kodin si pjesë e një detyre, konsiderohet praktikë e mirë të bëni të gjitha përmirësimet e sigurta që janë të mundshme në zonën e prekur. Çfarë mund të jetë?

  • Sjellja e moduleve në stilin aktual.
  • Ndryshimi i emrave të ndryshoreve të brendshme në më të kuptueshëm.
  • Thjeshtoni zbatimin duke ruajtur sjelljen.
  • Rifaktorimet lokale që nuk sjellin ndryshime në shkallë të gjerë në modulet e tjera.

Këto përmirësime pritet ta bëjnë kodin më të mirë, por jo të rrisin ndjeshëm koston e zhvillimit ose testimit.


Për shkak të këtij parimi, cilësia e kodit gradualisht rritet në sfond, edhe në ato vende ku nuk ishin planifikuar rifaktorime të veçanta. Për më tepër, sa më shpesh të punojmë në një pjesë të caktuar të sistemit, aq më i mirë është kodi për këtë pjesë. Një kontrast i bukur me projektet ku zhvilluesi shpenzon më shumë kohë në pjesët me kodin më të keq.

4. Çfarëdo që të ndodhë, sistemi duhet të mbetet në gjendje pune.

Një nga parimet bazë të SCRUM thotë se në fund të çdo sprint sistemi duhet të arrijë një gjendje të qëndrueshme.


“Deri në fund të sprintit, rritja duhet të jetë gati, që do të thotë se plotëson kriteret e gatishmërisë së Scrum Team dhe është gati për përdorim. Ai duhet të jetë gati për t'u përdorur, pavarësisht nga vendimi i pronarit të produktit për ta lëshuar ose vonuar atë."

Çdo punë për eliminimin e borxhit teknik bëhet në përputhje me këtë parim.


Transformime të mëdha dekompozohen domosdoshmërisht në mënyrë që çdo fazë individuale të mund të përfundojë në një sprint. Për shembull, ne ndryshuam sistemin e montimit në dy faza ()


Ne punojmë me VCS sipas parimeve të afërta me gitflow klasik. Zhvillimi kryhet në degë të tipareve, testimi kryhet atje. Si rregull, një degë e tillë nuk zgjat më shumë se një sprint dyjavor. Një degë që jeton më gjatë pothuajse gjithmonë rezulton në kosto shtesë.


Përvoja jonë e konfirmon qartë këtë model. Sa herë që nuk arrinim të përfundonim një rifaktorim të madh në dy javë, ishte një dhimbje dhe vuajtje. Dhe sa më gjatë të ishte detyra dhe sa më gjatë të jetonte dega e hapur, aq më ngadalë shkonte puna dhe aq më shumë kishte probleme.


Nevoja për të qenë gjithmonë disa hapa larg një lëshimi të qëndrueshëm krijon një nga problemet inxhinierike më të vështira dhe interesante - gjetja e zbërthimit optimal të planeve strategjike. Ndryshimet në shkallë të gjerë mund të ndahen në hapa të veçantë, të pavarur. Këshillohet që të filloni të merrni përfitime sa më shpejt që të jetë e mundur. Sa më mirë të kryhet kjo ndarje e punës, aq më të mëdha janë shanset për të përfunduar punën.

Si duket procesi ynë

Një herë për lëshim ne bëjmë një rishikim të detajuar të ngarkesës teknike:

  • Ne mbyllim histori të parëndësishme (relevancën e humbur, të bëra si pjesë e diçkaje tjetër, dublikatë).
  • Ne përditësojmë përshkrimin ku vizioni i çështjes ka ndryshuar.

Kur tregimet e biznesit shfaqen në horizont, bëhet një analizë teknike dhe të gjitha historitë teknike që do të ndihmonin në zbatim lidhen me historinë e biznesit.


Në përgatitje për planifikimin e sprintit:

  • Ne kontrollojmë lidhjet midis historive teknike dhe atyre të biznesit.
  • Ne i lidhim të gjitha gabimet e lidhura me histori teknike që mund të rregullohen me çmim të ulët në të njëjtin vend.

Si të formohet pjesa teknike e prapambetjes

Kur mora rolin e drejtuesit në ekip, pyeta secilin zhvillues dhe QA se çfarë përmirësimesh në produktin që ata donin më shumë të bënin. Shumica e kërkesave lidheshin me përmirësimet teknike të platformës dhe rifaktorimet. Siç tregoi përvoja e mëtejshme, të gjitha problemet kryesore teknike të produktit u përfshinë në këtë grup dëshirash. Kështu që ju mund ta përdorni këtë praktikë për të ndërtuar shpejt një ngarkesë teknike nga e para ose për të marrë një ide të përgjithshme të gjendjes së borxhit teknik në një projekt të ri.


Plotësimi aktual i ngarkesës së mbetur me detyra teknike ndodh për shkak të praktikave të përshkruara më sipër dhe nuk kërkon përpjekje ose analiza të veçanta. Përveç kësaj, idetë e reja për përmirësimin teknik të produktit i shtohen diferencës së mbetur. Kjo bëhet nga çdo anëtar i ekipit që ka ardhur me një ide të tillë. Gjëja kryesore në këtë fazë është të mos humbasësh idenë. Sqarimi dhe përcaktimi i prioritetit ndodh më vonë, gjatë planifikimit të punës.

konkluzionet

  • Borxhi teknik është i pashmangshëm.
  • Për shumicën e projekteve, eliminimi i borxhit teknik është një investim i mirë përpjekjesh.
  • Nëse borxhi teknik nuk adresohet, shpejtësia e zhvillimit gradualisht do t'i afrohet zeros.
  • Tundimi për të hedhur gjithçka jashtë dhe për të shkruar përsëri mund të vrasë ose dëmtojë seriozisht projektin tuaj.
  • Përfitimet e eliminimit të borxhit teknik duhet të përshtaten me përfitimet e biznesit, përndryshe ekziston rreziku që detyrat për krijimin e funksionalitetit të ri të konsiderohen gjithmonë më të rëndësishme.
  • Detyrat për eliminimin e borxhit teknik ia vlen të menaxhohen. Detyra të tilla nuk ndryshojnë nga detyrat e tjera të projektit për sa i përket kontabilitetit, planifikimit dhe prioritizimit.
  • Situatat lindin rregullisht ku mund të zvogëloni borxhin teknik dhe të zgjidhni një problem biznesi në të njëjtën kohë më lirë sesa ta bëni atë veçmas. Këto mundësi duhen shfrytëzuar.
  • Konventat e menduara dhe të përditësuara në kohë të stilit të kodit dhe proceset e rishikimit ndihmojnë në ngadalësimin e shfaqjes së borxhit të ri teknik.
  • Përsëritjet e shkurtra janë po aq të dobishme për rifaktorimet sa janë edhe për zhvillimin e funksionalitetit të ri.
  • Ekipi zakonisht e di se ku është borxhi teknik në projekt dhe sa i keq është. Vlen të përdoret kjo njohuri kur krijoni një ide për borxhin teknik të projektit.

KATEGORITË

ARTIKUJ POPULLOR

2024 "kingad.ru" - ekzaminimi me ultratinguj i organeve të njeriut