Auteur: Andre Boeters

Met continue verbetering is niets onmogelijk

Processen en software kunnen continu verbeterd worden. Maar heb je wel eens nagedacht over hoe je zelf continu beter kan worden? Het principe van iedere dag een stapje beter zorgt uiteindelijk voor grote resultaten. Dezelfde aanpak kan zowel worden toegepast op je eigen verbetering als op werkproces verbeteringen.

Continue verbetering stamt uit de oosterse filosofie. Door iedere dag een klein beetje beter te worden kun je uiteindelijk grote resultaten behalen.

Kaizen

Een veelgebruikte implementatie van continue verbetering in het bedrijfsleven is kaizen. Dit Japanse woord betekent positieve verandering. Het hangt sterk samen met de organisatorische aanpak lean. Bij een lean manier van werken worden alle mensen in de organisatie gestimuleerd om op zoek te gaan naar een manier om het werken te verbeteren en moeilijkheden en drempels voor succes weg te halen. Men gaat hierbij op zoek naar wat “waste” genoemd wordt. Waste zijn alle dingen die productiviteit in de weg kunnen staan. Een manier om lean te werken in de softwareontwikkeling is agile in een scrumteam.

De kaizen gedachte van de continue verbetering stroomt door al deze frameworks heen. Er horen een aantal principes bij:

  • Als je iedere dag verbetert haal je grote resultaten
  • Iedereen is verantwoordelijk voor verbetering
  • Analyse is belangrijk om te meten wat er verbeterd is

Lean (manufacturing) komt van oorsprong uit de productie industrie. Het is vooral ontwikkeld bij Toyota. In zo’n fabriek ligt het voor de hand dat je grote winst kunt behalen door kleine verbeteringen in een proces dat zich heel vaak herhaalt. Als je het proces verbeterd van het maken van een onderdeel dat je 100.000 keer maakt dan zal de winst aanzienlijk zijn. In een serviceorganisatie waar software gemaakt wordt werkt dat misschien anders. Via het werken in een scrumteam zal je toch ook veel verschillende keren hetzelfde doen in de vorm van user story’s of product backlog items. De inhoud zal veranderen maar de vorm is hetzelfde. Er wordt binnen het scrum framework, maar bijvoorbeeld ook binnen het scaled agile framework toegewerkt naar backlog items die qua grootte en complexiteit vergelijkbaar zijn, zodat de verbeteringsprocessen hier vat op kunnen hebben.

Kwaliteiteitscyclus van Deming

Zoals je het werken in een team en oppakken en afronden van product backlog items kunt verbeteren, zo kun je je eigen gedrag ook verbeteren. Hiervoor kunnen we terug gaan naar de originele cyclus van Deming die beschrijft hoe je processen kan verbeteren in plan-do-check-act.

continue verbetering

Plannen bestaat uit het identificeren van een situatie die verbeterd kan worden. Bij Do implementeer je het plan. Dan check je de resultaten en bij Act kun je blijven bijsturen. Dit kun je ook in je eigen leven gebruiken wanneer je bijvoorbeeld een taal wilt leren, wilt stoppen met roken of snoozen of beter wilt leren koken.

Bij de ontwikkeling van een kind zit het continu verbeteren automatisch ingebakken. Iedere dag worden er nieuwe dingen geleerd. Eerst met observaties en daarna met veel oefenen. En letterlijk met vallen en opstaan.

Het uitvoeren van verbeteringen

Soms is het erg makkelijk om een plan te bedenken, maar is de uitvoer ervan nog niet zo makkelijk. Er zijn ontelbare to-do lijstjes volgeschreven met taken die nooit zijn uitgevoerd. Een manier om dit uitstelgedrag aan te pakken nadat je een plan hebt gemaakt is door je ideeën in kleine stukjes te hakken en het vervolgens in zogenaamde pomodoro’s uit te voeren. Hierbij werk je 25 minuten en neem je dan 5 minuten pauze.

Volg de Deming cyclus als volgt. Breng in kaart wat je zou willen verbeteren en hoe je dat kunt verbeteren (plan). Bijvoorbeeld wil je je te laat komen voor vergaderingen aanpakken. Je kunt je gedrag aanpassen door bijvoorbeeld op tijd een alarm te laten klinken voor een volgende vergadering (do). Houdt bij hoe vaak je nog te laat komt voor vergadering (check). Het is dan ook handig om vooraf een meting gedaan te hebben. Stel je doelen SMART op zodat je ook weet of je ze bereikt hebt. Wil je bijvoorbeeld 100% op tijd zijn, of misschien wel 5 minuten van tevoren? Of wil je alleen een verbetering zien. Als laatste stap kun je nog bijsturen als je je doelen niet behaald hebt (act). Het is opgebouwd als cyclus omdat je altijd wel iets kunt verbeteren. Je kunt dus weer een nieuw verbeterplan opstellen.

