This is a brief summary of the book “Bottleneck Rules” by Clarke Ching. Thanks to Andy Carmichael, in our conversations during the Lean Kanban India Conference in Bangalore – we were discussing on Theory of Constraints and Systems Thinking where he recommended reading this book and the FOCCCUS formula for the Theory of Constraints.
A short read – but for those who are confused with the terms Exploit the Constraints, Subordinate the Constraints, Elevate the Constraints – the FOCCCUS formula for the Theory of Constraints is fairly straight forward.
This is a brief summary of Atomic Habits – An easy and proven way to build good habits and break bad ones by James Clear. An engrossing book as to how we build good habits – through the habit loop of Cue, Craving, Response and Reward. The 4 Laws of Good habits are – Make it Obvious, Make it Attractive, Make it Easy and Make it Satisfying and how to break bad habits – by Making it Invisible, Making it Unattractive, Making it Difficult and Making it Unsatisfying. Also gives a lot of examples to illustrate these laws. The book is an easy read and good one to have on your bookshelf.
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.
We had the Scrum Day conference in Chennai on 16th February 2018 –> https://www.scrumglobalevent.com/conference/Scrum/scrum-day-chennai. The theme of the conference was “Building Self Organized Teams”. The conference had a good line up of speakers – Venkatesh Rajamani, Preeth Pandalay, Kamal Tejnani, Padmapriya Devarajan, SRV Subrahmanian, Arunkumar Kandhasamy and Sundaresan Sethuraman. The talks were followed by a round of group discussion.
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.