CodeGym /Java Blog /Willekeurig /Alles wat u moet weten over methodologieën voor softwareo...
John Squirrels
Niveau 41
San Francisco

Alles wat u moet weten over methodologieën voor softwareontwikkeling: trends, principes en valkuilen voor beginners

Gepubliceerd in de groep Willekeurig
Softwareontwikkeling is een complex bedrijfsproces. Dit betekent dat IT-professionals de taal van optimalisatie, planning en kosten moeten spreken. Een goed begrip van managementconcepten geeft zowel werkgevers als ontwikkelaars een groot voordeel en helpt samenwerking naar een hoger niveau te tillen. Alles wat u moet weten over methodologieën voor softwareontwikkeling: trends, principes en valkuilen voor beginners - 1

Let op, beginners! Modellen, methodologieën en algemene verwarring

Om te beginnen moeten we een belangrijke verduidelijking geven: softwareontwikkelingsmodellen en softwareontwikkelingsmethodologieën zijn gescheiden en verschillend. Modellen voorspellen hoe een systeem zich zal gedragen. Er zijn methodologieën nodig om het systeem te laten werken zoals het hoort. Het verwarren van softwareontwikkelingsmodellen en -methodologieën is de standaardprocedure voor elke IT-beginner, dus dit wordt niet als een grote blunder beschouwd. Een voorbeeld van een model is het klassieke watervalmodel , met zijn lineaire progressie, duidelijke definitie van doelstellingen voor elke fase en strikte controle over deadlines. Een ander model is het spiraalmodel, met de nadruk op vroegtijdige detectie en beperking van projectrisico's. Spiraalontwikkeling begint klein, eerst met het oplossen van lokale problemen en vervolgens met complexere problemen. Een ander model ten slotte is iteratieve en incrementele ontwikkeling (IID) , waarin de projectlevenscyclus wordt opgesplitst in een reeks iteraties, die elk op een "miniproject" lijken. Over het algemeen is een model een beschrijving van het softwareontwikkelingsproces . Maar methodologieën zijn systemen voor het controleren, evalueren en monitoren van werk aan toegewezen taken. Methodologieën zijn de stok en de wortel van de moderne tijd, die nodig zijn om elke stap in het ontwikkelingsproces te beheersen. Ze worden gekozen op basis van de richting van het project, het budget en de deadlines voor de implementatie van het eindproduct. Bovendien kunnen methodieken worden gekozen op basis van het temperament van de projectleider en zijn of haar team. Zelfs op basis van de filosofie van het bedrijf of de klant. Laten we eens kijken naar de meest populaire methoden.

1. Scrummen

Scrum is een agile methode voor projectmanagement. Het is gebaseerd op "sprints", of korte iteraties, strikt beperkt in de tijd (meestal 2-4 weken). Dit minimaliseert de duur van vergaderingen, maar verhoogt hun frequentie. Elke sprint bestaat uit een lijst met taken die aan het einde van de iteratie moeten zijn voltooid, en elk daarvan heeft zijn eigen "gewicht". Tijdens vergaderingen bespreekt het team wat teamleden hebben gedaan, wat ze van plan zijn te doen en welke problemen er zijn. Scrum gebruikt een backlog voor de planning. Bij deze aanpak hebben teams over het algemeen een scrummaster. Deze persoon helpt het team om ongestoord te werken en creëert een comfortabele omgeving voor het team. Het project krijgt ook iemand in de rol van product owner. Deze persoon is het hoofd van de ontwikkeling, bewaakt het product en fungeert als de belangrijkste schakel tussen wat de klant vraagt ​​en wat het team produceert.

Voordelen:

  • het vermogen om snel een project te starten met het laagst mogelijke budget;
  • dagelijkse voortgangsbewaking, frequente projectdemo's;
  • de mogelijkheid om tijdens het project bij te sturen.

