Sla over en ga naar content

Chapter 5

Planning en implementatie

Maar hoe begint de planning en implementatie van een integratieproject? We gaan terug naar de kerstboomkwekerij. Na het verliezen van de kerstboomstrijd vorig jaar, ontdekte de concurrent dat we de interne werking van zijn belangrijkste concurrent hebben opgezet. We hebben geholpen het proces van het kopen van een kerstboom te stroomlijnen. Nu heeft hij onze hulp nodig om dezelfde IT-integratie te implementeren, zodat hij hopelijk de concurrentie kan verslaan!

Hoewel er nooit een oplossing is die voor iedereen geschikt is, bestaat er wel een eenvoudig proces om alle taken die moeten worden uitgevoerd bij systeemintegratie op te splitsen in even belangrijke onderdelen.

  • Vereistenverzameling
  • Analyse
  • Architectuurontwerp
  • Ontwerp van systeemintegratie
  • Implementatie en test
  • Onderhoud
  • Agile softwareontwikkeling
  • De backlog
  • Rolverdeling
  • De sprint
  • Projectmanagementsoftware

Vereistenverzameling
Vereistenverzameling verwijst naar het proces van het identificeren, documenteren en analyseren van de specifieke behoeften en doelen van een integratieproject dat verschillende systemen, toepassingen of technologieën omvat.

Het doel van vereistenverzameling is ervoor te zorgen dat alle stakeholders een duidelijk begrip hebben van de doelstellingen van het project en dat het project voldoet aan hun behoeften en vereisten.

Analyse
Analyse betekent dat we zorgvuldig kijken naar zowel de oude als de nieuwe programma’s om te zien hoe ze van elkaar verschillen en hoe ze hetzelfde zijn. We willen ervoor zorgen dat ze elkaar begrijpen en probleemloos kunnen samenwerken.

Soms kunnen we ontdekken dat er dingen zijn die het moeilijk maken voor de oude en nieuwe programma’s om samen te werken, zoals wanneer ze verschillende manieren hebben om informatie te organiseren. Dit is vergelijkbaar met wanneer twee vrienden verschillende talen spreken en hulp nodig hebben om elkaar te begrijpen. We moeten een manier vinden om de oude en nieuwe programma’s “elkaar te laten begrijpen”, net zoals we onze vrienden zouden helpen elkaars talen te leren.

Architectuurontwerp
Stel je voor dat je een groot en complex huis wilt bouwen, met veel kamers en apparaten zoals airconditioners en verlichting die je vanaf je telefoon kunt bedienen. Voordat je begint met het bouwen van het huis, moet je nadenken over hoe al deze kamers en apparaten samen zullen werken. Je moet plannen hoe de kamers worden ingedeeld, waar de bedrading en leidingen komen te liggen en hoe alles in elkaar past. Deze planning wordt architectuurontwerp genoemd. Het is als het tekenen van een plattegrond van het huis voordat je het bouwt. Dit is naar mijn mening het meest spannende onderdeel van het proces. Je wilt ervoor zorgen dat alles goed samenwerkt en gemakkelijk te gebruiken is.

Nu, in de IT, is architectuurontwerp als het plannen van het huis, maar dan voor computersystemen. Het is uitvinden hoe verschillende computerprogramma’s en systemen samen zullen werken en ervoor zorgen dat ze allemaal met elkaar verbonden zijn en goed functioneren.

Systeemintegratieontwerp
Systeemintegratieontwerp is als het samenstellen van een grote puzzel bestaande uit verschillende technologische onderdelen. Het systeemintegratieontwerp is het plan voor hoe al deze verschillende computersystemen met elkaar zullen communiceren en informatie zullen delen. Het is als ervoor zorgen dat alle puzzelstukjes perfect in elkaar passen, zodat het plaatje er precies goed uitziet. Wanneer verschillende computersystemen op de juiste manier geïntegreerd zijn, kunnen ze naadloos samenwerken, net zoals een voltooide puzzel er geweldig uitziet wanneer alle stukjes in elkaar passen.

Nu we een overzicht hebben van hoe het hele systeem zich moet gedragen, moeten we ook de kleinere, gedetailleerdere aspecten overwegen van hoe elk subsysteem zich moet gedragen:

  • Welke methoden moeten worden geaccepteerd voor deze API?
  • Wat zou de verwachte uitvoer van elk subsysteem moeten zijn?

Implementatie en testen
Als het architectuurontwerp het meest spannende is, dan zou de implementatiefase op de tweede plaats moeten komen. Dit is de fase waarin je in de ogen van de klant een soort magiër wordt. Met als uitgangspunt welke methoden zijn toegestaan en wat het einddoel is, ga je de weg banen. Ontwerp je code en zorg ervoor dat je deze uitgebreid test; je wilt geen boze telefoontje van een klant op de lancering omdat je een einde-regel-teken vergeten bent in je verder perfecte code. 😉

Onderhoud Om ervoor te zorgen dat het systeem operationeel blijft, is het gebruikelijk om een paar teamleden van het project aan te bieden om de voortgang in de gaten te houden. Dit kan verschillende taken omvatten, zoals:

  • Monitoring: Continu controleren of de verschillende systemen correct samenwerken en eventuele problemen oplossen.
  • Upgrades en patches: De verschillende systemen updaten met de nieuwste software-updates en patches om ervoor te zorgen dat ze veilig en efficiënt werken.
  • Testen: Regelmatig testen van de geïntegreerde systemen om ervoor te zorgen dat ze nog steeds correct samenwerken en eventuele noodzakelijke aanpassingen maken.
  • Probleemoplossing: Het onderzoeken en oplossen van problemen die zich voordoen in de geïntegreerde systemen, of ze nu worden veroorzaakt door technische problemen of gebruikersfouten.

