De inhoud van de gids
Hoofdstuk 1. Wat is software-outsourcing en waarom het nu niet alleen om de prijs gaat
Hoofdstuk 2. Hoe u het land, de outsourcingpartner en het bedrijfsmodel kiest
Hoofdstuk 3. Laten we een nieuw project starten: het installatieproces
Hoofdstuk 4. Stap 1. Bedrijfsanalyse en ontwerp zijn cruciaal
Hoofdstuk 5.Stap 2. Softwareontwikkeling: kwaliteit is een must
Hoofdstuk 6. Stap 3. Testen en ondersteuning voor het resultaat
Hoofdstuk 7. Veelgestelde vragen over het uitbesteden van softwareontwikkeling
Om de hoogste kwaliteit in de kortst mogelijke tijd te leveren, kiest het team de meest geschikte softwareontwikkelmethodologie die tijdens het hele ontwikkelingsproces zal worden gebruikt.
Methodologie voor softwareontwikkeling is een plan van aanpak met gedefinieerde fases dat de normen voor de teamleden vastlegt over hoe ze gaan werken en op welke manier ze informatie aan elkaar moeten doorgeven.
Such methods are used to manage the development workflow more efficiently.
Hier is een lijst met de meest gebruikte softwareontwikkelingsmethoden:
Wendbaar
De Agile-aanpak staat voor iteratie en flexibiliteit. Continue samenwerking is de sleutel tot het Agile-ontwikkelingsproces.
Het team heeft de mogelijkheid om de eisen van de belanghebbenden te beoordelen en snelle wijzigingen door te voeren, aangezien beide partijen de details voortdurend bespreken tijdens geplande vergaderingen, genaamd sprints. Meestal duren sprints één tot vier weken. De klant kan vóór elke sprint de geschatte kosten berekenen om de geschatte kosten van elke functie beter te begrijpen. Deze aanpak biedt meer besluitvormingsmogelijkheden.

Door Agile-methoden te gebruiken, kan het team de productachterstand voortdurend opnieuw prioriteren en verfijnen. Het creëert mogelijkheden om de richting van een project tijdens de ontwikkelingscyclus te evalueren.
De belangrijkste Agile-principes:
o Een werkend product is een belangrijke maatstaf voor vooruitgang
o Samenwerking met de stakeholder staat voorop, niet de contractonderhandelingen
o Het is niet verplicht om het vooraf bepaalde plan te volgen; er kunnen wijzigingen worden aangebracht
o Lever het product binnen de kortste tijd
o Teams moeten dagelijks samenwerken om effectiever te zijn.
Aan de Agile-principes kunnen we ook toevoegen dat de klant op regelmatige basis kleine stukjes functionaliteit krijgt
Scrummen

Scrum is een andere flexibele projectmanagementmethode uit de Agile-familie. Dit model is ontworpen voor projecten die snelle oplossingen vereisen, gecombineerd met tolerantie voor wijzigingen.
De hoofdstructuur van het Scrum-proces omvat sprintplanning, dagelijkse overzichten, sprintresultaten en retrospectives.
Scrum splitst het project op in delen die door de klant gebruikt kunnen worden om achterstanden weg te werken. Sprints duren twee tot vier weken. Gedurende deze tijd wordt de duur van de vergaderingen geminimaliseerd, maar neemt de frequentie ervan toe. De controle over de uitvoering wordt flexibeler en ontwikkelaars reageren sneller op opkomende problemen.
Deze aanpak is geschikt voor situaties waarin niet alle teamleden voldoende ervaring hebben op het gebied waarin het project wordt uitgevoerd. Voortdurende communicatie tussen teamleden die hun kennis kunnen delen, kan een gebrek aan ervaring of kwalificaties compenseren..
De Scrum Master is verantwoordelijk voor het monitoren van het werk van het team en zorgt ervoor dat projectdeelnemers de principes en normen van de Scrum-praktijk begrijpen. Hij/zij is een bemiddelaar tussen de klant en het team. Het team is ervoor verantwoordelijk dat aan het einde van elke sprint alle noodzakelijke taken zijn voltooid. De Product Owner is de persoon die de belangen van eindgebruikers behartigt.
Scrum-artefacten
De Product Backlog is een lijst met functionele eisen, gerangschikt in volgorde van belangrijkheid.
De Sprint Backlog is functionaliteit die door de Product Owner wordt gekozen uit de Product Backlog.
Aan het begin van de iteratie wordt een planningsvergadering gehouden met als doel de vereiste hoeveelheid werk te bepalen.
Een Daily Meeting (Stand-Up) is een korte dagelijkse bijeenkomst waarin elk teamlid drie vragen beantwoordt:
- Welk werk is er verricht tussen de vorige bijeenkomst en de huidige?
- Welk werk zal er zijn verricht tussen de huidige vergadering en de volgende?
- Welke problemen belemmeren het behalen van sprintdoelen?
Kanban
Kanban is een Agile systeem gebaseerd ophet visualiseren van het proces van het vervullen van teamtaken. Het belangrijkste idee van dit systeem is om het aantal taken dat momenteel wordt uitgevoerd te verminderen.
Deze aanpak is minder streng dan de Scrum-aanpak. Het beperkt de tijd van sprints niet en er worden geen rollen gegeven aan teamleden, behalve de Product Owner. Met Kanban kan een teamlid meerdere taken tegelijk uitvoeren, wat bij Scrum niet wordt geoefend. Bovendien zijn er geen strikt gereguleerde overleggen over de status van een project. Het is beter om het Kanban-model te gebruiken als er geen specifieke deadlines zijn. Elke taak wordt individueel gegeven. Het doorloopt alle fasen op het bord en zodra het klaar is ingevuld kan aan de opdrachtgever worden getoond.
Nauwkeurige berekening van de werklast, het correct plaatsen van beperkingen en de focus op continue verbetering maken het mogelijk om middelen te besparen en in te spelen op deadlines en budgetbeperkingen. En dit alles wordt gecombineerd met de flexibiliteit van Kanban.
De waterval
Het Watervalmodel is een lineaire sequentiële benadering met verschillende fasen. Het was het eerste procesmodel dat werd geïntroduceerd. Een typische reeks gebeurtenissen ziet er als volgt uit: analyse van vereisten – softwareontwerp – implementatie – testen – onderhoud.
Tijdens het ontwikkelingsproces wordt strenge controle opgelegd met een grote hoeveelheid schriftelijke documentatie, goedkeuring en ondertekening door de klant, en formele beoordelingen. Een strikte aanpak ontmoedigt het opnieuw bekijken en herzien van een voorgaande fase zodra deze is voltooid. Tussen elke fase zit echter een fasepoort, omdat de eisen door de klant moeten worden beoordeeld en goedgekeurd voordat het ontwerpproces begint.
Het is beter om het Watervalmodel te gebruiken voor relatief kleine projecten als de eisen duidelijk zijn gesteld en er programmeurs met de vereiste kwalificaties beschikbaar zijn.