Skip to content

Files

Latest commit

93c70a0 · Jan 22, 2022

History

History
83 lines (52 loc) · 6.16 KB

day04.md

File metadata and controls

83 lines (52 loc) · 6.16 KB

DevOps & Agile

Do you know the difference between DevOps and Agile ? They were formed as standalone concepts. But now the two terms are getting fused.

In this post we will examine the crucial differences between agile and DevOps and find out why the two are connected so tightly.

I think a good place to start is understanding a little more about a common angle I have seen in learning this area and that is DevOps vs Agile, even though they have similar goals and processes. In this section, I am going to summarise this hopefully.

Let's start with definitions.

Agile Development

Agile is an approach that focuses on delivering small results faster rather than releasing one big interaction of the product software is developed in iterations the team releases a new version every week or month with non-incremental updates the final goal of agile is to deliver an optimal experience to the end-users

DevOps

We have been covering this for the past few days with a few different ways of describing the end goals of DevOps, DevOps usually describes software development and delivery practices based on cooperation between software developers and operations specialists the main DevOps benefits are delivering a simplified development process and minimising miscommunication.

What is the difference between Agile and DevOps

The difference is mainly the preocupations. Agile and devops have different preocupations but they are helping each other. Agile want short iteration, which is only possible with the automation that Devops brings. Agile want customer to try a specific version and quickly give feedback which is only possible if devops make creation of new environment easy.

Different participants

Agile focuses on optimising communication between end-users and developers while DevOps targets developers and operation team members. We could say that agile is outward-oriented towards customers whereas DevOps is a set of internal practices.

Team

Agile usually applies to software developers and project managers. The competencies of DevOps engineers lie in the intersection of development, QA and operations they are involved in all stages of the product cycle and they are part of the Agile team.

Applied Frameworks

Agile has a lot of management frameworks to achieve flexibility and transparency. Scrum > Kanban > Lean > Extreme > Crystal > Dynamic > Feature-Driven >. DevOps focuses on the development approach in collaboration but doesn't offer specific methodologies. However devops promote practices like Infrastructure as Code, Architecture as Code, Monitoring, Self Healing, end to end test automation ... But per say this is not framework, rather practices.

Feedback

In Agile the main source of feedback is the end user in DevOps the feedback from stakeholders and the team itself has a higher priority.

Target areas

Agile focuses on software development more than on deployment and maintenance. DevOps focuses on software development as well but its values and tools also cover deployment and post-release stages like monitoring, high availibility, security and data protection.

Documentation

Agile prioritises flexibility and tasks at hand over documentation and monitor. DevOps on the other hand regards project documentation as one of the essential project components.

Risks

Agile risks derive from the flexibility of the methodology. Agile projects are difficult to predict or evaluate as priorities and requirements are continually changing.

DevOps risks derive from a misunderstanding of the term and the lack of suitable tools. Some people see DevOps as a collection of software for the deployment and continuous integration failing to change the underlying structure of the development process

The Tools Used

Agile tools are focused on management communication collaboration, metrics and feedback processing. The most popular agile tools include JIRA, Trello, Slack, zoom SurveyMonkey and others.

DevOps uses tools for team communication, software development, deployment and integration like Jenkins, GitHub Actions, BitBucket, even though agile and DevOps have slightly different focuses and scopes the key values are almost identical therefore you can combine the two.

Bring it all together… good idea or not? Discuss?

The combination of Agile and DevOps brings the following benefits you get

  • Flexible management and powerful technology
  • Agile practices help DevOps teams to communicate their priorities more efficiently
  • The automation cost that you have to pay for your devops practices are justified by your agile requirement of deploying quickly and frequently
  • It leads to strengthening the team adopting agile practices will improve collaboration increase the team's motivation and decrease employee turnover rates
  • As a result, you get better product quality

Agile allows coming back to previous product development stages to fix errors and prevent the accumulation of technical debt. To adopt agile and DevOps simultaneously just follow 7 steps :

  1. Unite the development and operation teams.
  2. Create build and run teams, all development and operational concerns are discussed by the entire DevOps team.
  3. Change your approach to sprints, assign priority ratings to offer devops tasks that has the same value than development task. Encourage development and operations teams to exchange their opinion on other teams workflow and possible issues.
  4. Include QA in all development stages.
  5. Choose the right tools.
  6. Automate everything you can.
  7. Measure and control by using tangible numeric deliverables.

What do you think? Do you have different views? I want to hear from Developers, Operations, QA anyone that has a better understanding of Agile and DevOps that can pass comments and feedback on this?

Resources

If you made it this far then you will know if this is where you want to be or not. See you on Day 5.