DevOps, Agile & Scrum

Luke Cioffi
Strategio
Published in
4 min readJan 23, 2023

Project management, from an outside perspective, can look deceptively simple. Most people don’t get to see the complex process of developing a new application or tool, or they have no interest in it. Unfortunately, those people are unable to see the meticulous planning and careful organization that goes into every part of that process. Before anything can be done, product teams must decide the scope of their projects, the languages they will use, the tools they will need, and the schedules to which they will bind themselves during the upcoming development period. Three variations on the Software Development Life Cycle come to mind when discussing modern methodologies, and while they share many similarities, it’s important to note the ways in which they differ from each other, as the choice between them can completely change the flow of development.

  • Agile is an iterative methodology that emphasizes adaptive development and responding to the changing needs of a project.
  • Scrum is a variation of Agile with a focus on incremental bursts of work, called “sprints”.
  • DevOps is a newer methodology with a looping structure, emphasizing continuous integration and continuous deployment.

Agile

The Agile Cycle (Hygger, 2020)

The Agile methodology was devised as a response to the traditional Waterfall method and attempted to address its shortcomings, most notably its rigid, linear structure. The iterative cyclical structure of Agile allows for more freedom among different teams, as they can work simultaneously on different stages of development. The focus of Agile is on creating a stable and steady workflow, emphasizing collaboration between teams. Because of this, Agile teams can produce incremental deliverables and respond to feedback relatively quickly.

Teams who abide by the Agile methodology make use of many popular tools in order to do their best work. These tools include the flexible communication platform Slack, and the version management tool GitLab, among others. To better understand the roles and functions of Agile, one might take a closer look at the variations of it that are used in Software Development today, including Scrum and DevOps.

Scrum

The Scrum Cycle (Hygger, 2020)

Scrum is a variation on the Agile methodology with a focus on short-term goals within a larger, multi-faceted project. These goals are completed through a cycle of intense development periods called “sprints”, usually lasting one-to-four weeks. During the planning stage, the team closely examines the scope of the project and divides it into smaller deliverables that can realistically be completed in a short enough time, during which the sprint cycle takes hold.

There are three dedicated roles on any team that makes use of the Scrum methodology:

  • The Product Owner is responsible for maximizing the value of the final deliverable product. This may include managing schedules, communicating with teams to ensure product delivery is on-time or responding to feedback from end-users and other stakeholders.
  • The aptly-named Scrum Master is the team member responsible for making sure the rest of the team is adhering closely to the Scrum methodology’s schedule and principles.
  • The remaining team members are cross-functional developers.

Developers make the most of the Scrum cycle by making use of certain helpful tools, such as Jira and nTask. They use these tools to monitor progress on different tasks, create manageable workflows, and balance workloads among team developers.

As there are with other popular Software Development methodologies, there are many benefits to Scrum. The rapid small-scale release cycle leads to a steady flow of tangible progress, and future plans can change on the fly without destabilizing deliverables that are already complete.

DevOps

The DevOps Cycle (Abdurrahim Yildirim, 2019)

Rather than a variation on Agile, like Scrum, DevOps expands on its basic principles of iterative development and twists them into a unique shape. The eight phases of DevOps form a closed loop, with all phases able to make progress simultaneously. Since developers won’t have to wait for feedback from previous phases in order to do their jobs, idle time is minimized and project goals can be met much faster. This is where the principles of continuous integration (CI) and continuous deployment (CD) come from.

The many steps of the DevOps Life Cycle call for the use of different tools. Much like Scrum and other forms of Agile, Jira is often used as an organizational tool during the planning stages. Engineers make use of various other tools during different stages of development, such as GitHub for storing and improving on past versions, Gradle for building and testing, and Amazon Web Services for server and database hosting.

In the field of Software Engineering, there is a surprising amount of subjectivity with regard to tools and practices. There is no one perfect tool or perfect methodology that works best for all projects. Developers must work together, closely examining both the needs of their stakeholders and the complexities of their visions. Only once they have a complete understanding of their goals can they decide which practices would be best for their project.

--

--