The planning phase of DevOps is often seen as the first stage of DevOps, which
isn't quite accurate. In practice, modern software teams work in tight cycles where each phase continuously
informs the others through lessons that are learned.
Sometimes those lessons are positive. Sometimes they're negative. And sometimes they're neutral
information that the team needs so that it can make strategic decisions for the future. The industry has coalesced around
a single adjective to describe the ability to quickly adapt to the changing circumstances that these lessons
create: Agile. The term has become so ubiquitous that it's now a synonym for most forms of DevOps planning.
What is Agile?
Agile describes a pragmatic approach to software development that emphasizes incremental
delivery, team collaboration, continual planning, and continual learning. It's not a specific set of tools
or practices, but rather a planning mindset that's always open to change and compromise.
Teams that employ Agile development practices shorten their development
life cycle in order to produce usable software on a consistent schedule. The continuous focus on delivering
quality to end users makes it possible for the overall project to rapidly adapt to evolving needs. To start seeing
these kinds of returns, teams need to establish some procedures along the way.
Adopt an Agile culture
Building and nurturing an Agile culture within an organization is a key investment
toward effective DevOps. While the end result might be a specific set of software and services, the human
resources that are required to produce and maintain those assets deserve special consideration. Teams see the best
results when they invest the time to adapt their culture to match the values of the Agile mindset.
Select an Agile method
Agile methods, which are often called frameworks, are comprehensive approaches to phases of the software development
life cycle. They prescribe a method for accomplishing work with clear guidance and principles. One of the
most popular Agile frameworks is Scrum. Most teams that are new to Agile start with Scrum,
due to its mature community and ecosystem. But there are many alternatives, so it's
worth taking the time to review different options before settling.
Embrace Agile tools
There's a substantial industry that's built around tools for DevOps planning. These tools generally integrate with
various Agile methods and platforms that are used in software development. One common tool is
Kanban, which helps organizations and their teams visualize work in order to better
plan delivery.
Build Agile teams
Teams work best when everyone has clear direction. Adopting an Agile method can greatly help in this area because
Agile improves transparency in DevOps. But there are also other effective techniques that you can
apply to improve the function of teams across project milestones. Any organization can benefit from
building productive, customer focused teams.
Scale Agile as your organization grows
As Agile has gained popularity, many stereotypes and misinterpretations have cast a negative shadow
on its effectiveness. It's easy to say "Yes, we're doing Agile" without any accountability. As time
goes on, it's common for bad habits to form for various reasons, including misunderstandings about the
purpose of Agile. Small organizations might find it easy to ignore some of these misconceptions. But in larger
operations, these issues can become real headaches if you don't address them. Fortunately, there are helpful guidelines
for scaling Agile to large teams.
Next steps
Microsoft was one of the first major companies to adopt DevOps for planning large-scale software projects.
Learn about how Microsoft plans in DevOps.
Looking for a hands-on DevOps experience? Check out the Evolve your DevOps practices learning path. It primarily
features Azure DevOps, but the concepts and experience apply equally to planning in other DevOps platforms, such as GitHub.
Learn more about platform engineering, where you can use building blocks from Microsoft and other vendors to create deeply personalized, optimized, and secure developer experiences.
This certification measures your ability to accomplish the following technical tasks: Design and implement processes and communications, design and implement a source control strategy, design and implement build and release pipelines, develop a security and compliance plan, and implement an instrumentation strategy.