Dit hoofdstuk geeft een overzicht van Extreme Programming.
Wat is Agile?
het woord ‘agile’ betekent −
-
in staat om uw lichaam snel en gemakkelijk te bewegen.
-
snel en helder kunnen denken.,
in het bedrijfsleven wordt “agile” gebruikt voor het beschrijven van manieren om werk te plannen en uit te voeren, waarbij wordt begrepen dat het aanbrengen van veranderingen naar behoefte een belangrijk onderdeel van het werk is. Business ‘agililty’ betekent dat een bedrijf altijd in staat is om rekening te houden met de veranderingen in de markt.
Ref: Cambridge woordenboeken online.
in softwareontwikkeling wordt de term “agile” aangepast aan ” het vermogen om te reageren op veranderingen − veranderingen van eisen, technologie en mensen.,”
Agile Manifesto
een team van softwareontwikkelaars publiceerde het Agile manifest in 2001, waarin het belang van het ontwikkelingsteam werd benadrukt, rekening werd gehouden met veranderende eisen en de betrokkenheid van de klant.
het Agile Manifest stelt dat –
we betere manieren ontdekken om software te ontwikkelen door het te doen en anderen te helpen. Door dit werk zijn we gekomen tot waarde −
-
individuen en interacties over processen en hulpmiddelen.
-
werkende software over uitgebreide documentatie.,
-
samenwerking met klanten tijdens contractonderhandelingen.
-
reageren op verandering na een plan.
dat wil zeggen, terwijl er waarde in de items aan de rechterkant, we de waarde van de items aan de linkerkant meer.
kenmerken van Agility
Hieronder volgen de kenmerken van Agility –
-
Agility in Agile Software Development richt zich op de cultuur van het hele team met multidisciplinaire, cross-functionele teams die bevoegd zijn en zelfregulerend zijn.
-
Het bevordert gedeelde verantwoordelijkheid en verantwoording.,
-
vergemakkelijkt effectieve communicatie en continue samenwerking.
-
de gehele teambenadering vermijdt vertragingen en wachttijden.
-
frequente en continue leveringen zorgen voor snelle feedback die op zijn beurt het team in staat stelt zich aan te passen aan de vereisten.
-
samenwerking vergemakkelijkt het combineren van verschillende perspectieven bij tijdige implementatie, foutcorrecties en aanpassingen.
-
vooruitgang is constant, duurzaam en voorspelbaar, met nadruk op transparantie.,
Software Engineering Trends
De volgende trends worden waargenomen in software engineering −
-
Verzamel vereisten voordat de ontwikkeling begint. Echter, als de vereisten later moeten worden gewijzigd, dan wordt meestal het volgende opgemerkt-
-
weerstand tegen de veranderingen in een later stadium van ontwikkeling.
-
er is een vereiste van een rigoureus veranderingsproces dat een change control board omvat dat de wijzigingen zelfs naar latere releases kan pushen.,
-
de levering van een product met verouderde eisen die niet aan de verwachtingen van de klant voldoen.
-
onvermogen om de onvermijdelijke domeinwijzigingen en technologische veranderingen binnen het budget te verwerken.
-
-
vinden en elimineren van defecten in een vroeg stadium van de ontwikkelingscyclus om de kosten voor het oplossen van defecten te verminderen.
-
het testen begint pas nadat de codering is voltooid en het testen wordt beschouwd als de verantwoordelijkheid van een tester, hoewel de tester niet betrokken is bij de ontwikkeling.
-
Meet en volg het proces zelf., Dit wordt duur vanwege –
-
Monitoring en tracking op Taak-en bronniveau.
-
Het definiëren van metingen om de ontwikkeling te sturen en het meten van elke activiteit in de ontwikkeling.
-
Beheersinterventie.
-
-
de modellen uitwerken, analyseren en verifiëren vóór de ontwikkeling.
-
een model wordt verondersteld te worden gebruikt als een raamwerk. Focus op het model en niet op de ontwikkeling die cruciaal is zal echter niet de verwachte resultaten opleveren.,
-
-
codering, de kern van de ontwikkeling, wordt onvoldoende benadrukt. De redenen zijn −
-
ontwikkelaars, die verantwoordelijk zijn voor de productie, zijn meestal niet in constante communicatie met de klanten.
-
codering wordt gezien als een vertaling van ontwerp en de effectieve implementatie in code wordt bijna nooit teruggekoppeld in het ontwerp.
-
testen wordt beschouwd als de gateway om defecten te controleren vóór levering.,
-
overschrijdingen van de eerdere ontwikkelingsstadia worden gecompenseerd door de testvereisten over het hoofd te zien om tijdige leveringen te garanderen.
-
Dit resulteert in kostenoverschrijdingen die defecten na levering herstellen.
-
Testers worden verantwoordelijk en verantwoordelijk gesteld voor de kwaliteit van het product, hoewel zij niet tijdens de gehele ontwikkeling betrokken waren.
het beperken van middelen (voornamelijk team) om budget op te nemen leidt tot −
-
Resource over toewijzing
-
Team burn-out.,
-
verlies in effectief gebruik van teamcompetenties.
-
verloop.
Extreme programmering-een manier om de veelvoorkomende tekortkomingen aan te pakken
Software Engineering impliceert −
-
creativiteit
-
leren en verbeteren door middel van proeven en fouten
-
iteraties
Extreme programmering bouwt voort op deze activiteiten en codering. Het is de gedetailleerde (niet de enige) Ontwerp activiteit met meerdere strakke feedback loops door middel van effectieve implementatie, testen en refactoring continu.,
Extreme programmering is gebaseerd op de volgende waarden –
-
communicatie
-
eenvoud
-
Feedback
-
moed
-
Respect
Wat is extreem programmeren?
XP is een lichtgewicht, efficiënte, laag risico, flexibele, voorspelbare, wetenschappelijke en leuke manier om software te ontwikkelen.
eXtreme Programming (XP) werd ontworpen en ontwikkeld om tegemoet te komen aan de specifieke behoeften van software-ontwikkeling door kleine teams in het licht van vage en veranderende eisen.,
Extreme Programming is een van de Agile softwareontwikkelingsmethoden. Het biedt waarden en principes om het gedrag van het team te sturen. Het team wordt geacht zichzelf te organiseren. Extreme programmering biedt specifieke kernpraktijken waarbij –
-
elke praktijk eenvoudig en zelfvoldaan is.
-
combinatie van praktijken veroorzaakt complexer en emergent gedrag.
Embrace Change
een belangrijke aanname van Extreme programmering is dat de kosten van het wijzigen van een programma meestal constant kunnen worden gehouden in de tijd.,>Dit kan worden bereikt met −
-
de Nadruk op continue feedback van de klant
-
Korte iteraties
-
Ontwerp en herontwerp
-
Codering en testen vaak
-
het Elimineren van afwijkingen in een vroeg stadium, dus het verminderen van kosten
-
het Houden van de klant betrokken bij de gehele ontwikkeling
-
het Leveren van werkende product aan de klant
Extreme Programming in een Notendop
de Extreme Programming gaat −
-
Het schrijven van unit tests voor het programmeren en onderhouden van alle van de tests uitgevoerd op alle tijden., De unit tests zijn geautomatiseerd en elimineert defecten vroegtijdig, waardoor de kosten.
-
beginnend met een eenvoudig ontwerp dat net genoeg is om de beschikbare functies te coderen en opnieuw te ontwerpen wanneer dat nodig is.
-
programmeren in paren (pair programming genoemd), met twee programmeurs op één scherm, die om de beurt het toetsenbord gebruiken. Terwijl een van hen is op het toetsenbord, de andere voortdurend reviews en biedt ingangen.
-
het hele systeem meerdere keren per dag integreren en testen.,
-
een minimaal werkend systeem snel in de productie brengen en het upgraden wanneer dat nodig is.
-
De klant voortdurend betrokken houden en constante feedback verkrijgen.
itereren vergemakkelijkt het aanpassen van wijzigingen naarmate de software evolueert met de veranderende vereisten.
waarom heet het ” extreem?”
Extreme programmering brengt de effectieve principes en praktijken tot extreme niveaus.
-
Codebeoordelingen zijn effectief omdat de code voortdurend wordt beoordeeld.,
-
testen is effectief omdat er continue regressie en testen zijn.
-
ontwerp is effectief omdat iedereen dagelijks refactoring moet doen.
-
integratie testen is belangrijk als integreren en testen meerdere keren per dag.
-
korte iteraties zijn effectief als het planningsspel voor release planning en iteratieplanning.
History of Extreme Programming
Kent Beck, Ward Cunningham en Ron Jeffries formuleerden extreme Programming in 1999. De Andere bijdragers zijn Robert Martin en Martin Fowler.,midden jaren 80 begonnen Kent Beck en Ward Cunningham Pair Programming bij Tektronix. In de jaren 80 en 90 produceerde Smalltalk cultuur Refactoring, continue integratie, constant testen en nauwe betrokkenheid van de klant. Deze cultuur werd later veralgemeend naar de andere omgevingen.
begin jaren 90 werden kernwaarden ontwikkeld binnen de Patterns Community, Hillside Group. In 1995, Kent samengevat deze in Smalltalk Best Practices, en in 1996, Ward samengevat in afleveringen.in 1996 voegde Kent unit testing and metaphor toe aan Hewitt., In 1996 had Kent het Chrysler C3-project overgenomen, waaraan Ron Jeffries als coach werd toegevoegd. De praktijken werden verfijnd op C3 en gepubliceerd op Wiki.
Scrum praktijken werden opgenomen en aangepast als de planning spel. In 1999 publiceerde Kent zijn boek ‘Extreme Programming Explained’. In hetzelfde jaar publiceerde Fowler zijn boek Refactoring.
Extreme programmering is sindsdien in ontwikkeling, en de evolutie gaat door tot op de dag van vandaag.
succes in de industrie
het succes van projecten, die Extreme Programmeerpraktijken volgen, is toe te schrijven aan −
-
snelle ontwikkeling.,
-
onmiddellijke reactie op de veranderende behoeften van de klant.
-
Focus op lage defectpercentages.
-
systeem dat constante en consistente waarde aan de klant retourneert.
-
hoge klanttevredenheid.
-
gereduceerde kosten.
-
Teamsamenhang en werknemerstevredenheid.
Extreme Programmeervoordelen
extreem programmeren lost de volgende problemen op die vaak voorkomen in de softwareontwikkelingsprojecten −
-
Slipschema ‘ s − en haalbare ontwikkelingscycli zorgen voor tijdige leveringen.,
-
geannuleerde projecten-Focus op continue betrokkenheid van de klant zorgt voor transparantie met de klant en onmiddellijke oplossing van eventuele problemen.
-
kosten gemaakt bij wijzigingen-uitgebreide en doorlopende tests zorgen ervoor dat de wijzigingen de bestaande functionaliteit niet breken. Een draaiend werksysteem zorgt altijd voor voldoende tijd om veranderingen op te vangen zodat de huidige bewerkingen niet worden beïnvloed.
-
productie-en post-delivery defecten: de nadruk ligt op − de unit tests om de defecten vroegtijdig op te sporen en op te lossen.,
-
onbegrip van het bedrijf en / of domein − de klant een deel van het team maken zorgt voor constante communicatie en verduidelijkingen.
-
bedrijfswijzigingen-veranderingen worden als onvermijdelijk beschouwd en worden op elk moment verwerkt.het personeelsverloop-intensieve teamsamenwerking zorgt voor enthousiasme en goede wil. Samenhang van multidisciplines bevordert de teamgeest.