Nadelen:

  • moeilijkheden bij het afsluiten van contracten door het ontbreken van een vast budget;
  • werkt niet voor een onervaren team of wanneer deadlines of het budget onderschat worden;
  • het vermogen om constant veranderingen aan te brengen tussen sprints kan voor verwarring zorgen.

Voor wie is het?

Zo'n systeem is geschikt voor projecten tot tien personen, zowel zelfstandig als binnen grote bedrijven. Dit is handig als het team veel werk heeft en een lange levenscyclus heeft waardoor ze moeten veranderen en zich moeten aanpassen aan nieuwe marktomstandigheden.

2. Kanban

Het belangrijkste kenmerk van Kanban is de visualisatie van de projectlevenscyclus. Kolommen voor het uitvoeren van werkitems worden gemaakt. De werkitems worden individueel aangepakt. De kolommen zijn gemarkeerd met statussen zoals: Te doen, In uitvoering, Code review, In testen, Klaar (de kolomnamen kunnen natuurlijk variëren). Het doel van elk teamlid is om het aantal werkitems in de eerste kolom te verminderen. De aanpak van Kanban is intuïtief en helpt je te begrijpen waar de problemen liggen. De structuur van Kanban staat niet definitief en onherroepelijk vast: afhankelijk van de specifieke kenmerken van het project kunt u geïmproviseerde kolommen toevoegen. Sommige teams gebruiken bijvoorbeeld een systeem waarin u gereed-regels voor een werkitem moet definiëren voordat u het uitvoert. In dit geval worden twee kolommen toegevoegd: Specificeer (specificeer de parameters) en Implementeer (ga aan het werk).

Voordelen:

  • flexibiliteit bij het plannen. Het team concentreert zich alleen op het huidige werk, ook wordt de prioriteit van een taak bepaald;
  • zichtbaarheid. Wanneer alle deelnemers toegang hebben tot data, zijn mondiale problemen gemakkelijker te herkennen;
  • grote betrokkenheid bij het ontwikkelproces. Het visualiseren van processen vergroot de zelforganisatie en zelfbeheersing.

Nadelen:

  • werkt niet met teams van meer dan vijf personen;
  • niet bedoeld voor langetermijnplanning;
  • niet geschikt voor een ongemotiveerd team. Kanban heeft geen deadlines voor elk werkitem. De methodologie voorziet evenmin in boetes voor vertragingen.

Voor wie is het?

Kanban werkt geweldig in bedrijven waar het team gemotiveerd is om te groeien en resultaten te behalen. Het zou al duidelijk moeten zijn: dit is voor een klein team. Misschien zelfs een detachement of onderdeel van een team.

3. Rationeel verenigd proces (RUP)

De RUP-methodiek maakt gebruik van een iteratief ontwikkelmodel. Aan het einde van elke iteratie (die 2 tot 6 weken duurt) zou het team de geplande doelen moeten bereiken en een werkende, zij het tijdelijke, versie van het project krijgen. RUP pleit voor een opdeling van het project in vier fasen . In elke fase wordt gewerkt aan de volgende generatie van het product: inceptie, uitwerking, constructie en transitie. Aan het einde van een fase wordt een projectmijlpaal bereikt. Het moment waarop het team de resultaten evalueert, kan als een projectmijlpaal worden beschouwd. Dit betekent dat de methodiek inhoudt dat in de eerste fase de hoofdkenmerken worden vrijgegeven en in de volgende fasen toevoegingen worden toegevoegd.

Voordelen:

  • maakt het mogelijk om te gaan met veranderende taken, zowel van de klant als veranderingen die ontstaan ​​tijdens het werk;
  • zorgt voor continue verbetering van het product. Tijdens iteraties kun je het project nauwgezet evalueren;
  • maakt het mogelijk om risico's in de vroege stadia van het werk te identificeren en te elimineren, en om de kwaliteit van de ontwikkeling effectief te beheersen.

Nadelen:

  • Deze methodologie is nogal complex en moeilijk te implementeren in een klein team of bedrijf;
  • hangt af van het vermogen van deskundigen om taken vast te stellen;
  • heeft buitensporige documentatie van vereisten nodig.

