Why does poor software quality continue to plague enterprises of all sizes in all industries? Part of the problem lies with the process, rather than individual developers. This practical guide provides ten best practices to help team leaders create an effective working environment through key adjustments to their process.
As a follow-up to their popular book, Building Maintainable Software, consultants with the Software Improvement Group (SIG) offer critical lessons based on their assessment of development processes used by hundreds of software teams. Each practice includes examples of goalsetting to help you choose the right metrics for your team.
- Achieve development goals by determining meaningful metrics with the Goal-Question-Metric approach
- Translate those goals to a verifiable Definition of Done
- Manage code versions for consistent and predictable modification
- Control separate environments for each stage in the development pipeline
- Automate tests as much as possible and steer their guidelines and expectations
- Let the Continuous Integration server do much of the hard work for you
- Automate the process of pushing code through the pipeline
- Define development process standards to improve consistency and simplicity
- Manage dependencies on third party code to keep your software consistent and up to date
- Document only the most necessary and current knowledge
About the Author: Joost Visser is Head of Research at the Software Improvement Group (SIG). In this role, he is responsible for the science behind the methods and tools that SIG offers to measure and master software. Joost also holds a position as professor of Large Scale Software Systems at Radboud University Nijmegen. He has obtained his PhD in Computer Science from the University of Amsterdam and has published over 100 papers on topics such as generic programming, program transformation, green computing, software quality, and software evolution. Joost considers software engineering as a sociotechnical discipline and he is convinced that software measurement is essential for development teams and product owners to thrive.
Sylvan Rigal works as a software quality consultant at SIG since 2011 and is advising clients on managing their IT since 2008. He helps clients achieve lower software maintenance costs and enhanced security by prioritizing improvements in software ix design and development processes. He holds a MSc in international business from Maastricht University, The Netherlands (2006). As an active member of SIG's software security team, Sylvan trains consultants on analyzing software security risks. When he is not assessing technical health of software, he is training Brazilian jiu jitsu, enjoying Amsterdam's restaurants or traveling Asia.
Gijs Wijnholds joined the Software Improvement Group in 2015 as a software quality consultant in public administration. He helps clients get in control of their software projects by advising them on development processes and translating technical risks into strategic decisions. Gijs holds a BSc in AI from Utrecht University and a MSc degree in Logic from University of Amsterdam. He is an expert on Haskell and mathematical linguistics.
An all-round expert in software engineering and software quality, Zeeger Lubsen started as consultant with SIG in 2008. Having worked as a web developer during his MSc-study at Delft University of Technology he found great revelation in learning about how to build high-quality software. In his role as consultant he now helps both non-technical managers and development teams to understand and grasp software. He finds that developing software is a creative and cultural activity, but also one that needs clear and objective guardrails to achieve realistic goals.