Articles

Vad är extrem programmering och hur använder du det?

Extreme Programming är en mjukvaruutvecklingsmetod som är utformad för att förbättra kvaliteten på Programvaran och dess förmåga att anpassa sig till kundens eller kundens förändrade behov. Under mitten av och slutet av nittiotalet, samtidigt som man arbetar på Chrysler Comprehensive comprehensive comprehensive Comprehensation System (C3) för att hantera företagets Lönelista, utvecklade mjukvaruingenjör Ken Beck först den extrema Programmeringsmetoden., I oktober 1999 publicerade han Extreme Programming Explained, som beskriver hela metoden för andra, och kort därefter lanserades den officiella hemsidan också.

i likhet med andra smidiga utvecklingsmetoder syftar Extreme Programming till att ge iterativa och frekventa små utgåvor under hela projektet, vilket gör det möjligt för både gruppmedlemmar och kunder att undersöka och granska projektets framsteg under hela SDLC.,

i den här artikeln kommer vi att undersöka exakt vad extrem programmering är och hur det fungerar, från de värderingar och principer som ligger bakom det, till de regler och procedurmässiga bästa praxis som används för att genomföra ett nytt extrema programmeringsprojekt, så låt oss komma igång!,/td>

Rational Unified Process Big Bang Modell V-Modell konceptuell modell Kaizen Modell Kanban Modell Spiral Modell

extrema värden

dessa fem grundläggande värden ger den grund på vilken hela Extreme Programming Paradigm är byggd, så att de personer som är involverade i projektet kan känna sig trygga i den riktning projektet tar och förstå deras personliga feedback och insikt är som nödvändigt och välkommen som någon annan.,

Enkelhet: Vi kommer att göra vad som behövs och bad om, men inte mer. Detta kommer att maximera det värde som skapats för den investering som hittills gjorts. Vi kommer att ta små enkla steg till vårt mål och mildra misslyckanden när de händer. Vi kommer att skapa något vi är stolta över och behålla det långsiktigt för rimliga kostnader.

kommunikation: alla är en del av laget och vi kommunicerar ansikte mot ansikte dagligen. Vi kommer att arbeta tillsammans på allt från krav till kod. Vi kommer att skapa den bästa lösningen på vårt problem som vi kan tillsammans.,

Feedback: vi tar varje iterationsåtagande på allvar genom att leverera arbetsprogramvara. Vi visar vår programvara tidigt och ofta sedan lyssna noga och göra några ändringar som behövs. Vi kommer att prata om projektet och anpassa vår process till den, inte tvärtom.

respekt: alla ger och känner den respekt de förtjänar som en värderad gruppmedlem. Alla bidrar med värde även om det bara är entusiasm. Utvecklare respekterar kundernas expertis och vice versa. Ledningen respekterar vår rätt att ta ansvar och ta emot auktoritet över vårt eget arbete.,

Mod: vi kommer att berätta sanningen om framsteg och uppskattningar. Vi dokumenterar inte ursäkter för misslyckande eftersom vi planerar att lyckas. Vi fruktar inget för att ingen jobbar ensam. Vi kommer att anpassa oss till förändringar när allt kommer omkring.

Extreme Rules

ursprungligen publicerad av Don Wells 1999, innehavaren av Extreme Programming-webbplatsen, var denna uppsättning extrema programregler ursprungligen avsedda att hjälpa till att motverka påståendena att extrem programmering misslyckas med att stödja några av de framstående discipliner som är nödvändiga för modern utveckling.,

planering

  • användarhistorier skrivs.
  • Release planning skapar release schema.
  • gör ofta små utgåvor.
  • projektet är uppdelat i iterationer.
  • Iteration planering startar varje iteration.

hantera

  • ge laget ett dedikerat Öppet arbetsutrymme.
  • Ställ in en hållbar takt.
  • ett stand up-möte börjar varje dag.
  • Projekthastigheten mäts.
  • flytta människor runt.
  • fixa extrem programmering när den bryts.

designa

  • enkelhet.,
  • välj en systemmetafor.
  • använd CRC-kort för designsessioner.
  • skapa spiklösningar för att minska risken.
  • ingen funktionalitet läggs till tidigt.
  • Refactor när och om möjligt.

kodning

  • kunden är alltid tillgänglig.
  • koden måste skrivas enligt överenskomna standarder.
  • koda enhetstestet först.
  • all produktionskod är programmerad.
  • endast ett par integrerar kod åt gången.
  • integreras ofta.
  • konfigurera en dedikerad integrationsdator.
  • använd kollektivt ägande.,

testning

  • all kod måste ha enhetstester.
  • all kod måste klara alla enhetstester innan den kan släppas.
  • när ett fel hittas skapas tester.
  • acceptanstest körs ofta och poängen publiceras.

extrema metoder