Voor wie is het?

Grote projecten met duidelijk vastgestelde eisen en goed begrepen risico's, wanneer het product zo snel mogelijk moet worden vrijgegeven. Zelfs ten koste van functionaliteit, om snel je niche in te nemen en pas later de finishing touch toe te voegen.

Er zijn veel methodieken, maar één trend

Naast scrum en kanban, die onmiskenbaar populair zijn en gebaseerd zijn op agile principes , en de sterke, iteratieve RUP-methodiek, gebruiken bedrijven veel variaties op methodieken. Het ene bedrijf staat misschien dichter bij extreme programmering en het nemen van de snelste en eenvoudigste beslissingen. Een andere kan dichter bij testgestuurde ontwikkeling liggen. Een ander geeft misschien nog steeds de voorkeur aan Rapid Application Development (RAD). Dat gezegd hebbende, er is een sterke, onbetwistbare trend om meerdere methodologieën tegelijkertijd te gebruiken. Of zelfs modellen en methodieken combineren tot een uniek managementsysteem. De bedrijven van vandaag streven ernaar bureaucratische barrières weg te nemen en een sfeer van verenigd teamwerk binnen de organisatie te creëren, zonder de verantwoordelijkheid tussen afdelingen en organisatie-eenheden te verschuiven. Volgens Scrum Alliance, gebruikt 70% van de IT-bedrijven scrum. Onder hen zijn reuzen als Google, Amazon, Salesforce, Microsoft en Adobe. Startups en jonge projecten neigen meer naar Kanban, maar ook Toyota en bijvoorbeeld de gamers van Wargaming maken er gebruik van. Scrum is een planningstool, terwijl Kanban bedoeld is om de voortgang te bewaken. Wat RUP betreft, het wordt het meest gebruikt door westerse bedrijven met 50-200 werknemers en een omzet van $ 1-10 miljoen. IBM heeft RUP echter aangepast om dichter bij agile principes te komen, door de OpenUP-methodologie vrij te geven (RUP, maar agile). Deze geroemde agile methodologie is nu de drijvende kracht achter de IT-wereld . Dit is niet alleen een voorbijgaande bevlieging - het is nog steeds innovatief en wordt zelfs door veel grote bedrijven gebruikt. Agile wordt gebruikt in Silicon Valley. Facebook en Uber gebruiken het.

het komt neer op

Elk project heeft zijn eigen methodologie voor softwareontwikkeling, die afhangt van het team, de financiering, deadlines en eisen van de klant. Er is geen universele managementtechniek: zelfs de razend populaire agile-methodiek kan niet de beste benadering van het ontwikkelingsproces garanderen. Methodieken worden dan ook zorgvuldig gekozen, soms zelfs uit principe. Zozeer zelfs dat we conclusies kunnen trekken over een bedrijf zelf of over zijn klanten door naar zijn methodologie te kijken. Methodieken worden gemengd, aangevuld met modellen en aangepast. Zozeer zelfs dat ze aanleiding geven tot nieuwe benaderingen. Dat gezegd hebbende, het beheer blijft uiteindelijk in handen van scrum en Kanban, met onverwachte elementen van het watervalmodel of de iteratieve RUP-methodiek.
Meer lezen:
Websites: Boeken:
  • Andrew Stelman, Jennifer Greene: "Agile leren";
  • Per Kroll, Bruce MacIsaac: «Behendigheid en discipline gemakkelijk gemaakt: praktijken van OpenUP en RUP";
  • Mike Cohn: "Slagen met Agile: softwareontwikkeling met behulp van Scrum";
  • Robert C. Martin: "Agile softwareontwikkeling: principes, patronen, praktijken";
  • Marcus Hammarberg, Joakim Sunden: "Kanban in actie";
  • I. Jacobson, G. Booch, J. Rumbaugh: "Unified Software Development Process".
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION