How can companies and organizations build in innovation today beyond agile development? Agile methods are evolving from the basic Scrum and Kanban approaches to better scale and bring new ideas to market faster. This is the first in a series of two posts where I’ll be talking about where some of these next big changes are coming from.
Going Beyond Agile Basics and Benefits
Over the course of two years of being a Scrum Master, I personally learned a lot, and our team developed from the many things we tried with some success and some failure. As we went through the transition to Agile, our team was able to make changes more quickly and respond to business goals.
My experience as a Scrum Master led me to write a book called Agile Basics in 60 Minutes. It breaks down the basics of Scrum and details some issues you may encounter.
Each new idea comes with benefits and detractions; these can be helpful to educate your management team with your suggestions. As we look at these new ideas, pay close attention to which benefits you should share with your stakeholders.
It seems that the development paradigm has evolved to new levels. Teams are embracing alternatives in an attempt to deliver value faster. In a recent conversation I had with a development consultant about moving beyond agile, 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.”
[Tweet “”Systems thinking is what has moved the focus to DevOps and lean startup.” -via @codeship”]
When I discussed 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 place to begin automation with is the Quality Assurance process. Many companies have automated testing and deployments so that new changes can filter into environments effortlessly. Automation comes with an upfront cost to set up, as well as periodic changes when code is added and removed.
[Tweet “”Automation comes with an upfront cost.” -via @codeship”]
Tech professionals 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. These seven principles summarize the process:
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in your company
- See the whole
Scrum is an implementation of this process, but there are many more, including Kanban and DevOps, that incorporate these principles as well.
DevOps, for example, is one of the next generation of lean software development methodologies. For the rest of the article, let’s get a better understanding of what DevOps is and where it can be used.
So… What Is DevOps?
DevOps is a software development model that combines development and operations together stressing communication, integration, automation, collaboration, and cooperation. Some of the goals of DevOps are more frequent deployments, faster time to market, higher quality deliverables, and shorter lead times.
The Phoenix Project principles
But these ideas don’t work if just the technology department or, worse yet, only one team embraces them. Employees at all levels must realize how the success of the changes requires their buy-in.
A friend strongly recommended I read The Phoenix Project. The novel is written by three proponents of the DevOps movement (Gene Kim, Kevin Behr, and George Spafford) and is set in the IT department of the fictional company Parts Unlimited. It details the many issues most IT departments face and shows examples of how to solve those issues and create better lives for the people in that company.
When we meet Bill, the IT Manager at Parts Unlimited, he gets thrust into the Phoenix Project by the CEO. This is a major initiative for the whole company and especially the IT department. The CEO has given Bill 90 days to solve the problems with the IT department, or he’s going to outsource the whole group. Just a little motivation, don’t you think?
Throughout The Phoenix Project, we learn how Bill employs the following three principles to not only streamline his department’s workflow but also to more efficiently interact with the company’s other departments:
- Limit your Work In Progress (WIP). Bill learns to limit the projects his department is working on by identifying that one of the department’s main resources, Brent, is working on many different items.
- Throttle the work flowing into the department. Bill attempts to freeze projects to stop the explosion of new requests to his department. He creates a litmus test to stop requests from overloading the backlog.
- Build the DevOps flow. Bill’s department builds the DevOps flow after working through many issues to get there. They reduce the batch size to enable a single change to flow into production in a short time and create operational resilience.
Culture is important
The success of your DevOps implementation requires a corporate culture that embraces the mindset that can foster this change. It must be found in all departments of a company, not just in one area, if you’re going to move beyond agile. Everyone must contribute to solving problems and take ownership in the company’s success.
Kevin Behr, one of the authors of The Phoenix Project and Chief Science Officer at Praxis Flow, said, “One of the key elements of making DevOps successful is actually making sure that it’s part of an organizational plan. Organizations that want to be successful with DevOps typically transition away from managing tasks to managing boundaries cross-functionally.”
Flexibility is a key component of a culture that embraces the DevOps mindset. Rigid rules and processes will stand in the way of innovative new ideas taking hold.
[Tweet “”Flexibility is a key component of a culture that embraces the DevOps mindset.” -via @codeship”]
DevOps is implemented in many different ways, but there are some foundational components that most companies embrace. For example, the following concepts are from Navigating DevOps: Learn what it is and why it matters to your business:
- Collaboration. Collaboration must extend outside of the DevOps team and into all areas of the organization. Everyone is responsible for the delivery of the product. This total ownership is critical to DevOps success.
- Automation. Automated portions of the delivery chain help the team reduce cycle time. The DevOps team is constantly trying to automate by embracing tools that allow for this to happen. The tools need to support the process, not the other way around.
- Continuous integration. The goal of continuous integration (CI) is to isolate changes and test them immediately. A team can report any bugs or issues right away as opposed to later in the process of normal development.
- Continuous testing. DevOps makes continuous testing critical to meeting deployment goals. This is not just the responsibility of the Quality Assurance department but of the whole company. As new features are coded, unit tests should be developed. Once a code is checked in, there should be additional integration testing.
- Continuous delivery. Once you have continuous integration with continuous testing, the next level is continuous delivery — automation of the complete delivery cycle from development to production deployment. Release rates vary amongst companies’ desires for change as well as the size of the release.
- Continuous monitoring. With many moving pieces in flight at all times, the operations systems need to be monitored at all times. Similar to testing, monitoring also starts in development to get a quick understanding of changes as they are introduced.
Who Is Using DevOps and How Can You?
According to the 2014 State of DevOps Survey from PuppetLabs, Thoughtworks, and IT Revolution Press, 16 percent of IT departments are using DevOps. The method is primarily found in companies with fewer than 500 employees. The study concludes that DevOps will increase IT performance.
There are many advantages to DevOps and continuous delivery. Speed is a huge benefit, so you can now deliver features quickly. Quality improves as you can quickly fix the bugs that do get released. The scale of change improves as well, so there’s no need to plan sprints or iterations.
As you prepare to suggest this to your management team, identify the many benefits and understand the pain points. To borrow a concept from sales, identify the gap. Use the concepts of DevOps to “sell” to the workflow gaps in your team’s current process. Working with your management team, you should have a good idea of what gaps are present.
As tech professionals, we think the best technology should always win. That’s not always the case. Identify the decision makers in your company and sell to them. If you understand the final decision maker is not technical, don’t frame all the benefits in technical bullet points. Instead, realize that most decision makers have at least some budget responsibilities. So include some information on how DevOps can save the company money.
To bring meaningful change, you need to enlist the help of others. Share the benefits of DevOps and continuous delivery with team members and people in other departments. If you build a groundswell, it will be more difficult to extinguish the fire of change.
In the second article in this series, we’ll 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 the structure behind them.
[Tweet “”Preparing your culture to move beyond agile development” – via @codeship”]