Een valkuil van deze manier van verbeteren is dat het gericht is op kleine stapjes. Het is ook belangrijk om af en toe een stapje uit te zoomen en out-of-the-box te denken. Misschien is het in ons voorbeeld ook wel slim om naar het aantal vergaderingen in je agenda te kijken of andere maatregelen te treffen.

Dit principe kun je natuurlijk voor allerlei activiteiten in je leven toepassen. De belangrijkste tips zijn:

  • Met kleine stapjes kun je grote resultaten halen
  • Maak een plan en meet of je het behaald hebt
  • Er is altijd iets nieuws te verbeteren

 

2B4QA op de Nederlandse Testdag !!

Wij staan 20 oktober op de Nederlandse testdag, georganiseerd bij Windesheim in Zwolle. Als je meer wilt weten over ons Tornadomodel, kom dan naar de presentatie van Erik en Tobias . Je kunt Raldy en Matthijs vinden op de beursvloer om te horen wat wij voor jou kunnen betekenen.

 

Continuous Everything – najaarsevenement Testnet

 

Afgelopen woensdag bezochten we het testnet najaarsevent in Nieuwegein. Het thema was Continuous Everything, een verwijzing naar de richting waarin de IT sector zich ontwikkelt. Dit uit zich vooral in steeds korter wordende release cycles van software. Voor het testen betekent dat dit continue gedaan wordt. Immers, bij elke release wil men nog steeds weten of de functionaliteit nog werkt.

Naast onze belangstelling voor de nieuwste ontwikkelingen in ons vakgebied dreef ook een ander gegeven ons naar dit evenement: onze collega’s Erik Bits en Tobias Verhoog stonden op het podium met een allegorie over de overgang van de sequentiële wereld naar agile testing. Zo kregen we de mogelijkheid om vast te stellen of Tobias en Erik de “Ars Dicendi” ook zouden beheersen buiten de veilige contouren van ons 2B4QA kantoor.

Op mijn programma stond workshop waarin ik zou leren een Jenkins pipeline te maken. Jenkins is een platform waarop men aan continuous integration doet, vooral in combinatie met Git. Omdat ik al menig commitje en pull requestje heb gemaakt in Git maar geen idee had hoe dit samenwerkte met Jenkins, leek dit me een goede gelegenheid om daar eens wat inzicht in te verkrijgen. Nadat ik een bak pleur naar binnen had gewerkt om de nodige arbeidsvitamines te verkrijgen begon ik met mijn collega Sonny aan de cursus. Hoewel de cursus interessant was hadden we graag wat meer achtergrondinformatie gehad over de werking van continuous integration. Maar de procedurele kennis die we op hebben gedaan biedt ons voldoende basis om zelf eens een CI / CD pipeline op te zetten.

Na een stevige lunch begon het middagprogramma met een keynotespeaker die de relatie legde tussen het persoonlijke leven en werkleven in een CI / CD omgeving. Af en toe smeet hij daarbij ballen in het publiek waarvoor de reden me tot op de dag van vandaag nog steeds onduidelijk is. Na enkele bakken koffie en nog een presentatie over valkuilen bij de transitie naar continuous development, was eindelijk het moment aangebroken waar we voor komen: de presentatie van Tobias en Erik: “The Wizard of Oz.”

Hoewel ik niet over dezelfde retorische kwaliteiten beschik als Erik en Tobias, doe ik mijn best om de presentatie te omschrijven. Het verhaal voerde ons mee naar het magische “Land of Oz.” Dit verhaal geschiedde in het midwesten van Amerika, in de staat Kansas, waar het “saai vertoeven” was, aldus hoofdpersonage Dorothy (in navertelling door Erik Bits). Op een dag kwam er een tornado die haar huis in het land van Oz neersmeet en daarbij een heks plette. Dorothy ging vervolgens op queeste om de tovernaar te vinden die haar kon helpen om weer terug te komen in Kansas waarbij ze hulp kreeg van enkele sprookjesfiguren. Deze sprookjesfiguren hadden kennelijk allerlei persoonlijke problemen, en hoopten dat de tovenaar die problemen kan oplossen. Na vele avonturen kwamen ze bij de tovenaar aan, die tot verbijstering van de hoofdpersonages een flessentrekker bleek te zijn.

