04. Agile development of sustainable software - Joost Visser - #ScaBru18

GETTING SOFTWARE RIGHT
Agile Development of Sustainable Software
The Ventouris Case
Prof. dr. ir. Joost Visser
Software Improvement Group & Radboud University Nijmegen
February 2018
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
Software Improvement Group / PUBLIC
AG
AGILE?
Page 3 of 26
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?
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
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
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
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
Software Improvement Group / PUBLIC
What does ”sustainable” mean for software?
Page 9 of 26
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
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
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
Software Improvement Group / PUBLIC
Ventouris
a case of sustainable software development
Page 13 of 26
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
Software Improvement Group / PUBLIC
Future-proofness
futureproofness
real-time data
security
external services
online availability
3rd party
dependability
maintainability
horizontal
scalability
flexibility
01
02
03 04
08 09 17
2322212018
11
12
13
14 15 19
05
06
10 16
07
Page 15 of 26
Source code
analysis
Security
inspection
Architecture
review
Cost
estimation
Software Improvement Group / PUBLIC
Maintainability of VSS in SIG benchmark
Page 16 of 26
Software Improvement Group / PUBLIC
Automated testing of VSS
Page 17 of 26
Software Improvement Group / PUBLIC
Future-proofness of VSS on a 10 year horizon
Page 18 of 26
Software Improvement Group / PUBLIC
How to empower agile teams
to build sustainable software?
Page 19 of 26
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
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
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
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
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
Software Improvement Group / PUBLIC Page 25 of 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
GETTING SOFTWARE RIGHT
Contact
+31 64 63 63 866
j.visser@sig.eu
@jstvssr
Software Improvement Group / PUBLIC
Future-proof software starts today!
Page 28 of 26
1 of 28

Recommended

Agile 2013: Pat Reed and I discussing Scrum and Compliance by
Agile 2013: Pat Reed and I discussing Scrum and Compliance Agile 2013: Pat Reed and I discussing Scrum and Compliance
Agile 2013: Pat Reed and I discussing Scrum and Compliance Laszlo Szalvay
1.4K views30 slides
SLBdiensten XP sessie: Windows XP End of Support by
SLBdiensten XP sessie: Windows XP End of SupportSLBdiensten XP sessie: Windows XP End of Support
SLBdiensten XP sessie: Windows XP End of SupportSLBdiensten
544 views20 slides
Mobile Workspaces Go Where You Go [Infographic] by
Mobile Workspaces Go Where You Go [Infographic]Mobile Workspaces Go Where You Go [Infographic]
Mobile Workspaces Go Where You Go [Infographic]Citrix
6.6K views1 slide
Top 3 Reasons to Deliver Web Apps with Application Virtualization by
Top 3 Reasons to Deliver Web Apps with Application VirtualizationTop 3 Reasons to Deliver Web Apps with Application Virtualization
Top 3 Reasons to Deliver Web Apps with Application VirtualizationCitrix
1.5K views6 slides
11 Steps to Tune Your Enterprise App Machine by
11 Steps to Tune Your Enterprise App Machine11 Steps to Tune Your Enterprise App Machine
11 Steps to Tune Your Enterprise App MachineMendix
833 views13 slides
Scrum and Compliance (2013) by
Scrum and Compliance (2013)Scrum and Compliance (2013)
Scrum and Compliance (2013)Laszlo Szalvay
1.7K views30 slides

More Related Content

What's hot

The Secrets of Design-Driven Enterprises by
The Secrets of Design-Driven EnterprisesThe Secrets of Design-Driven Enterprises
The Secrets of Design-Driven EnterprisesMendix
1.1K views10 slides
Security Strategies for Success by
Security Strategies for SuccessSecurity Strategies for Success
Security Strategies for SuccessCitrix
1.6K views9 slides
10 Reasons to Strengthen Security with App & Desktop Virtualization by
10 Reasons to Strengthen Security with App & Desktop Virtualization10 Reasons to Strengthen Security with App & Desktop Virtualization
10 Reasons to Strengthen Security with App & Desktop VirtualizationCitrix
2.7K views10 slides
SecureTech 2014: Risk, Business Continuity and Cybersecurity - A Resiliency ... by
SecureTech 2014:  Risk, Business Continuity and Cybersecurity - A Resiliency ...SecureTech 2014:  Risk, Business Continuity and Cybersecurity - A Resiliency ...
SecureTech 2014: Risk, Business Continuity and Cybersecurity - A Resiliency ...poore120
640 views21 slides
Future of Fintech - A Whitepaper by RapidValue by
Future of Fintech - A Whitepaper by RapidValueFuture of Fintech - A Whitepaper by RapidValue
Future of Fintech - A Whitepaper by RapidValueRapidValue
165 views13 slides
2015 Global Threat Intelligence Report by
2015 Global Threat Intelligence Report2015 Global Threat Intelligence Report
2015 Global Threat Intelligence ReportDImension Data
779 views2 slides

