Scrum, a junior’s point of view

Stefano Farris is een junior ontwikkelaar in het Application Development-team. Een jonge professional op zoek naar de juiste en onjuiste antwoorden in het bestaan als consultant. Natuurlijk heb je technische kennis nodig, maar als junior moet je ook groeien in de processen die worden doorlopen tijdens development. Het eindresultaat is net zo belangrijk als de weg ernaartoe. 

“Wat ik in deze blogpost wil bespreken is hoe ik Scrum de afgelopen tijd heb ervaren en wat er door me heen gaat tijdens de verschillende Scrum-sessies. 

Sprintplanning – Aha, dit gaan we dus doen

Goed moment om inzicht te krijgen over wat er precies gaat gebeuren deze sprint! Hier worden de losse titels van de product backlog items (PBI) een stuk concreter.  Tijdens de refinement kan ik vragen stellen over de onderwerpen die tijdens een specifieke PBI aan bod komen. Hierbij beschouw ik iedere PBI die gerefinet wordt als iets dat ik zelf op ga pakken en wat ik daarvoor moet weten. 

Als er in de komende sprint gesproken wordt over deze PBI’s door andere mensen die deze hebben opgepakt zit het nog vers in mijn geheugen en kan ik makkelijker volgen waar het ook alweer over ging. 

Daily Scrum – afspraken maken met het team 

De Daily Scrum bereid ik voor mezelf altijd voor. Ik ga voor mezelf na wat ik de dag ervoor tijdens de stand-up heb verteld, wat er daadwerkelijk is gebeurd en wat ik plan om vandaag te gaan doen. Dat vat ik dan samen en waar nodig treed ik in detail. Het laatste doe ik vooral als ik met het team over een volgende actie of blokkade wil sparren. De Daily Stand-up is naar mijn mening ook een goed moment om hulp te vragen en een kort gesprek voor erna in te plannen. 

De Daily Stand-up zorgt voor de nodige transparantie naar je teamleden en het is ook een stukje verwachtingsmanagement. Na verloop van tijd zal ik steeds beter worden in het inschatten van de hoeveelheid tijd die ik nodig heb om mijn taken af te ronden. 

Mid Sprint Check-in – gaan we het sprintdoel halen?

Ik heb meestal een sprint van twee weken en de Mid Sprint Check-in valt hierin op de maandagmorgen van week 2 in de sprint. Kort gezegd brengt het mij in de ochtend na het weekend direct de nodige stress om zo snel mogelijk weer aan de slag te gaan. Er zijn uiteraard wat doelen die behaald moeten worden en daar hebben we de komende 5 dagen de tijd voor. Na de afschakeling van het weekend is het ook fijn om van iedereen een korte samenvatting te horen en te weten wat de huidige stand van zaken is voor de sprint en de daarop gebaseerde verwachtingen voor de komende week. 

Sprint Review (demo) – 10 minutes of Fame

De sprint review zie ik als een podium waar ik mijn team en andere belanghebbenden kan laten zien wat ik ontwikkeld heb en hoe het nou echt werkt. Ik hou er bij de voorbereiding rekening mee dat ik vragen kan krijgen over bepaalde keuzes die gemaakt zijn tijdens de ontwikkeling, maar je kunt niet voor alles plannen. En dat is ook maar goed want af en toe komen er vragen uit het niets die je opnieuw aan het denken zetten en uiteindelijk voor een beter eindresultaat zorgen. Ik hanteer zelf een presentatiestijl met “soepele” overgangen naar daadwerkelijke demonstraties, wellicht iets dat is blijven hangen van het presenteren tijdens mijn studie, maar ik vind het een fijne manier van voorbereiden/ informatie delen. 

Retrospective – wat heb je nu weer fout gedaan 

De retrospective zie ik als mijn persoonlijk getimeblockt reflectiemomentje, ook al gaat deze vooral over wat je als team beter wel of niet had kunnen doen en wat in de toekomst verbeterd kan worden… Stiekem is dit ook het moment waarop ik genadeloos naar mijn eigen bijdrage kijk. Door eerlijk te zijn kom je tijdens de retrospective het verste en het zorgt er ook voor dat je een diepere band schept met het team waarbij je “het aandurft om je gebreken bloot te leggen”. 

