Články

Co je extrémní programování (XP)?, na jakých hodnotách, principech a praktikách je založeno

Vyznáte se v programování, ale extrémní programování (zkráceně XP) je pro vás stále trochu záhadou.

Nenechte se odradit jménem, ​​riskujete, že přijdete o užitečné informace.

V tomto článku probereme vše, co potřebujete vědět o extrémním programování, abyste jej mohli využít ve svůj prospěch.

Co je extrémní programování (XP)?

Extrémní programování je metodologie vývoje softwaru, která je součástí toho, co je souhrnně známé jako agilní metodiky. XP je postaveno na hodnotách, principech a postupech a jeho cílem je umožnit malým a středním týmům produkovat vysoce kvalitní software a přizpůsobovat se neustále se měnícím a vyvíjejícím se požadavkům.

To, co XP odlišuje od jiných agilních metodologií, je to, že XP klade důraz na technické aspekty vývoje softwaru. Extrémní programování je přesné v tom, jak inženýři pracují, protože dodržování inženýrských postupů umožňuje týmům dodávat vysoce kvalitní kód udržitelným tempem.

Extrémní programování je v kostce osvědčené postupy dovedené do extrému. Protože párové programování je dobré, dělejme to pořád. Protože testování předem je dobré, testujeme ještě před napsáním produkčního kódu.

Jak funguje extrémní programování (XP)?

XP, na rozdíl od jiných metodologií, je založen na hodnotách a principech, které jsou důležité a relevantní z hlediska inženýrských postupů.

Hodnoty poskytují týmům účel. Působí jako „severní hvězda“, která vedou vaše rozhodnutí na vysoké úrovni. Hodnoty jsou však abstraktní a příliš nejasné pro konkrétní pokyny. Například: Když řeknete, že si vážíte komunikace, může to vést k mnoha různým výsledkům.

Praxe je v jistém smyslu opakem hodnot. Jsou betonové a při zemi, definastavení specifik, co dělat. Praktiky pomáhají týmům nést odpovědnost za hodnoty. Například praxe informačních pracovních prostorů podporuje transparentní a jednoduchou komunikaci.

Principy jsou směrnice specifické pro danou oblast, které překlenují propast mezi postupy a hodnotami.

Hodnoty extrémního programování XP

Hodnoty XP: komunikace, jednoduchost, zpětná vazba, odvaha a respekt. Podívejme se na každou z nich podrobněji.

Hodnoty a principy extrémního programování

navrhování BlogInnovazione.to z obrazu alexsoft.com

komunikace: Nedostatek komunikace brání toku znalostí v týmu. Často, když se vyskytne problém, někdo už ví, jak ho opravit. Nedostatek komunikace jim však brání dozvědět se o problému nebo přispět k jeho řešení. Problém se tedy řeší dvakrát a vzniká odpad.

Jednoduchost: Jednoduchost říká, že se vždy snažíte dělat to nejjednodušší, co funguje. Často je to nepochopeno a bráno jako ta nejjednodušší věc, tečka, ignoruje se část „to funguje“.

Je také důležité si uvědomit, že jednoduchost je vysoce kontextová. To, co je pro jeden tým jednoduché, je pro jiný složité a zcela závisí na dovednostech, zkušenostech a znalostech každého týmu.

Zpětná vazba: Zpětná vazba v tradičnějších, kaskádových metodologiích vývoje softwaru je často „příliš malá, příliš pozdě“.

XP však přijímá změny a týmy XP se snaží o včasnou a neustálou zpětnou vazbu. Pokud je potřeba korekce kurzu, XPers to chtějí vědět co nejdříve.

Cyklus extrémního programování

navrhování BlogInnovazione.to z obrazu alexsoft.com

Zpětná vazba přichází v mnoha tvarech a velikostech. Když pracujete v partnerském programu, komentáře od vašeho kolegy jsou důležitou zpětnou vazbou. Stejně tak názory ostatních členů týmu na nápad, včetně zákazníka, který je v ideálním případě členem týmu.