What's hot(19)

The Secrets of Design-Driven Enterprises by Mendix
The Secrets of Design-Driven EnterprisesThe Secrets of Design-Driven Enterprises
The Secrets of Design-Driven Enterprises
Mendix 1.1K views
Security Strategies for Success by Citrix
Security Strategies for SuccessSecurity Strategies for Success
Security Strategies for Success
Citrix1.6K views
10 Reasons to Strengthen Security with App & Desktop Virtualization by Citrix
10 Reasons to Strengthen Security with App & Desktop Virtualization10 Reasons to Strengthen Security with App & Desktop Virtualization
10 Reasons to Strengthen Security with App & Desktop Virtualization
Citrix2.7K views
SecureTech 2014: Risk, Business Continuity and Cybersecurity - A Resiliency ... by poore120
SecureTech 2014:  Risk, Business Continuity and Cybersecurity - A Resiliency ...SecureTech 2014:  Risk, Business Continuity and Cybersecurity - A Resiliency ...
SecureTech 2014: Risk, Business Continuity and Cybersecurity - A Resiliency ...
poore120640 views
Future of Fintech - A Whitepaper by RapidValue by RapidValue
Future of Fintech - A Whitepaper by RapidValueFuture of Fintech - A Whitepaper by RapidValue
Future of Fintech - A Whitepaper by RapidValue
RapidValue165 views
2015 Global Threat Intelligence Report by DImension Data
2015 Global Threat Intelligence Report2015 Global Threat Intelligence Report
2015 Global Threat Intelligence Report
DImension Data779 views
Student Mobile Workspaces Infographic by Citrix
Student Mobile Workspaces InfographicStudent Mobile Workspaces Infographic
Student Mobile Workspaces Infographic
Citrix4.6K views
12 Game Changing Ways to Mobilize Teaching and Learning by Citrix
12 Game Changing Ways to Mobilize Teaching and Learning12 Game Changing Ways to Mobilize Teaching and Learning
12 Game Changing Ways to Mobilize Teaching and Learning
Citrix1.8K views
Hi600 ch12_text_slides by ljmcneill33
Hi600 ch12_text_slidesHi600 ch12_text_slides
Hi600 ch12_text_slides
ljmcneill33152 views
End-User Computing Insights: A study of digital maturity by DImension Data
End-User Computing Insights: A study of digital maturityEnd-User Computing Insights: A study of digital maturity
End-User Computing Insights: A study of digital maturity
DImension Data2.1K views
Pulse 2013 - How to run a successful BYOD initiative by Chris Pepin
Pulse 2013 - How to run a successful BYOD initiativePulse 2013 - How to run a successful BYOD initiative
Pulse 2013 - How to run a successful BYOD initiative
Chris Pepin3.2K views
Velocis Presentations by Hitesh Patel
Velocis PresentationsVelocis Presentations
Velocis Presentations
Hitesh Patel636 views
Success Factors of FOSS Adoption by Alexei Fedotov
Success Factors of FOSS AdoptionSuccess Factors of FOSS Adoption
Success Factors of FOSS Adoption
Alexei Fedotov164 views
Windows Apps on Chromebooks: Deliver a Seamless Experience by Citrix
Windows Apps on Chromebooks: Deliver a Seamless ExperienceWindows Apps on Chromebooks: Deliver a Seamless Experience
Windows Apps on Chromebooks: Deliver a Seamless Experience
Citrix891 views
German IT Pros Survey: Network Complexity by SolarWinds
German IT Pros Survey: Network ComplexityGerman IT Pros Survey: Network Complexity
German IT Pros Survey: Network Complexity
SolarWinds1.4K views
Infoworld deep dive - Mobile Security2015 updated by Kim Jensen
Infoworld deep dive - Mobile Security2015 updatedInfoworld deep dive - Mobile Security2015 updated
Infoworld deep dive - Mobile Security2015 updated
Kim Jensen537 views
[Infographic]]Managing Assets and Endpoints by Symantec
[Infographic]]Managing Assets and Endpoints[Infographic]]Managing Assets and Endpoints
[Infographic]]Managing Assets and Endpoints
Symantec1.7K views

Similar to 04. Agile development of sustainable software - Joost Visser - #ScaBru18