Als ik kritieke reflectiepunten van teamleden hoor, ga ik bij mezelf ook na of ik hetzelfde kan verbeteren (spoiler: meestal wel). 

Scrum en de sessies die erbij horen vind ik een hele fijne en geordende manier van werken. Het is flexibel genoeg om bijgesteld te worden aan nieuwe (plotselinge) informatie, maar geeft op hetzelfde moment ook houvast in je doen en laten. Als je hierbij ook nog tools als Azure Devops of Jira gebruikt die deze werkwijze ondersteunen, heb je veel handige dingen tot je beschikking waarbij ik langzaam denk dat ik niet meer zonder kan/ wil.  

Ik daag je uit om de komende Sprint vanuit mijn perspectief te bekijken. Ik hoor graag het resultaat!” 

Meer weten over werken met scrum? Neem dan contact op

Gebruik van C# in web development?

Onze software developer Nino van Laar vraagt zich af waarom de programmeertaal C# niet vaker wordt gebruikt bij het ontwikkelen van webapplicaties. Hij neemt je tijdens zijn zoektocht mee naar het antwoord: 

“Een analyse van alle openbare GitHub repositories toont aan dat C# al enkele jaren een stabiele lijn toont op het percentage van gebruik binnen de repositories, variërend tussen 3 en 4% (Zapponi, 2022). Ontwikkelaars gebruiken C# voor een breed scala aan projecten zoals Windowsapplicaties, games en web development.  

Weinig websites gebouwd in C# 

Aangezien C# meer dan 20 jaar bestaat, is er veel documentatie en expertise aanwezig die geraadpleegd kan worden voor snelle en adequate ontwikkeling. Desondanks is het percentage websites wat gebruik maakt van C# als ontwikkelcode slechts 8% (W3Techs, 2022). De meeste websites blijven geprogrammeerd in PHP waardoor deze bij uitstek de populairste code is om te gebruiken in webdevelopment.

Hierbij rijst dan ook de volgende vraag: ‘Waarom wordt C# nog niet grootschalig ingezet voor de ontwikkeling van webapplicaties?’ 

Ontwikkelen van webapplicaties

C# is een moderne, object georiënteerde programmeertaal ontwikkeld door Microsoft. Het stelt ontwikkelaars in staat om veilige en robuuste applicaties te ontwikkelen onder het .NET platform. De ontwikkeling van webapplicaties in C# gebeurt doorgaans in het ASP.NET framework, welke is gebouwd op het bekende .NET framework. ASP.NET voegt enkele belangrijke functionaliteiten toe aan .NET die nodig zijn voor het ontwikkelen van webapplicaties, zoals:

  • Een basis framework voor het verwerken van web requests in C# 
  • Een web-page templating syntax, beter bekend als Razor, waarmee dynamische webpagina’s kunnen worden gebouwd door het gebruik van C#
  • Libraries voor veelvoorkomende websites zoals een model, view, controller (MVC) 
  • Een authenticatiesysteem waarin libraries, een database en templatepagina’s zijn opgenomen voor het verwerken van logins. Hiernaast is het eenvoudig om multifactorauthenticatie en externe authenticatie in te stellen 
  • Editor extensions om eenvoudig syntax highlighting, code completion en andere specifieke functionaliteiten in de IDE naar keuze te krijgen

C# steeds populairder 

Langzaam maar zeker wint C# aan populariteit bij ontwikkelaars voor web development. Dit komt mede door het openstellen van de framework code op Github. Iedereen kan de code nu inzien, reviewen, aanpassen en/of aanvulling doorvoeren op de bestaande code.  

Hierdoor groeit er een community die steeds actiever wordt in de doorontwikkeling van ASP.net. Verbeteringen en bugfixes laten daardoor minder lang op zicht wachten en worden regelmatige vrijgegeven. 

Support op meerdere platforms

