A Relationship between Agile, DevOps, Lean and Quality
A shift in culture within software development organisations has been happening for some years now. Starting with a culture of developing quality products, to an agile culture being responsive to business needs, recently with a DevOps culture putting product into the hands of the end user as fast as possible and shrink the feedback loops to most recently a culture of innovation to develop new capabilities and survive.
What are the common theme between Scrum/Agile, Lean, DevOps and even Innovation? They all came about through collaboration and conversations to solve common problems that occur across related business domains that deliver value, i.e. they break down barriers and silos. They strive to define a means to deliver value more reliably and successfully. Above all they each come with a guiding set of principles and values; they all try to define a culture.
Values and Principles
Culture can be defined as “The ideas, beliefs, values, customs, and social behaviour of a particular people or society”. Cultural beliefs, at least for the various software development practices are embodied in the values and guiding principles and manifest through the activities and actions performed.
- Simplifying Processes & Technology
- Continuous Improvement
- Service Excellence
- Social (Soft or People skills)
These 6 Value are not new they’re often talked about in various contexts usually under different guises, subtle spin and not always together. Depending on how you want to categorise the principles of these different areas you could add or reduce the number of values further but these cover the essentials.
Perhaps the most interesting is when you also look at the principles of Total Quality Management and more so Quality Management Principles (the basis for the ISO 9000,ISO 9001 standards) and see there is a very close alignment to these 6 values and define a set of principles for developing Quality solutions.
As the principles of quality management describe the main values and beliefs for a good software development culture you can’t help wondering what got lost along the way that other practices were needed and developed. Perhaps the preponderance of waterfall for such a long time, migration to silo’d departments and quality becoming too synonymous with simply testing caused a departure.
Rather than try to implement the various values and principles of the different software development practices, developing niche subcultures, it seems that it would make more sense to simplify. Keep with one set of values and principles. Those for quality management appear to cover all the principles of other software development practices, focusing on quality would therefore seem to make most sense.
It’s not to say the more modern practices are not important, far from it. They are very much focused on, and the processes defined with them support, transforming specific aspects of the system for creation and development of software. If the principles of quality management define an umbrella set of values to develop great software, these other practices define some of tactics or processes to optimise and achieve quality and value. For example Agile focuses on bringing the business sponsor/stakeholder closer to development (aligning processes for Product Managers, Developers and QA), whereas DevOps focuses on bringing development closer to the end-user (aligning Development, QA and Operations). Together both work on separate parts of the value stream to bring the business sponsor closer to the end-user. Quality Management though is concerned with the whole system from idea to value.
Instead of trying to replicate many different overlapping “cultures”, values and beliefs, within the product and engineering departments take a step back. Look at defining the culture you would like to have and determine a path to get there. That is, define the values, principles and belief system and consider how people’s actions and behaviours will support these.
At the end of the day there is only one culture that matters: The Company Culture. Can you simplify, connect these with the values and principles for quality management and modern development practices, thereby keep with one culture. If you can the high tech values and principles can then be viewed as a subset of the greater company culture, are not conflict with the company culture and quality is baked in. Win-win.