Veracode Corporate Overview - Print by
Veracode Corporate Overview - PrintVeracode Corporate Overview - Print
Veracode Corporate Overview - PrintAndrew Kanikuru
144 views4 slides
Software Security by
Software SecuritySoftware Security
Software SecuritySue Ganguli
2 views47 slides
System Software Integration, Witekio by
System Software Integration, WitekioSystem Software Integration, Witekio
System Software Integration, WitekioWitekio
816 views16 slides
Windows DNA by
Windows DNAWindows DNA
Windows DNAijtsrd
57 views4 slides
Sdlc Essay by
Sdlc EssaySdlc Essay
Sdlc EssaySusan Myers
2 views42 slides
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments by
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPeter Marshall
809 views53 slides

Similar to 04. Agile development of sustainable software - Joost Visser - #ScaBru18(20)

Veracode Corporate Overview - Print by Andrew Kanikuru
Veracode Corporate Overview - PrintVeracode Corporate Overview - Print
Veracode Corporate Overview - Print
Andrew Kanikuru144 views
System Software Integration, Witekio by Witekio
System Software Integration, WitekioSystem Software Integration, Witekio
System Software Integration, Witekio
Witekio816 views
Windows DNA by ijtsrd
Windows DNAWindows DNA
Windows DNA
ijtsrd57 views
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments by Peter Marshall
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Peter Marshall809 views
Fortify Continuous Delivery by Mainstay
Fortify Continuous DeliveryFortify Continuous Delivery
Fortify Continuous Delivery
Mainstay554 views
Team MESA - Make Elderly Safe Again by James Neo
Team MESA - Make Elderly Safe AgainTeam MESA - Make Elderly Safe Again
Team MESA - Make Elderly Safe Again
James Neo69 views
Next generation software testing trends by Arun Kulkarni
Next generation software testing trendsNext generation software testing trends
Next generation software testing trends
Arun Kulkarni457 views
6 questions every enterprise must ask its low code vendor by WaveMaker, Inc.
6 questions every enterprise must ask its low code vendor6 questions every enterprise must ask its low code vendor
6 questions every enterprise must ask its low code vendor
WaveMaker, Inc.147 views
Building DevOps in the enterprise: Transforming challenges into organizationa... by Jonah Kowall
Building DevOps in the enterprise: Transforming challenges into organizationa...Building DevOps in the enterprise: Transforming challenges into organizationa...
Building DevOps in the enterprise: Transforming challenges into organizationa...
Jonah Kowall308 views
Software Testing For Software Development Lifecycle by Monroe Anderton
Software Testing For Software Development LifecycleSoftware Testing For Software Development Lifecycle
Software Testing For Software Development Lifecycle
Monroe Anderton2 views
IBM Rational AppScan Product Overview by Ashish Patel
IBM Rational AppScan Product OverviewIBM Rational AppScan Product Overview
IBM Rational AppScan Product Overview
Ashish Patel1.2K views

More from AgileConsortiumINT

Agile leadership Katie Taylor by
Agile leadership   Katie TaylorAgile leadership   Katie Taylor
Agile leadership Katie TaylorAgileConsortiumINT
312 views14 slides
Agile @SVB communication - Werner van Bastelaar by
Agile @SVB communication  - Werner van BastelaarAgile @SVB communication  - Werner van Bastelaar
Agile @SVB communication - Werner van BastelaarAgileConsortiumINT
208 views22 slides
3 Tasks of Communication in Agile Organizations - Marielle Roozemond by
3 Tasks of Communication in Agile Organizations - Marielle Roozemond3 Tasks of Communication in Agile Organizations - Marielle Roozemond
3 Tasks of Communication in Agile Organizations - Marielle RoozemondAgileConsortiumINT
109 views18 slides
Agile Portfolio Management Peter Coesmans by
Agile Portfolio Management   Peter CoesmansAgile Portfolio Management   Peter Coesmans
Agile Portfolio Management Peter CoesmansAgileConsortiumINT
163 views10 slides
Agile Leadership - Katie Taylor by
Agile Leadership - Katie TaylorAgile Leadership - Katie Taylor
Agile Leadership - Katie TaylorAgileConsortiumINT
174 views14 slides
02. Nuon Solar Team - #ScaBru18 by
02. Nuon Solar Team - #ScaBru1802. Nuon Solar Team - #ScaBru18
02. Nuon Solar Team - #ScaBru18AgileConsortiumINT
387 views34 slides

More from AgileConsortiumINT(20)