Tobias en Erik gebruikten het verhaal om het tornadomodel te beschrijven. Een model waarbij in het begin van de Agile Tornado er creative destruction onstaat van het oude: in het geval van de IT sector de problemen behorend bij het sequentiële model, zoals bureaucratie, lange time to market en een gebrek aan transparantie. In het geval van the Land of Oz wordt de slechte heks geplet en de gevangenen vrijgelaten. Een tornado zorgt dus voor een hoop ontregeling maar lost tegelijkertijd problemen op.

Hoe groter de tornado, hoe verder je zit op de mate van continuous integration (en agile werken). Wie de flessentrekker was in tornadomodel, is mij nog niet helemaal duidelijk geworden. Wellicht dat dit tijdens een volgende sessie wordt onthuld….

Ketenregie – Van idee tot werkende software

Op 14 juni was er een TestNetavond. Deze avond had als onderwerp Ketenregie. Mij trok dit aan aangezien ik in mijn opdracht in een team zit dat ook de keten overziet om zo de performance van het softwareproduct te verbeteren. Mijn eigen kennis van ketenregie was dan ook beperkt tot aan het vele regressietesten. De spreker Jos van Rooyen heeft mij met deze avond meer begrip gegeven over ketenregie. Daarnaast heeft hij ook een model als handvat aangereikt. Al met al was het een leerzame avond. Waarbij ik heb geleerd wat ketenregie is en hoe je dat zou kunnen toepassen.

Ketenregie

Aangezien ik me wat verder wilde verdiepen in ketenregie en het proces heb ik eerst eens wat begrippen opgezocht. Het eerste begrip is keten. Vanuit NORA (Nederlandse Overheid – Referentie Architectuur) komt het begrip keten neer op: “een samenwerkingsverband tussen (afdelingen binnen) organisaties die naast hun eigen doelstellingen, één of meer gemeenschappelijk gekozen (of door de politiek opgelegde) doelstellingen nastreven. Deze ketenpartners zijn zelfstandig, maar zijn ook afhankelijk van elkaar waar het gaat om het bereiken van de gezamenlijke doelstellingen.”

Nu het woord keten duidelijk is heb ik ketenregie opgezocht. Ensie geeft hier een uitleg: “Ketenregie is het besturen en beheren van logistieke ketens. Ketenregie omvat alle activiteiten die in dienst staan van het beheren van de gehele keten, van grondstof tot eindproduct.” Ook Jos van Rooyen geeft een uitleg over ketenregie: “Ketenregie is een professionele aanpak waarbij de stabiliteit, veranderbaarheid en performance van de keten wordt gemaximaliseerd. Dit wordt gerealiseerd door belemmeringen op te ruimen en ontwikkelmogelijkheden te identificeren en door te voeren.”

Nu ketenregie iets duidelijker is, rijst de vraag hoe je dit dan kan toepassen.

Waarom ketenregie toepassen?

In een groot bedrijf loopt de organisatie eigenlijk waterval. Directie heeft een plan. Architecten maken daarvoor het plaatje, ontwerpers delen het plaatje op en maken ontwerpen, ontwikkelaars bouwen 1 van de ontwerpen en testers testen dat.

Je kan wel geloven dat er dan veel communicatie verloren kan gaan. Allereerst zal het lastig zijn om door deze ketens van beneden naar boven te communiceren. Een ontwikkelaar kan bijvoorbeeld aan de hand van een ontwerp zien dat het (voorbeeld) niet gaat werken. Die zegt dit dan aan de ontwerper, deze zal het weer tegen de architect vertellen en die aan de directie. Komt hierdoor de oorspronkelijke tekst van de ontwikkelaar nog aan?

Dit is een voorbeeld van waarom ketenregie nodig is, ketenregie verbetert inefficiënte processen, de samenwerking in de keten en de communicatie van en het begrip voor product versus productie gereedheid.

Een gebrek aan ketenregie is dan ook vaak een gebrek aan overzicht van de keten. Mogelijke oorzaken hiervan zijn:

  • De toenemende fragmentatie, ketens worden langer waarbij de complexiteit ook toeneemt,
  • Een verandering in een stuk software kan in een keten lastiger traceerbaar zijn, de traceability wordt complexer,
  • Processen zijn inefficiënt ingericht,
  • Er is gebrek aan goede communicatie tussen partijen, dit kan binnen een bedrijf zijn maar ook tussen bedrijven (toeleverancier en ontvangende partij),
  • De kijk op het proces is erg beperkt, er wordt bijvoorbeeld alleen gefocust op de ICT,

Het model

