On this blog we discusses DevOps and Agile at great length. DevOps is a methodology for technology delivery while Agile is a methodology for project delivery. The two methodologies pair together quite well to increase the flow of value to the market.
The delivery methods are also often intertwined leading to confusing misconceptions if one isn't careful in their adoption journey.
There are several common misconceptions that surface quickly when businesses are evaluating DevOps and Agile either independently or together. It is not entirely unreasonable to assume that anyone in the software development space, technical or non-technical, could quickly make the jump from hearing about how awesome DevOps and Agile are into these misconceptions.
Let's dive in and discuss the most common misconceptions about DevOps and Agile!
- Unlock the Power of DevOps Shift-Left Testing
- The Importance of Quality Assurance in DevOps
- 6 Top Programming Languages for DevOps Engineers in 2023
Misconception 1: DevOps and Agile can fill gaps in my poorly running delivery process
DevOps and Agile are commonly viewed as a tool to fill a gap in software development delivery activities. If delivery cycles are variable in length, inconsistent, and filled with twists and turns; companies will look for some quick outs to patch up their delivery to ship something.
The problem with this approach is low quality.
While borrowing from DevOps and Agile might work in the short term, it does not work over the long term. Companies or projects looking to step up their delivery processes need to look at things holistically and make some choices about how they want to engage in the market with their customers.
▶ Key Insight
In my experience; if you are looking plug some holes in an already well running delivery process, a transformation to DevOps and Agile are not for you.
I would also ask a question about the business you are running: "How are you stacking up against your competition?"
If the answer to that question is "Not Great" then it is probably time for a perspective shift. Are you really looking to fill gaps, or is it time to go through a transition or transformation?
If the answer to that question is "We are crushing it!", i would completely ignore the rest of this document and get back to work. You are already doing awesome!
Misconception 2: DevOps and/or Agile can be purchased off the shelf and implemented
DevOps and/or Agile cannot be purchased. There is no singular tool set, workbook, or process that can be purchased and put in place to shortcut the adoption of these methodologies. Both of these methodologies are a fundamental transformation of delivery and need to be adopted fully in order to be effective.
This transformation is also cross-cutting throughout all technical and non-technical roles. A sales team cannot assume that groups delivering technology are delivering in a different way than they are selling.
Account management cannot build plans with customers on their future technology state and expect that planning to look different than the overall delivery workflows. Technology groups cannot adopt a different way of delivering if it is at odds with business expectations.
▶ Key InsightSomething you can purchase off the shelf is training. Training is your gateway to bridging the knowledge gap between what you are doing and what your competitors are doing. Training alone wont bring you to the promised land, but it is a great way to get started.
Misconception 3: DevOps can be implemented without Agile
Now, that statement is a little clickbaity. You can indeed implement DevOps inside of other project management frameworks.
I would make the argument that you cannot fully realize the benefits of delivery transformation unless you adopt both DevOps and Agile. DevOps practices do not lend themselves well to Waterfall, but it can be done. You really lose out on all of the continuous improvement facets of DevOps which really means you are adopting some automation and calling it "DevOps".
▶ Key InsightI have been involved in both Agile lead DevOps teams and more traditional Waterfall lead DevOps teams. Both have their advantages and disadvantages. I believe that DevOps combined with Agile gives anyone the biggest bang for their buck.
Misconception 4: When implementing DevOps or Agile, you can forego planning
Software development always needs a great deal of planning. DevOps and agile do not let you get away without planning.
Agile in this case is formal agile delivery which I would argue consists of more planning, market research, feedback, and pivots than any other project management framework.
DevOps focuses on continuous improvement and automation which need a significant amount of planning to ensure the right areas of focus are being worked on.
The truth is this; development teams, operations teams, infrastructure teams, quality assurance teams, account management teams, and members of any other team benefit from having a good plan that is backed up by principles, culture, and a centralized philosophy.
▶ Key Insight
In this blog I have talked many times about the difference between aspirational velocity and realistic delivery expectations. If you are unable to trace your delivery velocity back to anything tangible, then you are living in a world of aspirational velocity and need to take a hard look at what that aspirational velocity is doing to the sanity of your individual contributors. I would imagine you will find that you are attempting to justify reacting to customer or industry demands causing negative impacts to quality, timelines, and cost.
Never fear, you can have your cake and eat it too! If you are in a position where you need more fluidity and the ability to pivot quickly, then make sure those factors are part of your delivery strategy. This does mean you will need to make very clear decisions about what takes priority, but your communications about what is important will be much more clear, and the impacts of those rapid pivots will also be very clear. It also means that the individual contributors will not carry all of the weight of decisions they do not control.
Misconception 5: DevOps and Agile are only for small teams
Teams of all sizes can benefit from these delivery methodologies. Software delivery is a complex problem that requires good communication, tools, talent, and principles to drive consistency and quality.
While there are an infinite number of methods that could be used to deliver technology, Agile and DevOps are formalized and prescriptive platforms to solve these complex challenges.
By adopting DevOps and Agile together and bringing a core set of delivery principles to an organization's approach to delivering technology, one can actually achieve a much larger scale of delivery more quickly.
All of your teams are on the same page, utilizing the same tools, communicating about the same processes, and driving agile development and operations together as a unified front.
▶ Key Insight
I am a proponent of making sure that delivery works for all parties: individual contributors, teams, the business, and customers. Both Agile and DevOps are a sliding scale of how much you use and how far intrenched you get into their processes.
Regardless of team size, make sure your delivery methodology is sound and embraced by all parties!
Misconception 6: DevOps and Agile are focused on controlling software development
I would argue that this is the farthest idea from the truth. DevOps and Agile aim to democratize the delivery process across an organization's many different value streams.
One of the core principles of the Scaled Agile Framework for Enterprises is to get decision-making as close to the work being performed as possible. This means that teams must work together on their high-level planning initiatives to get stories in the hands of implementers leaving them the freedom to deliver those stories any way they want to.
This does not mean that the business does not have a say in what is getting delivered, but how it is delivered is determined by the individuals that know best.
Early on in the adoption of these methodologies, it is not uncommon for a pendulum of decisions making to swing back and forth between IT and the business as everyone tries to figure out this new dynamic. Everyone's goal should be to find a new center where everyone is heard and all concerns, no matter their size, are given room to breathe in a conversation about delivery.
▶ Key Insight
If anyone is in a position where they feel like they need to be in control, that is probably the first place to look for instances of disjointed delivery.
As a leader, I am not only the least important person in the room when it comes to day to day delivery, I am always looking for instances where I may be clogging up the works and trying to enable individuals so that I can get out of the way.
As a leader, my job is to enable my team with information, tools, guidance, and coaching to get the desired results without needing to be in the way or a choke point. My teams need to make decisions that are good for their health and the customers health. By looking at the long game instead of myopically looking at finite details, the team is self sustaining over time instead of being dependent on me.
Misconception 7: DevOps and Agile are the same thing
DevOps and Agile are complimentary methodologies, but they are not the same thing. You can run a DevOps flow inside of a waterfall project and you can run Agile without DevOps. If you are looking for more information about this topic, click the links on the cards below.
Misconception 8: DevOps and Agile are only for technology focused businesses
To properly adopt DevOps and/or Agile fundamental changes need to happen throughout both technical and non-technical roles inside of a business. In order to reap the full benefits of these methodologies, businesses need to be willing to be willing to transform themselves from the ground up. This is generally referred to as a DevOps Transformation. Everything from business expectations to accounting to customer expectations will need to adjusted in order to successfully adopt and live these methodologies.
Additionally, there is a misconception that Agile and DevOps are only useful inside of a business that is primarily technology focused. This could not be farther from the truth. Agile promotes continuous small and incremental changes while DevOps promotes continuous incremental change. This can be very useful in a variety of industries including healthcare, manufacturing, hospitality, and finance among many others.
▶ Key Insight
While my focus has generally been on internet hosting technologies, I have spoken with many people from different industries about their delivery practices. One of the most interesting conversations was with someone working on embedded systems in the automotive industry.
They are utilizing DevOps practices in an Agile delivery methodology to build and deploy their software to car stereo systems, which is pretty neat. They have invested in automation to push new changes to car stereo systems on commit and run their fully automated test suites in near real time. They even have robotic arms that push buttons on the touch screen to ensure that all functionality works when interacted with through physical interfaces.
Misconception 9: DevOps and Agile leads to a bloated budget and chaotic delivery
DevOps, when implemented correctly, can actually lead to cost savings in the long run. By streamlining development, testing, and deployment processes, DevOps helps reduce waste, identify and fix issues faster, and increase overall efficiency. Continuous integration, automated testing, and automated deployment can significantly lower the costs associated with manual interventions and debugging, leading to a more efficient use of resources.
Agile methodologies emphasize delivering incremental value to customers in shorter cycles. While this might seem chaotic at first, it actually enables teams to respond to changes and adapt their plans quickly. This adaptability helps in avoiding large-scale changes that can lead to unexpected budget overruns. Agile also promotes transparency and regular feedback, allowing stakeholders to identify potential budget issues early and make informed decisions.
Agile and DevOps promote a structured approach to development and delivery. While the fast-paced nature might seem chaotic, these methodologies actually emphasize collaboration, communication, and well-defined processes. Regular meetings, such as daily stand-ups in Agile, help keep teams aligned and focused on common goals. DevOps practices, such as continuous integration and continuous delivery (CI/CD), provide a systematic way to ensure that changes are thoroughly tested and delivered in a controlled manner.
The perception of DevOps and Agile leading to chaos and budget issues might arise from mismanagement or misunderstandings of the principles. These methodologies require a cultural shift, training, and buy-in from the entire organization. If not implemented correctly, they can indeed lead to confusion and inefficiencies. However, when properly adopted, they can significantly improve collaboration, quality, and overall project success.
Both Agile and DevOps are built on continuous improvement principles. Teams are encouraged to reflect on their processes, learn from mistakes, and optimize their workflows. This iterative approach ensures that any initial chaos or budget concerns are addressed over time as the team refines their practices.
How Should I Approach DevOps and Agile?
By fully adopting Agile and DevOps, a lot of doors are opened up for delivery.
- Flow: Instead of moving from task to task, or project to project, work can be put onto a conveyor belt of delivery. Agile and DevOps offer more of an assembly line-type flow to technology delivery.
- Quality: Context switching impacts quality. By offering more stability in work coming down the pipeline, engineers in various disciplines can focus on quality first.
- Flexibility: Companies need to meet the market where it is at. Sometimes this means quickly pivoting from products that are not working to products that do well in the market.
- Release faster and work smarter: By reducing the size and scope of deliverables, the team can focus on shipping more often.
- Simplifies Software Development and Operations Focus: Day-to-day operations can seem like a burden that interrupts delivery frequently. By adopting DevOps, operations are a normal part of everyday life.
- Responsibility: Agile helps individual contributors feel like they are part of something bigger by influencing the overall planning and delivery processes. They are not just taking orders from the tower, they are actively delivering value against their vision of great outcomes.
- Consistency: Consistency brings predictability and reliability to products and planning
- Measurement: Promote data-driven decision-making into your day-to-day workflows through predictability and consistency in the flow of work.
- Security: Security is no longer a secondary burdensome process that detracts from delivering work to the market. Security is built right into DevOps through automated delivery pipelines.
Any of these benefits could be achieved on their own in their own ways. By fully embracing Agile and DevOps, each of these ideals comes with the methodology. There is no need to solve an already-solved problem.
- Baseflow.com - What Is a Common Misconception About Agile and DevOps?
- COPADO.com - Agile vs DevOps: 4 Common Misconceptions About Their Differences
- Agilemania.com - What Is a Common Misconception About Agile and DevOps?
When first hearing about DevOps and Agile, it is easy to build some initial blinders and misconceptions about what they really mean when utilized as a symbiotic relationship. It takes a mindset change, and a full perspective shift to realize the benefits of DevOps and Agile together.
I would encourage anyone out there to go get some training, watch some YouTube videos, and read as much as you can about the methodologies and what they have to offer. DevOps and Agile together can really open up a lot of new benefits for your business and your customers.