Ventouris is a 12-year old product fully developed and maintained using agile and XP practices. Demonstrated sustainable agility, plus quality commendation from external auditors confirming compliance to regulatory requirements, very limited technical debt and high maintainability. The result of a partnership between 8 employer’s social security competitors collaborate through the scaling of agile teams.
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
04. Agile development of sustainable software - Joost Visser - #ScaBru18
1. GETTING SOFTWARE RIGHT
Agile Development of Sustainable Software
The Ventouris Case
Prof. dr. ir. Joost Visser
Software Improvement Group & Radboud University Nijmegen
February 2018
2. Software Improvement Group / PUBLIC
12 million
professional software developers
write
120 billion
lines of code per year
of which
15%
needs to be changed each year
Is the rapid digitalization of our modern information society sustainable?
Image by Tom Patterson, www.shadedrelief.com.
Page 2 of 26
4. Software Improvement Group / PUBLIC
Traditional versus Agile
Welcome changing
requirements
Build projects
around teams
Business and IT work
together
Frequent face-to-
face communication
Self-organizing, self-
optimizing teams
Architecture and
design emerge
Fix requirements early
Assign people to
projects
IT works for the
business
Documentation and
reporting
Management control
Up-front design
The Agile Manifesto, 2001
Does Agile
development yield
sustainable
software?
Is Agile software
development
sustainable?
5. Software Improvement Group / PUBLIC
1 Software Improvement Group
2 What does “sustainable” mean for software?
3 Ventouris: a case of sustainable software development
4 How to empower agile teams to build sustainable software?
5 Outlook
Page 5 of 26
6. Software Improvement Group / PUBLIC
Prof. dr. Joost Visser
CTO at SIG
• Professor of “Large-scale Software Systems” at Radboud University
• Member of advisory group on Cyber Security education and research
• Author of 100+ publications on software quality and related topics
Introductions
Software Improvement Group
IT Management Advisory and Measurement Lab
• ISO 25010 software product inspections
• ISO 17025 lab analyses 25 million lines of code each week
• Translate technical findings into actionable recommendations
Page 6 of 26
7. Software Improvement Group / PUBLIC
SIG covers all domains where software is key
Some clients
Some numbers
190
supported technologies
9,400,000,000
lines of code in benchmark
2,500
systems monitored
Page 7 of 26
8. Software Improvement Group / PUBLIC
How can developers be guided to build maintainable software?
Educational material and tools
Assessments
Support risk-based
decision making with in-
depth analysis of your
software
Inspections
Profit from regular
checks – security,
reliability, portability,
performance, usability
Monitoring
Have a grip on quality,
architecture, and
productivity, at all times
IT Due Diligence
Secure your investment
by upfront identification
of technology risks
Developer Support
Facilitate developers to
deliver top
achievements
R&D
Support development,
adoption of advanced
software engineering
techniques
Page 8 of 26
10. Software Improvement Group / PUBLIC
Software is the DNA of our society and our businesses
Invisible to the naked eye, but predetermines where
information flows and how things move
See: “How does your software measure up?
Mastering the DNA of our information society”,
Joost Visser, Radboud University
Evolution hinders further evolution
“Evolution is necessary but leads to structural erosion, making
evolution more difficult and ultimately infeasible.”
See: “The software evolution
paradox”, Arie van Deursen, TU
Delft.
Evolutionary pressure is mounting
Increasingly, software is the differentiating factor in a
competitive global market with disruptive agents
Survival requires rapid evolution
Adapt to changing needs, or become obsolete
11. Software Improvement Group / PUBLIC
Sustainable software
For Software:
Sustainable
=
Evolvable
=
Maintainable
Software
Product Quality
ISO/IEC 25010
Functional
suitability
Portability
Maintain-
ability
Security
CompatibilityReliability
Performance
efficiency
Usability
continuous change
Page 11 of 26
12. Software Improvement Group / PUBLIC
SIG Quality Model • Maintainability
Operationalization of ISO 25010 (was: ISO 9126)
The sub-ratings are aggregated to an overall
maintainability rating,
where HHHII is market average.
Analysability
Volume Unit sizeDuplication Unit
complexity
Module
coupling
Unit
interfacing
Component
balance
Component
independence
Modifiability
Testability
Modularity
Reusability
First published as “A practical model for
measuring maintainability”, Heitlager, Kuipers,
Visser, QUATIC 2007.
Most
Influential
Paper
Source code measurements are aggregated in
statistically sound “quality profiles” and then rated on a
calibrated scale from HIIII to HHHHH.
Page 12 of 26
14. Software Improvement Group / PUBLIC
The Ventouris case
Ventouris
> Automated administration for 8 Belgium social security funds for independent professionals and companies
> Calculation and collection of social security contributions, payment of child benefits, debtor control, …
Ventouris Sociaal Statuut (VSS)
> Important system within cluster, exists in current form since 2005
> Developed by Cegeka, using Agile software development methods. Cross-functional team of 36 people.
> Web-based. Java, JSF, Angular.
Question to SIG (December 2016)
> Determine the maintainability, security, future-proofness of VSS
> 23 detailed questions
Page 14 of 26
19. Software Improvement Group / PUBLIC
How to empower agile teams
to build sustainable software?
Page 19 of 26
20. Software Improvement Group / PUBLIC
How can Agile teams be empowered to build sustainable software?
Product – What is the quality of the software that the team produces?
• Guidelines for high-quality software
• Measure compliance, preferably at each commit
Process – What is the quality of the team’s software production process
• Best-practices for effective software development
• Measure compliance, preferably at each sprint review
Notes
• Benchmarked
• Actionable for the team
• Insightful for the sponsor
Page 20 of 26
21. Software Improvement Group / PUBLIC
10 best practices for effective software development
Measure
Derive metrics from your
measurement goals
Make Definition of Done
Explicit
Automate
Control Versions and Branches
Automate Tests
Use Continuous Integration
Automate Deployment
Organize
Separate Development, Test,
Acceptance, and Production
Standardize the Development
Environment
Manage Usage of Third-Party
Code
Document Just Enough
Building Software Teams, O’Reilly 2016
Page 21 of 26
22. Software Improvement Group / PUBLIC
Automate Tests
Why?
> Find root causes of bugs earlier with little effort
> Reduce the number of bugs
Write automated tests for anything that is worth testing
Page 22 of 26
23. Software Improvement Group / PUBLIC
10 guidelines for future-proof code
Code
Write small units of code
Write simple units of
code
Write code once
Keep unit interfaces
small
Architecture
Separate concerns in
modules
Couple architecture
components loosely
Keep architecture
components balanced
Keep your codebase
small
Way of
working
Automate tests
Write clean code
Building Maintainable Software, O’Reilly 2016
Page 23 of 26
24. Software Improvement Group / PUBLIC
10 guidelines for future-proof code
Code
Limit units to 15 lines of
code
Limit branch points per
unit to 4
Do not copy code longer
than 6 lines
Limit parameters per unit
to 4
Architecture
Avoid modules larger
than 400 lines of code
Hide classes from other
components, no cycles
Aim for 6-12 top-level
components
Keep codebase below
200,000 lines of code
Way of
working
Write automated tests
that cover all code
Stick to the seven
“boy scout rules”
Page 24 of 26
26. Software Improvement Group / PUBLIC
Wrap up
Sustainable agile software development
> Govern: ask for accountability
> Empower: set clear metric-based standards for product and process.
Increasing accountability of teams must go hand in hand with enabling them
Invitation
> Share the books with your teams
> Ask them to try out Better Code Hub (bettercodehub.com)
> Trainings and certifications available
Page 26 of 26