Agile @SVB communication - Werner van Bastelaar by AgileConsortiumINT
Agile @SVB communication  - Werner van BastelaarAgile @SVB communication  - Werner van Bastelaar
Agile @SVB communication - Werner van Bastelaar
AgileConsortiumINT208 views
3 Tasks of Communication in Agile Organizations - Marielle Roozemond by AgileConsortiumINT
3 Tasks of Communication in Agile Organizations - Marielle Roozemond3 Tasks of Communication in Agile Organizations - Marielle Roozemond
3 Tasks of Communication in Agile Organizations - Marielle Roozemond
AgileConsortiumINT109 views
07. The art of hosting - Johan Decoster - #scabru18 by AgileConsortiumINT
07. The art of hosting - Johan Decoster - #scabru1807. The art of hosting - Johan Decoster - #scabru18
07. The art of hosting - Johan Decoster - #scabru18
AgileConsortiumINT332 views
03. Agile workplace tasting - Francoise Bronner - #ScaBru18 by AgileConsortiumINT
03. Agile workplace tasting - Francoise Bronner - #ScaBru1803. Agile workplace tasting - Francoise Bronner - #ScaBru18
03. Agile workplace tasting - Francoise Bronner - #ScaBru18
AgileConsortiumINT329 views
06. Compound Agility - Colleen Johnson - #Scabru18 by AgileConsortiumINT
06. Compound Agility - Colleen Johnson - #Scabru1806. Compound Agility - Colleen Johnson - #Scabru18
06. Compound Agility - Colleen Johnson - #Scabru18
AgileConsortiumINT320 views
05. Zeal agile - Kim Oostvoghels - #ScaBru18 by AgileConsortiumINT
05. Zeal agile - Kim Oostvoghels - #ScaBru1805. Zeal agile - Kim Oostvoghels - #ScaBru18
05. Zeal agile - Kim Oostvoghels - #ScaBru18
AgileConsortiumINT259 views
01. Rethinking Agile Leadership - Andrea Provaglio - #ScaBru18 by AgileConsortiumINT
01. Rethinking Agile Leadership - Andrea Provaglio - #ScaBru1801. Rethinking Agile Leadership - Andrea Provaglio - #ScaBru18
01. Rethinking Agile Leadership - Andrea Provaglio - #ScaBru18
AgileConsortiumINT556 views

Recently uploaded

Quality Engineer: A Day in the Life by
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the LifeJohn Valentino
6 views18 slides
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Donato Onofri
860 views34 slides
tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides
WebAssembly by
WebAssemblyWebAssembly
WebAssemblyJens Siebert
51 views18 slides
Programming Field by
Programming FieldProgramming Field
Programming Fieldthehardtechnology
5 views9 slides
Generic or specific? Making sensible software design decisions by
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
6 views60 slides

Recently uploaded(20)

Quality Engineer: A Day in the Life by John Valentino
Quality Engineer: A Day in the LifeQuality Engineer: A Day in the Life
Quality Engineer: A Day in the Life
John Valentino6 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri860 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... by Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares12 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ5 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan5 views
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... by TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko... by Deltares
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
DSD-INT 2023 Simulation of Coastal Hydrodynamics and Water Quality in Hong Ko...
Deltares14 views
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs by Deltares
DSD-INT 2023 The Danube Hazardous Substances Model - KovacsDSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
DSD-INT 2023 The Danube Hazardous Substances Model - Kovacs
Deltares10 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx by animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm15 views
Ports-and-Adapters Architecture for Embedded HMI by Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
Burkhard Stubert21 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports by Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Dapr Unleashed: Accelerating Microservice Development by Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Miroslav Janeski10 views

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
  • 3. Software Improvement Group / PUBLIC AG AGILE? Page 3 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
  • 9. Software Improvement Group / PUBLIC What does ”sustainable” mean for software? Page 9 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
  • 13. Software Improvement Group / PUBLIC Ventouris a case of sustainable software development Page 13 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
  • 15. Software Improvement Group / PUBLIC Future-proofness futureproofness real-time data security external services online availability 3rd party dependability maintainability horizontal scalability flexibility 01 02 03 04 08 09 17 2322212018 11 12 13 14 15 19 05 06 10 16 07 Page 15 of 26 Source code analysis Security inspection Architecture review Cost estimation
  • 16. Software Improvement Group / PUBLIC Maintainability of VSS in SIG benchmark Page 16 of 26
  • 17. Software Improvement Group / PUBLIC Automated testing of VSS Page 17 of 26
  • 18. Software Improvement Group / PUBLIC Future-proofness of VSS on a 10 year horizon Page 18 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
  • 25. Software Improvement Group / PUBLIC Page 25 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
  • 27. GETTING SOFTWARE RIGHT Contact +31 64 63 63 866 j.visser@sig.eu @jstvssr
  • 28. Software Improvement Group / PUBLIC Future-proof software starts today! Page 28 of 26