Testy jsou dalším zdrojem cenné zpětné vazby, která přesahuje výsledky testů. Ať už je psaní testů snadné nebo obtížné, zpětná vazba je také. Pokud máte potíže s psaním testů, je váš projekt pravděpodobně příliš složitý. Poslouchejte zpětnou vazbu a zefektivněte svůj design.

Něco, co zní jako skvělý nápad, nemusí v praxi tak dobře fungovat. Hotový kód je tedy také zdrojem zpětné vazby, stejně jako distribuovaný produkt.

Nakonec mějte na paměti, že zpětné vazby je příliš mnoho. Pokud tým generuje více zpětné vazby, než je schopen zvládnout, důležitá zpětná vazba by mohla vypadnout z radaru. Je tedy nezbytné zpomalit a zjistit, co způsobuje přebytečnou zpětnou vazbu, a opravit to.

Odvaha: Kent Beck defiodvaha se objevuje jako „účinná akce tváří v tvář strachu“. Jako softwarový inženýr se máte čeho bát, a proto máte spoustu příležitostí prokázat odvahu.

Říkat pravdu, zvláště tu nepříjemnou, jako jsou poctivé odhady, vyžaduje odvahu. Dávat a přijímat zpětnou vazbu také vyžaduje odvahu. A vyhnout se klamu utopených nákladů a zahodit chybné řešení, které obdrželo značné investice, vyžaduje odvahu.

Respekt: Základním předpokladem XP je, že každý se stará o svou práci. Žádná technická dokonalost nemůže zachránit projekt, pokud chybí péče a respekt.

Každý člověk je hoden důstojnosti a respektu, a to samozřejmě zahrnuje i lidi zapojené do projektu vývoje softwaru. Když se vy a členové vašeho týmu vzájemně respektujete a staráte se o sebe, o klienta, projekt a jeho budoucí uživatele, všichni z toho budou mít prospěch

Principy extrémního programování XP

Principy poskytují konkrétnější vodítko než hodnoty. Jsou to pokyny, které osvětlují hodnoty a činí je explicitnějšími a méně nejednoznačnými.

navrhování BlogInnovazione.to z obrazu alexsoft.com

Například na základě samotné hodnoty odvahy můžete dojít k závěru, že je vhodné okamžitě provést velkou změnu ve vašem rozvrhu. Princip Baby Steps nám však říká, že velké změny jsou riskantní. Takže raději ty malé.

Umanita: Lidé vytvářejí software pro lidi, což je často opomíjená skutečnost. Ale zohlednění základních lidských potřeb, silných a slabých stránek vytváří produkty, které lidé chtějí používat. A pracovní prostředí, které vám nabízí možnost naplnění a růstu, pocit sounáležitosti a základní jistoty, je místem, kde snáze zvažujete potřeby druhých.

Hospodářství: V XP týmy vždy věnují pozornost ekonomické realitě vývoje softwaru, neustále vyhodnocují ekonomická rizika a potřeby projektů.

Například by implementovali uživatelské příběhy spíše na základě jejich obchodní hodnoty než technických záležitostí.

Vzájemný prospěch: Po XP se vyhnete řešením, která prospívají jedné straně na úkor druhé. Například rozšířené specifikace mohou pomoci někomu jinému to pochopit, ale odvádějí vaši pozornost od implementace a zdržují ji pro vaše uživatele.

Oboustranně výhodným řešením je použití automatizovaných akceptačních testů. Získejte okamžitou zpětnou vazbu ke své implementaci, vaši kolegové dostanou přesné specifikace v kódu a uživatelé dostanou své funkce jako první. Navíc budete mít všichni ochrannou síť proti regresi.

