Introduction to planning efficient workloads with DevOps

Source: Introduction to planning efficient workloads with DevOps

The planning phase of DevOps is often seen as the first stage of DevOps, but that's not quite accurate. In practice, modern software teams work in tight cycles where each phase continuously informs the others through lessons learned.

The DevOps lifecycle

Sometimes those lessons are positive, sometimes they're negative, and sometimes they're just neutral information the team needs to 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 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 is always open to change and compromise.

Teams that employ Agile development practices shorten their development lifecycle in order to produce usable software on a consistent schedule. The continuous focus on delivering quality to end users enables the overall project to rapidly adapt to evolving needs. To start seeing these kinds of returns, teams will need to establish some procedures along the way.

Adopting an Agile culture

Building and nurturing an Agile culture within an organization is a key investment toward effective DevOps. While the end result may be a specific set of software and services, the human resources 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.

Selecting an Agile method

Agile methods (often called frameworks) are comprehensive approaches to phases of the software development lifecycle. They prescribe a method for accomplishing work with clear guidance and principles. One of the most popular Agile frameworks is Scrum. For those just getting started, it's the first to take a look at due to its mature community and ecosystem. However, there are many alternatives, so it's worth taking the time to review different options before settling.

Embracing Agile tools

There is a substantial industry built around tools for DevOps planning. These tools generally integrate with a variety of Agile methods and platforms used in software development. One common tool is Kanban, which helps organizations and their teams visualize work in order to better plan delivery.

Building Agile teams

Teams work best when everyone has clear direction. Adopting an Agile method can greatly help with this as it introduces more transparency into DevOps. However, there are also other effective techniques that can be applied to improve the function of teams across project milestones. Any organization can benefit from building productive, customer focused teams.

Scaling Agile as your organization grows

As Agile has gained popularity, many stereotypes and/or misinterpretations have cast a negative shadow regarding 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 a variety of reasons, including misunderstandings about the purpose of Agile. Small organizations may find it easy to ignore some of these misconceptions, but they can become real headaches if not addressed in larger operations. 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.