skapade med hjälp av vad som ansågs vara bästa praxis för mjukvaruutveckling vid den tiden, beskriver dessa tolv extrema Programmerings bästa metoder de specifika förfaranden som bör följas vid genomförandet av ett projekt med extrem programmering.,

finskala återkoppling

parprogrammering

i huvudsak innebär parprogrammering att två personer arbetar tillsammans med samma system när de utvecklar någon produktionskod. Genom att ofta rotera partners i hela laget främjar Extreme Programming bättre kommunikation och teambuilding.

Planeringsspel

ofta sker detta i form av ett möte med ett frekvent och väldefinierat intervall (var en eller två veckor), där majoriteten av planeringen för projektet äger rum.,

inom detta förfarande finns planeringsstadiet för utsläpp, där bestämningar görs om vad som krävs för kommande utsläpp. Delar av Release planering inkluderar:

  • prospektering fas: Story kort används för att beskriva de mest värdefulla krav från kunder.
  • Åtagandefas: planering och åtaganden från laget görs för att möta behoven hos nästa schemautgåva och få ut det i tid.,
  • Styrfas: detta gör det möjligt att tidigare utvecklade planer justeras baserat på projektets föränderliga behov, liknande många andra smidiga modellmetoder.

Efter Frisläppningsplaneringen är också Iterationsplaneringssektionen, som består av samma tre delfaser av sig själv, men med varianter på deras implementeringar:

  • Prospekteringsfas: alla projektkrav skrivs ner.
  • Engagemangsfas: nödvändiga uppgifter som ännu inte har slutförts för att möta den kommande iterationsutgåvan tilldelas utvecklare och planeras på lämpligt sätt.,
  • Styrfas: utveckling sker och, efter avslutad, den resulterande iterationen jämförs med de skisserade berättelse kort som skapats i början av Planeringsförfarandet.

testdriven utveckling

medan en hel artikel kan skrivas om testdriven utveckling, är konceptet ganska välkänt bland utvecklare och effektivt innebär att tester genereras för varje krav i projektet, och först då är kod utvecklad som framgångsrikt kommer att klara dessa tester.,

hela teamet

precis som med många andra SDLC-metoder och metoder främjar extrem programmering inkluderingen av kunder och kunder under hela processen, med hjälp av deras feedback för att hjälpa till att forma projektet hela tiden.

kontinuerlig process

kontinuerlig integration

en annan vanlig praxis i modern utveckling, tanken bakom kontinuerlig integration är att all kod som utvecklats över hela laget slås samman till ett gemensamt förråd många gånger om dagen., Detta säkerställer att eventuella integrationsproblem i hela projektet uppmärksammas och hanteras så snart som möjligt.

kod refactoring

en annan mycket vanlig praxis, tanken bakom kod refactoring är helt enkelt att förbättra och omforma strukturen av redan befintlig kod, utan att ändra dess grundläggande beteende. Enkla exempel på refactoring inkluderar fastställande felaktigt namn variabler eller metoder, och minska upprepad kod ner till en enda metod eller funktion.,

små utgåvor

mycket i linje med praxis i den iterativa modellen, detta koncept säkerställer att projektet kommer att innehålla itererade, små utgåvor på en frekvent basis, så att kunden samt, som alla gruppmedlemmar, för att få en känsla av hur projektet utvecklas.

delad förståelse

kodningsstandarder

kodningsstandarden är helt enkelt en uppsättning bästa metoder inom själva koden, till exempel formatering och stil, som hela laget följer under hela projektets livscykel., Detta främjar bättre förståelse och läsbarhet av koden inte bara för nuvarande medlemmar, men för framtida utvecklare också.

kollektiv kod ägande

denna praxis gör det möjligt för alla utvecklare över hela laget att ändra någon del av koden, vid behov. Även om denna praxis kan låta farligt för vissa, det påskyndar utvecklingstiden, och eventuella problem kan quelled med rätt enhet testning.

Enkel design

det finns liten anledning att komplicera saker när ett enklare alternativ är tillgängligt., Denna grundläggande praxis att hålla alla komponenter och kod så enkelt som möjligt säkerställer att hela laget alltid utvärderar om saker kan göras på ett enklare sätt.

systemmetafor

bäst tänkt på som en del av kodningsstandarderna är systemmetaforen tanken att varje person i laget ska kunna titta på den högnivåkod som utvecklas och ha en tydlig förståelse för vilken funktionalitet den koden utför.,

programmerare välfärd

hållbar takt

ett viktigt koncept för bättre balans mellan arbete och privatliv med utvecklare på ett extremt programmeringsprojekt är tanken att ingen ska behöva arbeta utöver den normala schemalagda arbetsveckan. Övertid är rynkad på, liksom begreppet ”crunch time”, där utvecklare förväntas arbeta extrema timmar nära slutet av en release för att få allt klart i tid.