Agile softwareontwikkeling
Nu de klant jou het project heeft toevertrouwd, is het tijd om te beginnen. Echter, alleen een globaal begrip hebben van wat er moet gebeuren is vaak niet voldoende. Bij het werken met een grotere groep mensen kan het opsplitsen van taken in kleinere subtaken de samenwerking efficiënter maken.

Als je simpelweg aan het projectteam vraagt om een systeemintegratieontwerp te maken, loop je het risico op een lange en repetitieve sessie van presentaties over hetzelfde onderwerp. In plaats daarvan stellen we een andere aanpak voor. Wijs twee collega’s toe om het eerste bouwsteen te ontwerpen en nog eens twee collega’s om het tweede bouwsteen te ontwerpen. Op deze manier worden de presentaties informatiever, waarbij elke groep dieper ingaat op wat er gebouwd moet worden.

Aangezien het proces van het creëren en onderhouden van een integratieproject meerdere maanden kan duren, kan het bijhouden van de voortgang uitdagend worden. Een veelgebruikt projectmanagementframework in bijna elk IT-ontwikkelingsteam is SCRUM. Door regelmatig geplande rondes wordt het eenvoudiger om elkaars voortgang bij te houden.

De backlog
De backlog is een rugzak vol problemen of taken die moeten worden aangepakt. Na het voltooien van al deze taken, verwachten we een volledig operationeel integratiesysteem voor de klant te hebben. Typische items op een backlog zijn wijzigingen in bestaande functionaliteit en bugfixes.

Rolverdeling
Om het niveau van communicatie binnen deze rondes te verbeteren, worden verschillende rollen toegewezen om ervoor te zorgen dat teamleden meer dan alleen zichzelf in overweging nemen bij het bespreken van de weg vooruit.

Ten eerste hebben we de potentieel overbelaste productmanager die ervoor wil zorgen dat teamleden eerst aan de belangrijkste problemen werken.

Ten tweede hebben we de SCRUM-master, de harmonisator en het Wikipedia van de groep. Deze persoon zorgt ervoor dat de communicatie soepel verloopt en neemt vaak geen actieve rol in tijdens de vergaderingen zelf. Ze zijn er om andere teamleden antwoorden te geven op eventuele vragen die ze hebben.

Dan hebben we het ontwikkelingsteam, de werkbijen. Dit team haalt toegewezen problemen uit de rugzak totdat er geen meer over zijn.

En tot slot hebben we de stakeholders. Behalve hun waardevolle inbreng tijdens de vergaderingen, kunnen ze aangeven hoe problemen moeten worden opgelost om hun belangen het beste te dienen. Stakeholders kunnen zowel intern als extern zijn voor de organisatie.

De sprint
Elke ronde, meestal wekelijks, moet het team een sprint uitvoeren. Aan het begin van de week halen de lopers (ontwikkelingsteam) minstens één probleem uit de gedeelde rugzak. Zodra iedereen een probleem in handen heeft, positioneren ze zich voor de startlijn. Vervolgens blaast de scheidsrechter op zijn fluitje; de sprint is begonnen.

Grappig genoeg is dit een teamwedstrijd. Elk lid doet zijn best om zo snel mogelijk de finish te bereiken. Afhankelijk van de moeilijkheidsgraad van het probleem kan het voor sommige lopers langer duren om het doel te bereiken dan voor anderen.

Via dagelijkse stand-ups kunnen leden kort hun voortgang, behoeften en plannen vermelden. In het geval dat iemand de finish bereikt, kan diegene teruggaan naar de rugzak en een ander probleem uit de wekelijkse sprintdoelen oppakken.

Zodra de huidige sprint ten einde loopt, hebben we een evaluatiemoment zodat de hopelijk behaalde doelen kunnen worden besproken. Bovendien biedt dit de mogelijkheid om doelen voor de volgende sprint te definiëren op basis van de input van projectmanagers en stakeholders.”

Gezien de tijdgevoeligheid van Agile projectmanagement is het niet altijd haalbaar om te wachten tot iedereen zijn opdrachten heeft voltooid. Als er taken overblijven, is het belangrijk om uit te zoeken of er iets is dat de voortgang tegenhoudt. Moeten we meer mensen aan de taak toewijzen? Of wordt verwacht dat deze taak meerdere sprints in beslag zal nemen? Afhankelijk van de evaluatie van de productmanager en stakeholders kunnen er veranderingen worden aangekondigd voor de komende week.

Projectbeheersoftware
Om alle verschillende onderdelen bij te houden, is het essentieel om de juiste software te hebben. Deze tools helpen je bij het organiseren van de verdeling van taken uit je rugzak in een formaat dat een duidelijk overzicht geeft voor alle betrokkenen. Onder de vele projectmanagementsoftware opties gebaseerd op SCRUM, is JIRA een van de meest gebruikte. Teamleden kunnen hun voortgang handmatig bijhouden en bijwerken, wat handig is wanneer iemand een of twee keer een stand-up mist vanwege andere verplichtingen.