Benefit (vzájemný přínos): Pokud dané řešení funguje na jedné úrovni, může také fungovat na vyšší nebo nižší úrovni. Například u XP je v různé míře v sázce získávání včasné a neustálé zpětné vazby.

  • na úrovni vývojáře získávají programátoři zpětnou vazbu ze své práce pomocí přístupu test-first;
  • na týmové úrovni kontinuální integrační kanál integruje, sestavuje a testuje kód několikrát denně;
  • Organizačně umožňují týdenní a čtvrtletní cykly týmům získat zpětnou vazbu a zlepšit svou práci podle potřeby.

Zlepšení: Podle principu zlepšování týmy neusilují o dokonalost v počáteční implementaci, ale o implementaci, která je dostatečně dobrá, a následně se ji neustále učí a zdokonalují se zpětnou vazbou od skutečných uživatelů.

Rozmanitost: Vy a vaši kolegové těžíte z různých úhlů pohledu, dovedností a postojů. Taková rozmanitost často vede ke konfliktům, ale to je v pořádku.

Konflikty a neshody jsou příležitostí pro vznik lepších nápadů, když každý hraje podle hodnot odvahy a respektu. Odvaha vyjadřovat protichůdné názory, respekt při jejich vyjadřování civilním a empatickým způsobem. A to vše je efektivní komunikační cvičení.

Odraz: Skvělé týmy přemítají o své práci a analyzují, jak být lepší. XP k tomu nabízí mnoho příležitostí. Nejen ve svých týdenních a čtvrtletních cyklech, ale v každé praxi, kterou prosazuje.

Kromě logické analýzy je důležité zvážit také pocity. Vaše střevo vás může informovat dříve, než budete moci o něčem uvažovat. A tak může mluvit s netechnickými lidmi, mohou klást otázky, které otevírají zcela nové možnosti.

Tok: Tradiční metodiky vývoje softwaru mají odlišné fáze, které trvají dlouhou dobu a mají malou příležitost pro zpětnou vazbu a korekci kurzu. Místo toho k vývoji softwaru v XP dochází v činnostech, které se vyskytují nepřetržitě, v konzistentním „proudu“ hodnot.

Příležitost: Problémy jsou při vývoji softwaru nevyhnutelné. Každý problém je však příležitostí ke zlepšení. Naučte se na ně dívat tímto způsobem a je mnohem pravděpodobnější, že přijdete s kreativními a cílevědomými řešeními, která také slouží k tomu, aby se neopakovaly.

Nadbytek: Princip redundance říká, že pokud je daný problém kritický, musíte k jeho řešení použít mnoho taktik.

Vezměte nedostatky. Neexistuje jediná taktika, která by dokázala zabránit tomu, aby všechny závady unikli z výroby.

Řešením XP je tedy naskládat sadu opatření kvality. Párové programování, testování, průběžná integrace. Každá jedna jediná obranná linie, dohromady prakticky neprostupná zeď.

Selhání: selhání není plýtvání, když se promítne do znalostí. Konat a rychle se naučit, co nefunguje, je mnohem produktivnější než nečinnost způsobená nerozhodností při výběru z mnoha možností.

qualità: Lidé si často myslí, že existuje dilema mezi kvalitou a rychlostí.

Je to naopak: snaha o zlepšení kvality vás urychlí.

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.

Například refaktoring – změna struktury kódu beze změny jeho chování – je postup, který usnadňuje pochopení a změnu kódu. V důsledku toho je méně pravděpodobné, že zavedete defekty kódu, což vám umožní poskytnout větší hodnotu tím, že nebudete muset opravovat chyby.

Malé kroky: Velké změny jsou riskantní. XP toto riziko zmírňuje prováděním změn po malých krocích na každé úrovni.

Programátoři píší kód v malých krocích pomocí vývoje řízeného testováním. Svůj kód integrují do hlavní řady několikrát denně, namísto každých pár týdnů nebo dokonce měsíců. Samotný projekt probíhá spíše v krátkých cyklech než v dlouhodobých fázích.

