det här kapitlet ger en översikt över extrem programmering.
Vad är smidig?
ordet ”agile” betyder −
-
kan flytta din kropp snabbt och enkelt.
-
kunna tänka snabbt och tydligt.,
i affärer används ”agile” för att beskriva sätt att planera och göra arbete där det är underförstått att göra ändringar som behövs är en viktig del av jobbet. Business ’agililty’ innebär att ett företag alltid är i stånd att ta hänsyn till marknadsförändringar.
Ref: Cambridge ordböcker online.
i mjukvaruutveckling är termen ”agile” anpassad för att betyda ” förmågan att reagera på förändringar − förändringar från krav, teknik och människor.,’
Agile Manifesto
ett team av mjukvaruutvecklare publicerade Agile Manifesto 2001, med betoning på utvecklingsteamets betydelse, tillgodose förändrade krav och kundernas engagemang.
det Agila manifestet säger att −
Vi avslöjar bättre sätt att utveckla programvara genom att göra det och hjälpa andra att göra det. Genom detta arbete har vi kommit till värde −
-
individer och interaktioner över processer och verktyg.
-
Arbetsprogramvara över omfattande dokumentation.,
-
kundsamarbete över kontraktsförhandlingar.
-
svara på att ändra över efter en plan.
det vill säga medan det finns värde i objekten till höger värdesätter vi objekten till vänster mer.
egenskaper Agility
Följande är egenskaperna hos Agility –
-
Agility i agil mjukvaruutveckling fokuserar på kulturen i hela laget med multidisciplin, tvärfunktionella lag som är bemyndigade och självorganisering.
-
det främjar delat ansvar och ansvar.,
-
underlättar effektiv kommunikation och kontinuerligt samarbete.
-
helteamet undviker förseningar och väntetider.
-
frekventa och kontinuerliga leveranser säkerställer snabb återkoppling som i sin tur gör det möjligt för laget att anpassa sig till kraven.
-
samarbetet underlättar att kombinera olika perspektiv i tid i genomförandet, Felkorrigeringar och tillmötesgående förändringar.
-
utvecklingen är konstant, hållbar och förutsägbar med betoning på öppenhet.,
Software Engineering trender
följande trender observeras i software engineering −
-
samla krav innan utvecklingen startar. Men om kraven ska ändras senare märks vanligtvis följande –
-
motstånd mot förändringarna vid ett senare utvecklingsstadium.
-
det finns ett krav på en rigorös förändringsprocess som innebär ett förändringskontrollkort som till och med kan driva ändringarna till senare utgåvor.,
-
leverans av en produkt med föråldrade krav, som inte uppfyller kundens förväntningar.
-
oförmåga att tillgodose de oundvikliga domänförändringar och tekniska förändringar inom budgeten.
-
-
hitta och eliminera defekter tidigt i utvecklingen livscykel för att minska defekten-fix kostnader.
-
testningen startar först efter att kodningen är klar och testningen betraktas som en testares ansvar även om testaren inte är inblandad i utvecklingen.
-
mäta och spåra själva processen., Detta blir dyrt på grund av –
-
övervakning och spårning på uppgiftsnivå och på resursnivå.
-
definiera mätningar för att styra utvecklingen och mäta varje aktivitet i utvecklingen.
-
Management intervention.
-
-
utarbeta, analysera och verifiera modellerna före utveckling.
-
en modell ska användas som en ram. Fokus på modellen och inte på den utveckling som är avgörande kommer dock inte att ge de förväntade resultaten.,
-
-
kodning, vilket är hjärtat i utvecklingen ges inte tillräckligt med tonvikt. Skälen är –
-
utvecklare, som är ansvariga för produktionen, är vanligtvis inte i ständig kommunikation med kunderna.
-
kodning ses som en översättning av design och den effektiva implementeringen i kod är knappast någonsin loopas tillbaka in i designen.
-
testning anses vara porten för att kontrollera defekter före leverans.,
-
schema överskridanden av de tidigare utvecklingsstadierna kompenseras genom att man bortser från testkraven för att säkerställa snabb leverans.
-
detta resulterar i kostnadsöverskridanden fastställande defekter efter leverans.
-
testare görs ansvariga och ansvariga för produktkvaliteten även om de inte var inblandade under hela utvecklingsförloppet.
begränsa resurser (främst team) för att rymma budget leder till −
-
resurs över allokering
-
Team utbrändhet.,
-
förlust i effektivt utnyttjande av lagkompetenser.
-
avgång.
extrem programmering − ett sätt att hantera de gemensamma bristerna
programvaruteknik innebär −
-
kreativitet
-
lärande och förbättring genom försök och fel
-
iterationer
extrem programmering bygger på dessa aktiviteter och kodning. Det är den detaljerade (inte den enda) designaktiviteten med flera snäva återkopplingsslingor genom effektiv implementering, testning och refactoring kontinuerligt.,
extrem programmering baseras på följande värden −
-
kommunikation
-
enkelhet
-
Feedback
-
mod
-
respekt
Vad är extrem programmering?
XP är en lätt, effektiv, låg risk, flexibel, förutsägbar, vetenskaplig och roligt sätt att utveckla en programvara.
eXtreme Programming (XP) utformades och utvecklades för att möta de specifika behoven av mjukvaruutveckling av små lag inför vaga och förändrade krav.,
Extreme Programming är en av de smidiga mjukvaruutvecklingsmetoderna. Det ger värden och principer för att styra laget beteende. Laget förväntas själv organisera. Extrem programmering ger specifika kärnmetoder där-
-
varje övning är enkel och själv fullständig.
-
kombination av metoder ger mer komplext och framväxande beteende.
omfamna förändring
ett viktigt antagande om extrem programmering är att kostnaden för att ändra ett program kan hållas mestadels konstant över tiden.,> Detta kan uppnås med −
-
betoning på kontinuerlig återkoppling från kunden
-
korta iterationer
-
Design och redesign
-
kodning och testning ofta
-
eliminera defekter tidigt, vilket minskar kostnaderna
-
att hålla kunden involverad under hela utvecklingen
>
-
leverera arbetsprodukt till kunden
extrem programmering i ett nötskal
extrem programmering innebär −
-
skriva enhetstester innan programmering och hålla alla tester som körs hela tiden., Enhetstesterna är automatiserade och eliminerar defekter tidigt, vilket minskar kostnaderna.
-
börja med en enkel design precis tillräckligt för att koda funktionerna till hands och omforma vid behov.
-
programmering i par (kallas pair programmering), med två programmerare på en skärm, turas om att använda tangentbordet. Medan en av dem är på tangentbordet, granskar den andra ständigt och ger ingångar.
-
integrera och testa hela systemet flera gånger om dagen.,
-
sätta ett minimalt arbetssystem i produktionen snabbt och uppgradera det när det behövs.
-
att hålla kunden involverad hela tiden och få konstant feedback.
Iteration underlättar tillmötesgående förändringar som programvaran utvecklas med de förändrade kraven.
Varför kallas det ”Extreme?”
extrem programmering tar de effektiva principerna och metoderna till extrema nivåer.
-
kodrecensioner är effektiva eftersom koden granskas hela tiden.,
-
testning är effektiv eftersom det finns kontinuerlig regression och testning.
-
designen är effektiv eftersom alla behöver göra refactoring dagligen.
-
Integration testning är viktigt som integrera och testa flera gånger om dagen.
-
korta iterationer är effektiva som planering spel för release planering och iteration planering.
historia av extrem programmering
Kent Beck, Ward Cunningham och Ron Jeffries formulerade extrem programmering 1999. De andra bidragsgivarna är Robert Martin och Martin Fowler.,
i mitten av 80-talet initierade Kent Beck och Ward Cunningham parprogrammering på Tektronix. På 80-och 90-talet producerade Smalltalkkulturen Refactoring, kontinuerlig Integration, konstant testning och nära kundengagemang. Denna kultur generaliserades senare till de andra miljöerna.
i början av 90-talet utvecklades kärnvärden inom Patterns Community, Hillside Group. År 1995 sammanfattade Kent dessa i Smalltalk Best Practices, och 1996 sammanfattade Ward det i episoder.
1996 lade Kent till enhetstestning och metafor på Hewitt., År 1996 hade Kent tagit Chrysler C3-projektet, till vilket Ron Jeffries tillsattes som tränare. Metoderna förfinades på C3 och publicerades på Wiki.
Scrum-praxis införlivades och anpassades som planeringsspelet. År 1999 publicerade Kent sin bok ”Extreme Programming Explained”. Samma år publicerade Fowler sin bok Refactoring.
extrem programmering har utvecklats sedan dess, och utvecklingen fortsätter genom idag.
framgång inom industrin
framgången för projekt, som följer extrema Programmeringspraxis, beror på −
-
snabb utveckling.,
-
omedelbar respons på kundens förändrade krav.
-
fokusera på låga felfrekvenser.
-
systemet returnerar konstant och konsekvent värde till kunden.
-
hög kundnöjdhet.
-
minskade kostnader.
-
Team sammanhållning och anställd tillfredsställelse.
extrema Programmeringsfördelar
extrem programmering löser följande problem som ofta uppstår i mjukvaruutvecklingsprojekten −
-
glidde scheman − och uppnåbara utvecklingscykler säkerställer snabba leveranser.,
-
avbrutna projekt − fokus på kontinuerlig kund engagemang säkerställer öppenhet med kunden och omedelbar lösning av eventuella problem.
-
kostnader som uppstår vid förändringar − omfattande och pågående testning ser till att ändringarna inte bryter mot befintlig funktionalitet. Ett fungerande arbetssystem säkerställer alltid tillräckligt med tid för att hantera förändringar så att den nuvarande verksamheten inte påverkas.
-
Produktions-och efterleveransfel: betoning är på − enhetstesterna för att upptäcka och åtgärda defekterna tidigt.,
-
missförstånd verksamheten och / eller domän − att göra kunden en del av laget säkerställer ständig kommunikation och förtydliganden.
-
affärsförändringar − förändringar anses vara oundvikliga och tillgodoses när som helst.
-
Personalomsättningsintensiva team samarbete säkerställer entusiasm och god vilja. Sammanhållning av flera discipliner främjar lagandan.