Development

Software-ontwikkeling
Kwaliteit software wordt langzaam maar zeker beter

Kwaliteit software wordt langzaam maar zeker beter

Verschillende oorzaken: minder code per systeem, gebruik van lowcode en inzet van geautomatiseerde tools en werkprocessen.

© CC0
11 oktober 2019

Verschillende oorzaken: minder code per systeem, gebruik van lowcode en inzet van geautomatiseerde tools en werkprocessen.

De kwaliteit van softwarecode wordt steeds beter. Volgens de Software Improvement Group, dat dit jaar voor het eerst publiceert over hun jaarlijkse benchmark op hun database met 25 miljard regels code, neemt de kwaliteit van softwarecode langzaam maar zeker toe.

Daartoe zijn verschillende redenen, waarvan een aantal belangrijke zijn: systemen bevatten minder code, gebruik van andere technologie bijvoorbeeld lowcode en bpm en de inzet van geautomatiseerde tools en werkprocessen.

De kwaliteit van softwarecode groeide, volgens de meetmethode van SIG, van een gemiddelde van 3,1 sterren in 2015 naar een gemiddelde van 3,4 sterren in januari 2019. Dat lijkt een kleine groei, maar CEO Luc Brandts van SIG is positief. “In deze metingen zitten ook systemen die al tien jaar oud zijn. Softwarecode die tien jaar oud is, is typisch van mindere kwaliteit dan nieuwe softwarecode doordat er aan die oudere code steeds opnieuw geprogrammeerd is.”

Geen silver bullet

SIG adviseert om zo snel mogelijk de systemen met softwarecode van derde of vierde generatie software talen uit te faseren. De kwaliteit van de code van deze systemen komt vaak niet boven de drie sterren. Code die voortkomt uit low code of BPM-pakketten heeft meestal een hoge kwaliteit, bijna vier sterren. Volgens SIG is de low code ontwikkeling daarom een van de redenen dat de softwarekwaliteit omhoog gaat. Maar ook hier zijn uitdagingen. “We zien dat het belangrijk is dat hier aandacht is voor architectuur. Dat is noodzakelijk om de kwaliteit goed te houden. Zeker omdat minder ervaren programmeurs met deze pakketten werken. Low code is geen no code. Ook daar kun je als programmeur rare constructies maken”, zegt Brandts.

De afgelopen jaren is het aantal regels code per systeem verminderd. Een positieve ontwikkeling, vindt SIG. Kleinere systemen zijn makkelijker te onderhouden en, als nodig, makkelijker te vervangen. Microservices zijn een belangrijke oorzaak voor de afname van regels code. Maar dat is geen silver bullet, aldus Brandts. “De componenten van een systeem moeten wel met elkaar in balans zijn, component balance noemen we dat. Onlangs kwamen we een microservice tegen waarin 100 manjaren werk zat. Dat is geen microservice meer.”

Daarnaast was Brandts zelf nieuwsgierig in hoeverre strakkere softwareprocessen leiden tot betere softwarekwaliteit. Die relatie is er wel, maar niet eenduidig. “Je ziet ook minder goede softwarecode waar strakke processen worden gebruikt of goede code bij minder strakke processen. Dat is ook wel logisch voor programmeren in COBOL-systemen is een strak proces nodig, maar die code is niet van hoge kwaliteit. Terwijl er voor een nieuw systeem zonder goed proces wel goede code kan worden gemaakt. Toch is de vraag of dat laatste op de lange termijn ook goede code blijft.”

Vier sterren

Als softwarecode wordt ontwikkeld dan adviseert SIG makers om op een kwaliteit van vier sterren te mikken en dat vast te houden. “We zien dat hoe lager de kwaliteit van de software hoe hoger de kosten, bijvoorbeeld van onderhoud”, aldus Brandts. Bij het bepalen wat de kwaliteit van de code is, kijkt SIG naar verschillende meetpunten zoals de lengte van de code, de complexiteit binnen de code en of er veel duplicatie in de code wordt gebruikt. “Duplicatie zorgt ervoor dat code moeilijker te onderhouden is. Als er een kwetsbaarheid zit in gedupliceerde code komt die kwetsbaarheid snel op veel plekken voor en dat moet natuurlijk op al die plekken ook worden opgelost.”

Voor bedrijven is er niet een gouden methode die de kwaliteit van software naar een hoog niveau kan brengen. Dat verschilt per bedrijf en per ontwikkelteam. Een belangrijke factor om de kwaliteit van software naar een hoger niveau te brengen, is om de kwaliteit te gaan meten. “Dan moet het werk uiteraard nog gedaan worden. Onze research laat dat ook zien: continu meten van kwaliteit leidt aantoonbaar tot meetbaar betere software.”

Lees meer over Development OP AG Intelligence
1
Reacties
Stefan Houtzager 16 oktober 2019 13:02

Kwaliteit wordt niet alleen gedefinieerd door onderhoudbaarheid, voor eenieder zijn verschillende kwaliteiten van belang, en iedereen weegt ze anders voor verschillende applicatieonderdelen. Bijvoorbeeld performance, schaalbaarheid, flexibiliteit op allerlei niveaus. "SIG adviseert om zo snel mogelijk de systemen met softwarecode van derde of vierde generatie software talen uit te faseren.". Dat betekent dat veel low code leveranciers hun eigen software kunnen gaan herschrijven. Snelle rekenmodules in C uitfaseren en herschrijven in low code? Lijkt me geen goed plan. Complexe (soft) realtime mogelijkheden nodig in je applicatie? Speciale wensen voor de userinterface? Ga zo maar door.
Een paar jaar geleden was het sig zeer kritisch over low code. Sinds de overname door ? schijnt er een andere wind te waaien. Zie ook de commentaren bij https://www.glassdoor.nl/Reviews/Software-Improvement-Group-Reviews-E70…
over de cultuurverandering na de overname. Welke financieele belangen heeft het sig bij hun adviezen, in hoeverre is er sprake van belangenverstrengeling?
Tenminste low code leverancier mendix en de sig onderhouden zakelijke relaties.
Een voorbeeld van genoemde kritische houding tegenover low code in het verleden (2016): https://www.softwareimprovementgroup.com/blog/low-code-wave-future-blas… :
"4GL technologies created a strong dependency from its clients on the vendor. [..] This is also holds for Low Code vendors, but the dependency on the vendor is even stronger. In many cases, all or most of the tooling is only available online, and the applications themselves are deployed to the vendor’s cloud. While this offers many benefits, it also reduces flexibility. Using different tooling on the (visual) code is generally impossible, and hosting the application at a different provider is rarely an option. That may not be a problem today, but what if your favourite vendor suddenly hikes its prices, goes belly-up or discontinues the technology you use? [..] When considering to use a Low Code technology for a new application, follow these two steps:
[..] Typical poor fits are systems that you expect to grow large or be long-lived as are systems with large amounts of computation or algorithms. The lack of flexibility in deployment (only in the vendor’s cloud) may also be prohibitive depending on your requirements."
Min of meer terzijde een interessante discussie over software metrieken: https://www.computer.org/csdl/magazine/co/2017/05/mco2017050088/13rRUx0…

Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.