Odpovědnost přijata: V XP by měla být odpovědnost přijata, nikdy nesmí být přidělena.

Odpovědnost by měla přijít s pravomocí rozhodovat o tom, za co jste odpovědní. Platí to i naopak. Nechcete, aby se lidé rozhodovali, pokud nebudou muset žít s jejich následky.

Podobnosti a rozdíly s tradičními a neagilními metodami

Extrémní programování, které je agilní metodologií, může být přijato a započato s jeho zaváděním bez následování rigidních plánů. Toto je spíše iterativní návrh než velký počáteční projekt.

XP se výrazně liší od tradičních metodologií, tedy kaskádových, vyhýbajících se dlouhotrvajícím fázím.

  • Místo plánovací fáze v XP plánujete na začátku každého vývojového cyklu, který obvykle trvá jen týden.
  • Namísto testování epizod otestujte svou aplikaci co nejdříve: to znamená před implementací skutečného kódu.
  • Namísto zavádění funkcí v izolaci během dlouhých fází implementace a následného úsilí o sloučení vašich příspěvků do hlavní řady, pracujete po malých kouscích a integrujete je tak často, jak je to možné.

Jak se XP liší od jiných agilních metodologií?

Extrémní programování má ze své podstaty mnoho společného s jinými agilními metodikami, ale je mezi nimi také jedinečné.

Většina ostatních vývojových metodologií toho moc neříká, pokud vůbec něco, o tom, jak práci dokončit. XP, na druhou stranu, je v tomto ohledu velmi tvrdohlavý a klade velký důraz na postupy softwarového inženýrství.

Extrémní programování versus Scrum

Scrum je rámec, který pomáhá týmům vyvíjet složité projekty adaptivním způsobem. Scrum nediktuje, jak vývojáři dělají svou práci. XP, jak bylo zmíněno, klade velký důraz na správné programovací postupy.

Rámec scrumu

navrhování BlogInnovazione.cs Obrázek síťová řešení

Také XP je samozřejmě o programování. Na druhou stranu Scrum lze aplikovat na jakýkoli projekt, který těží z iterativního přístupu.

XP přijímá změny svých součástí. Týmy jsou oprávněny a dokonce povzbuzovány k úpravě postupů na základě jejich specifických potřeb. Scrum Guide na druhou stranu pevně tvrdí, že „Ačkoli lze implementovat pouze části Scrumu, výsledkem není Scrum.“

Scrum je také rámec, který je třeba doplnit o metodiky a postupy, aby byla práce hotová.

To znamená, že práce v extrémním programování a Scrumu se velmi doporučuje.

Role a odpovědnosti

Podle Kenta Becka by zralý tým XP neměl přidělovat rigidní role, ale měl by si uvědomit, že role mohou být užitečné pro začínající týmy, dokud se nezačnou zpomalovat nebo ztěžovat spolupráci.

Podívejme se na některé klíčové role:

  • Zákazník: V ideálním případě by měl být zákazník na místě, aby odpovídal na otázky, upřednostňoval požadavky uživatelů nebo pomohl s akceptačním testováním. Pokud to není možné, může tuto roli zastávat zástupce zákazníka.
  • programátoři: V týmu XP programátoři odhadují úsilí potřebné k dokončení úkolů, psaní automatických testů a implementaci příběhů.
  • Trenér: není nutné mít trenéra a je možné dosáhnout cíle, aniž byste ho měli. Nicméně, mít někoho se zkušenostmi XP, aby trénoval tým, může zajistit, že členové týmu budou dodržovat postupy, přeměnit je ve zvyky a nevracet se ke starým způsobům.
  • Tracker- Sledovač sleduje metriky pokroku týmu a hovoří s každým členem týmu, aby identifikoval problémy a našel řešení. Tracker vypočítává metriky, které ukazují, jak dobře si tým vede, jako jsou grafy rychlosti a vyhoření, nebo tým používá digitální scrum nebo kanban board, který je automaticky vypočítá.

