Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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


Published on

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.

Published in: Software
  • Login to see the comments

  • Be the first to like this

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

  1. 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. 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, Page 2 of 26
  3. 3. Software Improvement Group / PUBLIC AG AGILE? Page 3 of 26
  4. 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. 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. 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. 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. 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. 9. Software Improvement Group / PUBLIC What does ”sustainable” mean for software? Page 9 of 26
  10. 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. 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. 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. 13. Software Improvement Group / PUBLIC Ventouris a case of sustainable software development Page 13 of 26
  14. 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. 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. 16. Software Improvement Group / PUBLIC Maintainability of VSS in SIG benchmark Page 16 of 26
  17. 17. Software Improvement Group / PUBLIC Automated testing of VSS Page 17 of 26
  18. 18. Software Improvement Group / PUBLIC Future-proofness of VSS on a 10 year horizon Page 18 of 26
  19. 19. Software Improvement Group / PUBLIC How to empower agile teams to build sustainable software? Page 19 of 26
  20. 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. 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. 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. 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. 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. 25. Software Improvement Group / PUBLIC Page 25 of 26
  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 ( > Trainings and certifications available Page 26 of 26
  27. 27. GETTING SOFTWARE RIGHT Contact +31 64 63 63 866 @jstvssr
  28. 28. Software Improvement Group / PUBLIC Future-proof software starts today! Page 28 of 26