A few years ago I was lucky to be part of an Agile Transformation for the company I was working for at the time. I went through Scrum Master training where I picked up the basic principles of leading a Scrum Team. From there I was able to put these ideas into practice and try them out. We had Agile Coaches that helped us train our teams and give us input on how to best bring about the change we wanted.
The experience was a great one that I will always value. Over the course of two years of being a Scrum Master our team developed and learned a lot. I know I learned a great deal from the many things we tried with some success and some failures. All of that knowledge led me to write a book called Agile Basics in 60 Minutes. This book breaks down the basics of Scrum and details some issues you may encounter.
It seems now that the development paradigm has evolved to new levels. Teams are embracing other alternatives to attempt to deliver value faster. In a recent conversation with a development consultant he said, “late adopters are getting into agile development now. The next wave is applying lean manufacturing techniques to the rest of the “production line”. Visualizing and limiting inventory. Focusing on delays and buffers and aligning to the constraints in the whole system. Systems thinking is what has moved the focus to DevOps and Lean Startup.”
In discussing this topic with a DevOps professional he mentioned how important automation is to creating an efficient group. There are so many options to automate the development cycle and releases that we need to leverage this at every step we can. One important step to begin automation on is the Quality Assurance process. Many companies have automated testing and deployments so that new changes can filter into environments effortlessly.
Technology workers have continued to borrow from the Lean Manufacturing approach. Lean Software Development originated from Mary and Tom Poppendieck when they wrote about taking Lean Manufacturing principles and modified them to work in the software development realm. Using seven principles to summarize the process:
- Eliminate Waste
- Amplify Learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build Integrity in
- See the whole
Scrum is an implementation of this process, but there are many more including Kanban and DevOps incorporates these principles as well. We will cover some of the basic principles of DevOps coming up. DevOps is one of the next generation of Lean Software Development methodologies.
We rarely want to be a late adopter so in this work will will cover some of the new ideas out in the world. We will start with some great lessons from the book the Phoenix Project, then get a basic understanding of what DevOps is and where it can be used. From there we will look at some new ideas that put this into action and companies that do these things. One of the interesting ones is how Spotify Teams work and structure behind them.