Metody a techniky

Toto jsou postupy přijaté v XP. Dělí se do tří hlavních skupin: softwarové inženýrství, pracoviště a projektový management.

Softwarové inženýrství

Párové programování: V XP píšete kód ve dvojicích na počítači. Vy a váš pár spolu mluvíte při analýze, implementaci a testování funkce, na které pracujete. Párové programování je obzvláště dobré při vytváření kódu s menším počtem chyb a přitom je stále poutavé, zábavné a únavné.

Limit deset minut: Povinné Umožňuje 10 minut na sestavení celého projektu, včetně spuštění všech automatizovaných testů, maximálně za deset minut. Tento limit má za cíl udržet testování efektivní a efektivní.

Testy před programováním: implementovat funkce pomocí přístupu test-first, nazývaného také vývoj řízený testem (TDD). TDD spočívá ve vývoji pomocí jednoduchého iteračního postupu:

  • napsat kód po selhání testu;
  • poté napište produkční kód, abyste prošli testem;
  • v případě potřeby refaktorujte svůj produkční kód, aby byl čistší a srozumitelnější.

TDD přináší několik výhod.

Za prvé, zpětná vazba. Pokud je obtížné napsat test, návrh, který hledáte nebo který jste zdědili, je pravděpodobně příliš složitý a je třeba jej zjednodušit.

Za druhé, TDD umožňuje programátorům důvěřovat kódu, který píší, a vytváří pěkný smyčkový rytmus, kde je další krok vždy jasný.

V neposlední řadě používání TDD od začátku zajišťuje 100% pokrytí kódem. Testovací sada se pak skutečně stává záchrannou sítí pro budoucí změny, podporuje refaktorování kódu a vytváří účinný kruh kvality.

Přírůstkový design: Praxe inkrementálního návrhu znamená, že musíte každý den investovat do návrhu své aplikace, hledat příležitosti k odstranění duplicit a provádět malá vylepšení, abyste dosáhli nejlepšího možného návrhu pro to, co váš systém dnes potřebuje.

Průběžná integrace: V XP integrujete svou práci do hlavního sdíleného úložiště několikrát denně, čímž spustíte automatické sestavení celého systému. Integrace co nejdříve a tak často, jak je to možné, dramaticky snižuje náklady na integraci, protože snižuje pravděpodobnost výskytu sloučení a logických konfliktů. Odhaluje také problémy životního prostředí a závislostí.

Sdílený kód (kolektivní vlastnictví): XP podporuje sdílený kód nebo kolektivní vlastnictví: každý vývojář je zodpovědný za veškerý kód. Podporuje výměnu informací, snižuje faktor týmové sběrnice a zvyšuje celkovou kvalitu každého modulu, vezmeme-li v úvahu princip diverzity.

Single CodeBase: Jedna kódová základna je také známá jako „vývoj založený na kmeni“. Znamená to, že existuje pouze jeden zdroj pravdy. Místo toho, abyste se vyvíjeli izolovaně po dlouhou dobu, slučujte své příspěvky do jednoho proudu brzy a často. Příznaky funkcí pomáhají omezit používání funkcí, dokud nebudou dokončeny.

Denní distribuce: nasazení do výroby alespoň jednou denně je logickým důsledkem průběžné integrace:. Ve skutečnosti dnes mnoho týmů jde ještě dále a praktikuje kontinuální implementaci. To znamená, že kdykoli se někdo připojí k hlavní řadě, aplikace je nasazena do produkce.

Kód a testy: Tato praxe znamená, že zdrojový kód, včetně testů, je jediným trvalým artefaktem softwarového projektu. Zapojit se do generování jiných typů artefaktů, včetně dokumentace, je často plýtvání, protože nevytváří skutečnou hodnotu pro zákazníka.

Pokud potřebujete další artefakty nebo dokumenty, snažte se je vygenerovat z produkčního kódu a testů.