Om ketenregie toe te passen zijn er volgens Jos van Rooyen 6 principes waaraan gehouden moet worden.

  1. Werk vanuit een visie,
  2. Organiseer de regie,
  3. Werk met alle mensen,
  4. Creëer ritme,
  5. Durf vanuit overzicht,
  6. Meet en borg.

Dit zijn simpele principes, ook om je aan te houden. In deze principes is meteen te zien dat er een overzicht van de keten wordt gecreëerd. Het model wordt hierdoor zo:

Een iteratief proces waaruit een visie spreekt en waardoor regie wordt gehouden, alle mensen betrokken zijn, ritme en overzicht gecreëerd worden en documentatie (meet en borg) wordt opgesteld. Een model om iedereen op en om het bedrijf tevreden te stellen en vooruitgang in het vooruitzicht te stellen.

 

 

Aan de slag met Postman, LiveCode en Agile risicoanalyse bij TestNet ZomerWorkshops 2017

Het was op 10 juli weer tijd voor het ZomerWorkshops event van TestNet. Ondanks dat het mijn verjaardag was ben ik naar Nieuwegein afgereisd, waar ik een aantal 2B4QA collega’s heb ontmoet en twee workshops heb gevolgd.

Testautomatisering voor Dummies

We begonnen de dag na het gebruikelijke kopje koffie in de ochtend met een workshop die beloofde “Testautomatisering voor dummies” helder te maken. Dit was een boeiende sessie over het gebruiken van de ontwikkeltool LiveCode als hulp bij het testen.

De noodzaak hiervoor werd beschreven door uit te leggen dat als je een onderdeel van het systeem wilt testen terwijl nog niet het hele systeem klaar is je dit soort tools kunt gebruiken als hulp. Ook wanneer een proces in het systeem bestaat uit veel stappen die nog niet allemaal af zijn kun je met een testtool al wel bepaalde onderdelen testen. We hebben in de workshop eerst Postman gebruikt om een service te testen en later zelf een tool gemaakt in LiveCode om meer verandering aan te kunnen brengen.

testautomatisering voor dummies

Zoals docent Rob Kuijt van Valori het uitlegde “op deze manier kun je ook alleen pagina 19 in een werkproces van 20 pagina’s testen”. Ik kan me erg goed vinden in het voorbeeld dat je een heel proces door moet om uiteindelijk een klein nieuw onderdeel te kunnen testen. Ik ben van mening dat het ook belangrijk is om een end-to-end test te doen voor nieuwe functionaliteit, maar het scheelt vaak veel werk en tijd om een groot deel van de test cases uit te voeren met een tool als Postman.

We zijn toen verder gegaan met uitleg over het gebruik van Postman. Postman is een API testtool waarmee je simpel gezegd een service kunt testen door een request in te sturen en een antwoord kunt ontvangen. Dit is dus erg handig als er een service veranderd of opgeleverd is, terwijl de front-end misschien nog niet beschikbaar is. Je kunt Postman gemakkelijk als app toevoegen aan Chrome.

De groep is toen onder leiding van Rob en Curd Klaassen verder gegaan met een volgende tool. LiveCode is een visuele ontwikkelomgeving waarbij je op een canvas een aantal elementen zoals knoppen en velden kunt toevoegen waarna je dan code toevoegt om te bepalen wat de elementen moeten gaan doen. Je maakt hierdoor snel zelf een applicatie. We hebben dezelfde functionaliteit als van Postman toegevoegd aan een nieuwe applicatie in LiveCode. We hebben hierbij een case gevolgd die ook na te lezen is op het blog van Valori.

We hebben bij deze workshop geleerd om de basics van Postman te gebruiken en een eerste applicatie in LiveCode te maken die wel direct bruikbaar is als testtool. De waarde van zo’n tool is dat je delen van een keten die nog niet opgeleverd zijn al wel kunt nabootsen om nieuwe functionaliteit te kunnen testen.

Agile Risico Analyse

Als tweede heb ik een workshop bijgewoond over Agile risicoanalyse door Gijs op den Beek en Thomas Veltman van Sogeti. Gijs had bij een klant een nieuwe manier van risico’s analyseren ontwikkeld en beoefend. Hierbij kun je op een agile manier risico’s per user story inschatten. Ik was hier zeer in geïnteresseerd omdat ik het lastig vind om risico’s bij een agile team onder de aandacht te brengen. Stakeholders vinden vaak alles belangrijk en willen alles “goed getest” hebben.

