In their book, “Accelerate – The Science of Lean Software and DevOps, Building and Scaling High Technology Organizations”, Nicole Forsgren, Jez Humble and Gene Kim came out with 24 key capabilities that drive improvements in software delivery performance. This is another great book on DevOps -following ‘The Phoenix Project’ and and “The DevOps Handbook”.
These capabilities are classified into five categories
Product and Process
Lean Management and Monitoring
Continuous Delivery Capabilities
Use version control for all production artifacts – Use of version control systems such as GitHub or Subversion for all production artifacts – application code, application configurations, system configurations, scripts for automating build etc.
Automate your deployment process – Deployment automation is the degree to which deployments are fully automated and do not require manual intervention
Implement Continuous Integration (CI) – CI is the first step towards continuous delivery. Code is regularly checked in, each check-in triggers a set of tests to discover serious regressions which are fixed immediately. The CI process creates canonical builds and packages that would be deployed and released.
Use Trunk Based development – Trunk based development is a predictor of high performance in software delivery. It is characterized by less than three active branches in the code repository; branches and forks having short lifetimes and application teams never having “code lock” periods where no one can check in code or do pull requests due to merging conflicts, code freezes or stabilization phases.
Implement test automation – Test automation is a practice where software tests are run automatically continuously through out the development process. Developers should be primarily responsible for creation and maintenance of automated test suites.
Support test data management – Test data requires careful maintenance and effective practices include having adequate data to run your test suite, ability to acquire necessary data on demand, ability to condition your test data and data not limiting to the amount of tests you run.
Shift left on security – Integrating security into the design and testing phases of the software development process is key to driving IT performance. This includes conducting security reviews of applications, using preapproved security libraries and packages and testing security features.
Implement Continuous Delivery (CD) – CD is a development practice where software is in a deployable state through out its lifecycle and the team prioritizes keeping the software in a deployable state over working on new features. The system can be deployed to production at any time, on demand.
Use a loosely coupled architecture – This affects the extent to which a team can test and deploy their applications on demand without requiring orchestration with other services. Having a loosely couple architecture allows teams to work independently and enable them to work quickly and deliver value to the organization.
Architect for empowered teams – Architects should collaborate closely with their users, engineers who build and operate the system and help them achieve better outcomes and provide them with the tools and technologies that will enable the outcomes.
Product and Process Capabilities
Gather and implement customer feedback – Organizations actively and regularly seeking customer feedback and incorporating them into the design of their products is key to better software delivery performance
Make flow of work visible through the value stream – Teams should have a good understanding of and visibility into the flow of work from the business through to the end user.
Work in small batches – Having work decomposed into small features allow for rapid development – this enables shorter lead times and faster feedback loops
Foster and enable team experimentation – This is the ability of developers to try out new ideas and create and update specifications during the development process without seeking approval from outside the team.
Lean Management and Monitoring capabilities
Have a lightweight change approval process – Having a light weight change approval process based on peer review produces superior IT performance than using external change approval boards
Monitor across application and infrastructure to inform business decisions – Use data from application and infrastructure monitoring tools to take action and make business decisions
Check System Health proactively – Monitor system health, using threshold and rate of change warnings to enable teams to preemptively detect and mitigate problems
Improve processes and manage with WIP limits – Used effectively, WIP limits drives process improvement, increases throughput and makes constraints visble in the system
Visualize work to monitor quality and communicate – Visualizing work has been shown to contribute to improved software delivery performance
Support a generative culture (Westrum Model) – this entails good information flow, high cooperation and trust and a conscious enquiry.
Encourage and support learning – Learning culture is essential for continued progress and improvement. How the organizations treats learning is key – as a cost or as an investment.
Support and encourage collaboration between teams – This reflects how well teams, which have traditionally been siloed, interact in development, operations and information security.
Provide resources and tools to make work meaningful – being empowered to exercise skills and judgement in doing the work which is meaningful and challenging.
Support or embody transformational leadership – Transformational leadership supports and amplifies the technical and process work that is so essential in DevOps. This consists of vision, intellectual stimulation, inspirational communication, supportive leadership and personal recognition.
In their new book, “Humble Leadership – The Power of Relationships, Openness and Trust” , Edgar Schein and Peter Schein talk of new approaches to leadership which are based more on personal relationships rather than a transactional role relationships.
They talk of 4 levels of relationships that are generally accepted in society and that great leaders exhibit qualities of openness, trust, empathy to being emotionally intimate relationships.
* Level Minus 1
Total impersonal domination and coercion.
* Level 1
Transactional role and rule-based supervision, service and most forms of professional helping relationships.
Interactions are routine and there are low levels of personal investment
* Level 2
Personal, cooperative, trusting relationships as in friendships and effective teams
* Level 3
Total mutual commitments
This book is a great read for any one who intends to build quality relationships at work. Here is a link to a video where Edgar Schein talks more about Humble Leadership – https://www.youtube.com/watch?v=6wJaNKIALLw
This is a brief summary of “Enterprise Agility – Being Agile in a Changing World” by Sunil Mundra. Pretty comprehensive book covering the need for Enterprise Agility and different aspects of Enterprise Agility – Mindset and culture, Leadership, Organization structure, process, people, technology, governance and customer. Enterprises are considered as a living system and Complex Adaptive Systems are dealt with at length. This is a great book to understand the different aspects of Enterprise Agility.
This is a brief summary of “Kanban Maturity Model:Evolving Fit for Purpose Organizations”. As David Andersen and Teodora Bozheva say, the purpose of the Kanban Maturity Model is to help organizations relief from overburdening, deliver on customer expectations, predictable outcomes and survivability. Kanban Maturity Model bases itself on the 5 levels of CMMI – but borrows a lot of concepts from Lean/TPS, Real World Risk Institute, Mission Command and Maturity Model of Jerry Weinberg.
The Kanban Maturity Model architecture rests on two dimensions – Maturity Levels on the Vertical and the Kanban Practices on the Horizontal.
The Six Practices are Visualize, Limit WIP, Manage Flow, Make Policies Explicit, Implement Feedback Loops, and Improve Collaboratively and Evolve Experimentally.
Having been in Agile and Kanban coaching for a few years, I feel this book is pretty comprehensive in terms of assessing organizations at different maturity levels and what is needed for organizations to get to the next level. This is a very brief summary of the book – the book is a must read for Kanban coaches.
Mary Lynn Manns and Linda Rising, in their new book “More Fearless Change” have come out with an excellent sequel to their first book “Fearless Change” – a collection of tactics and strategies to make change happen in an organization. As the authors say, this book is not a recipe for change but a collection of patterns which will provide ideas to change the mindsets and behaviors of people involved in change in organizations . Their first book had a set of 49 patterns and their second had 15 patterns.
“The Coaching Habit:Say Less, Ask More and Change the way you Lead Forever” by Michael Bungay Stanier is a great read for Coaches in asking the right questions, which builds curiosity and get the most out of a Coaching conversation. The Seven questions are:
What’s on your mind?
And what else?
What is the real challenge here for you?
What do you really want?
What do you want from me?
What could be being fully committed to the idea look like?