Analýza hlavní příčiny: Kdykoli se závada dostane do výroby, neopravujte ji pouze. Ujistěte se, že jste přišli na to, co to způsobilo, proč se vám a vašim spoluhráčům nepodařilo zabránit smyku. Poté podnikněte kroky, aby se to už neopakovalo.

Pracovní prostředí

Posaďte se spolu: V XP preferují týmy spolupracovat v otevřeném prostoru. Tato praxe podporuje komunikaci a pocit sounáležitosti s týmem.

Celý tým: Každý, kdo je potřebný pro úspěch projektu, je součástí XP týmu. To je vysoce kontextové – pro každý tým odlišné – a dynamické, může se v rámci týmu měnit.

Informační pracovní prostory: Informační pracovní prostor využívá fyzický prostor týmu k zobrazení informací, které komukoli umožňují na první pohled zjistit průběh projektu. Způsob, jakým se to dělá, se může lišit, od fyzických poznámek a grafů po snímky obrazovky zobrazující Kanban desky a řídicí panely ze softwaru pro řízení projektů.

Energická práce: V XP pracujete jen tak dlouho, dokud můžete dělat energickou práci. Pracovní doba musí být omezena na maximálně 40 týdně.

Projektový management

Analisi- Pište požadavky uživatelů ve formátu známém jako uživatelská analýza. Uživatelská analýza má krátký, popisný název a také krátký popis toho, co je potřeba implementovat.

Volný: Při plánování cyklu přidejte drobné úkoly, které může tým v případě potřeby opustit. Další příběhy lze vždy přidat, pokud tým dodá příliš mnoho.

Cykly (měsíční a týdenní): Vývoj v XP probíhá ve dvou hlavních cyklech: týdenní cyklus a měsíční cyklus.

Schůzky, cykly, plánovaná vydání: Vývoj v XP funguje ve dvou hlavních cyklech: týdenní cyklus a čtvrtletní cyklus. Kent Beck původně doporučoval dvoutýdenní cyklus, ale ve druhém vydání své knihy to změnil.

Týdenní cyklus: týdenní cyklus je „pulsem“ projektu XP. Cyklus začíná schůzkou, na které si klient vybere, jaké příběhy chce během týdne vytvořit. Kromě toho tým kontroluje svou práci, včetně pokroku z minulého týdne, a přemýšlí o způsobech, jak zlepšit svůj proces.

Měsíční cyklus: Každý měsíc tým odráží a identifikuje příležitosti ke zlepšení ve svém procesu. Klient si vybere jedno nebo více témat pro daný měsíc spolu s analýzami v těchto tématech.

Jak začít pracovat s extrémním programováním?
Technické dovednosti a návyky XP může být těžké se naučit. Některé praktiky se mohou zdát cizí programátorům, kteří na ně nejsou zvyklí.

Ercole Palmeri

Inovační zpravodaj
Nenechte si ujít nejdůležitější novinky o inovacích. Přihlaste se k jejich odběru e-mailem.

Nedávné články

Vydavatelé a OpenAI podepisují dohody o regulaci toku informací zpracovávaných umělou inteligencí

Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…

30. dubna 2024

Online platby: Zde je návod, jak vám streamovací služby umožňují platit navždy

Miliony lidí platí za streamovací služby a platí měsíční předplatné. Je obecný názor, že jste…

29. dubna 2024

Veeam nabízí nejkomplexnější podporu pro ransomware, od ochrany po reakci a obnovu

Společnost Coveware od společnosti Veeam bude i nadále poskytovat služby reakce na incidenty v oblasti kybernetického vydírání. Coveware nabídne forenzní a sanační schopnosti…

23. dubna 2024

Zelená a digitální revoluce: Jak prediktivní údržba proměňuje ropný a plynárenský průmysl

Prediktivní údržba přináší revoluci do odvětví ropy a zemního plynu s inovativním a proaktivním přístupem k řízení závodu.…

22. dubna 2024