Gijs begon met een lange opfrissing van de agile principes en de rol van risico’s daarin. Via Kahoot hebben we een inventarisatie geprobeerd te doen van het gedeelte van het publiek dat in een agile omgeving werkt. We hadden helaas wat netwerkproblemen met de wifi van het congrescentrum. Na een inventarisatie door hand opsteken bleek dat minder dan de helft van de aanwezigen vond dat hij in een agile omgeving werkte. Veel aanwezigen werkten in een agile/waterval hybride omgeving.

We gingen verder met risicoanalyse door de risico’s van een vakantie in te schatten met de groep. Wat kan er misgaan en wat is de kans daarop? De formule risico = faalkans x schade passeerde de revue.

Voor een waterval project is het goed om een uitgebreide risicoanalyse vooraf te doen en vervolgens actiepunten uit te zetten voor de risico’s. Bij een agile werkwijze kun je tijdens de planning risico’s benoemen en acties definiëren. In de methode van Gijs gebruik je een soort risicopoker. Tijdens refinement kun je met verschillende aanwezigen ook de faalkans en de potentiële schade inschatten op een schaal van een tot drie.

We zijn hierna met een voorbeeld in groepjes aan de slag gegaan. Hierbij kwam de uitleg meer tot leven. We kregen verschillende teamrollen toebedeeld en hebben voor een vijftal user story’s de risico’s ingeschat. Hierbij merk je dat het handig is om eerst de faalkans en schade apart in te schatten, maar dat je later met je team ook in één keer het risico kunt inschatten en dat je nog later misschien wel het risico direct in de pokerpunten kunt meenemen. Dit was ook de ervaring van Gijs in zijn opdracht.

agile risico analyse

Er waren vragen vanuit de zaal over hoe je dit kunt implementeren. Door met het hele team risico’s te bespreken kun je de test strategie makkelijker bepalen, de test resources beter verdelen en ook al een aantal risico’s verminderen. Voor het beheersen van risico’s werd de ROAM methode uit SAFe genoemd. Het kost het team uiteindelijk ook steeds minder werk om de risico’s te benoemen. Ook het samenpakken van alle risico’s per story zorgt voor snelheid. Iemand vroeg nog naar de mogelijkheid om ook non-functionals te betrekken. Deze kunnen ook goed per project of product in een PRA besproken worden.

Aqua: agile improvement voor teams

Mijn collega Liset ging bij deze workshop aan de gang met de pijnpunten van een agile implementatie. Deze workshop was erg interactief. In groepjes van 5 werd er besproken wat de lastige punten zijn bij een agile implementatie en  wat het voor jou moeilijk maakt. Er werd ook gepraat over hoe jouw bedrijf agile verbeterd en wat je daarvan vind. Daarnaast had de spreker Huib Schoots van Improve een model gemaakt om in een agile werkomgeving een team te optimaliseren. In de groepjes hebben ze van dat model kunnen proeven.

Bijna iedereen heeft wel ervaring met de implementatie van agile bij een organisatie. Door dit met elkaar te delen kom je toch weer tot nieuwe inzichten. De spreker had ook veel energie waardoor je toch makkelijk meedoet en je ideeën deelt.

Internet on Wheels en BDD met Robots

Collega Sonny had zin in een dagje aan de gang met robots en is naar de workshop Internet on wheels van Parasoft en BDD met Robots van Bartosz gegaan. Bij internet on wheels moest er een robot door een doolhof geleid worden. Dat kon door via bluetooth opdrachten te sturen in python. Dit bleek erg lastig te zijn en het was niemand gelukt om de robot op die manier het einde van het doolhof te laten vinden. De robot kon ook bestuurd worden door sensors die erop zaten. Hiermee was het makkelijk om hem een kant op te laten gaan.

Ook in de sessie van Bartosz moest een robot door een doolhof geleid worden. Deze Mbot kun worden bestuurd door opdrachten in programmeertaal Scratch in BDD scenarios te geven. De geprogrammeerde scenarios zorgden met ingebouwde sensors ervoor dat de robot zijn weg kon vinden. Door de juiste commandos in te voeren en ook de juiste snelheid aan te houden was het Wall-e team van Sonny het snelste van de dag!

Afronding

Uiteindelijk liep de dag voor mij ten einde bij het dinerbuffet. We hebben met de aanwezige collega’s van 2B4QA nog even zitten napraten en grijpen het diner van TestNet ook altijd aan om samen te eten.

Contact

  • Telefoon

    0318 - 240 044

  • Email

    info@2b4qa.nl

  • KVK

    601.397.73

  • Postadres

    Cuneraweg 322
    3911 RT Rhenen

  • Bezoekadres

    Kerkewijk 31
    3901 EB  Veenendaal

2B4QA BV  (c) 2018