Een ander speerpunt om C# te gebruiken is de cross-platform support. Het framework is gebouwd om alleen op Windows te werken maar applicaties en hulpmiddelen ontwikkeld met behulp van .NET kunnen eenvoudig op andere platforms werken zoals macOS en Linux. Visual Studio, de IDE ontwikkeld door Microsoft, geeft gebruikers hierdoor de kans webapplicaties op elk operating system te ontwikkelen en in gebruik te nemen.  

Aangezien ASP.NET verder gebouwd is op .NET hebben ontwikkelaars ook direct voordelen bij onder andere: 

  • Automatisch geheugenmanagement 
  • Cross-platform architectuur 
  • Package management
  • Garbage collection 
  • Asynchroon programmeren 
  • Eenvoudige ontwikkeling van MVC-webapplicaties en RESTful API’s 

Razor syntax: makkelijk te leren

ASP.NET maakt gebruik van zijn eigen markup syntax voor het embedden van .NET code in webpagina’s. Hiervoor gebruiken zij de Razor syntax. Deze syntax, ontwikkeld in 2010, is een vereenvoudigde syntax die eenvoudig te leren is als beginner en meer productiviteit brengt bij een expert. Een Razor webpagina bestaat uit HTML en Razor code. Wanneer een server een request krijgt om een pagina te laden zal eerst de Razor code uitgevoerd worden om vervolgens de HTML aan te genereren en terug te sturen naar de gebruiker.  

Er is hierbij een grote overeenkomst te vinden met PHP, waarbij PHP-pagina’s bestaan uit PHP en HTML en op dezelfde manier op de server worden gegenereerd. Ontwikkelaars met C# ervaring zullen dan ook eerder uit te voeten kunnen met de Razor syntax dan de PHP-syntax.

PHP blijft koploper

PHP vertoont ontzettend veel overeenkomsten met ASP.NET in combinatie met Razor bestanden. Beide programmeertalen kunnen embedded worden in de HTML-code, zijn cross platform in te zetten en zijn op basis van performance aan elkaar gewaagd.  

Toch blijft PHP de koploper in de strijd om populairste programmeertaal voor webapplicaties. Dit komt met name door onderstaande punten: 

  • Vanwege de populariteit is er een enorme community ontstaan waarbij veel ontwikkelaars zich hebben opgewerkt tot specialist 
  • Er is een grote database vol referenties en educatief materiaal 
  • PHP ondersteunt vrijwel iedere database 
  • Er is een grote collectie aan open-source add-ons 
  • De hosting van een PHP-website is doorgaans goedkoop 
  • PHP is eenvoudig te leren

Voor zowel PHP als C# zijn er dus voor- en nadelen die het ontwikkelproces dan wel vereenvoudigen als bemoeilijken. Maar waarom heeft C#, en in het bijzonder ASP.NET, nog zo’n kleine marktwaarde in de websites?

Overstap naar ASP.NET

Het antwoord hierop lijkt vrij voor de hand liggend. Tot nog toe was ASP.NET een framework dat enkel gericht was op het ontwikkelen van webapplicaties voor een Windows machine. Sinds 2016 is ASP.NET Core uitgekomen waarmee deze restrictie van Windows verdween. Het lijkt er dan ook op dat het grote publiek nog niet de overstap heeft gemaakt naar C# vanuit de meer populaire webontwikkelmethodes zoals PHP. De verwachting is dat steeds meer bedrijven, zeker vanwege de release van ASP.NET Core, de overstap naar ASP.NET overwegen en zullen nemen.

PHP versus C#

Persoonlijk heb ik in zowel PHP als C# geprogrammeerd. Als beginnend programmeur is PHP een ontzettend eenvoudige taal om te leren. Simpele websites kunnen op deze manier in een handomdraai worden gemaakt. Het leren van C# vergt wat meer inspanning en duurt dan ook langer om daadwerkelijk te kunnen gebruiken.  

Vanwege de object georiënteerde structuur binnen .NET is het eenvoudiger om code te differentiëren dan in PHP. Een persoonlijke voorkeur gaat hiervoor dan ook uit naar C#. Waar PHP zich behoudt tot een programmeertaal voor webapplicaties kan het leren van C# de horizon verbreden en de stap naar andere ontwikkelmethodes binnen .NET vereenvoudigen.”