SDLC Agile DevOps

Agile and DevOps are often conflated and confused with each other. It’s often misunderstood where one stops and the other begins. While there are a lot of differences between the two, the short answer is that Agile is a Software Development Life Cycle that provides a methodology for delivering tech products and DevOps is a method to deliver those same technology products to those who need it.

Agile

When the Agile Manifesto was first written in 2001, it was a response to the waterfall-based methodologies. Waterfall approaches were heavy front-end specifications and hoping you covered everything. Inevitably, you didn’t. Testing was routinely cut. There was low management visibility into the actual progress. Projects would stay in perpetual 90% completion status. Cost and time overruns were common.

Agile software development is an approach to software development in which customers, end users, QA and software developers all collaborate to make the end-product. This cross-functioning provides a framework for adaptive planning. The stages of development can extend beyond the time limits afforded before the project began. This is why Agile development is often referred to as the SDLC that goes for continual improvement rather than one which has a fixed timeline.

Agile broke it into teams and iterations. Teams from development, QA and product ownership make up scrum teams that work in 2-4-week sprints. Each sprint has defined deliverables that developed and tested. Hour estimates are replaced by story points.

The benefit is management sees progress along the way. Estimates are better. There is transparency into the process.

The premise of Agile involves breaking up project into teams and iterations. Teams are made up with people from product ownership, QA and development. These teams work in 2-4-week sprints. Each sprint has an agreed upon set of deliverables. Enough to be completed in the 2-4 weeks. Instead of estimating in hours, we estimate in story points. The total story points for a sprint is called the velocity. This velocity provides the management visibility into the process. Companies quickly discover what a real velocity is. They can then examine the backlogs of work and get realistic timeframes.

DevOps

DevOps (Development Operations) begins where Agile stops. It basically takes all the developed products and gets them where they need to be. This could include QA servers, development sandboxes and release servers etc. It strives to be a system that takes all the products made as a result of individual sprints and distributes them seamlessly. The goal of DevOps is to automate the entire process and monitor each individual event throughout the steps of the software build.

The need for DevOps actually came from more companies doing Agile. The quantity of deliverables created  need for better ways of distributing them. More and more companies wanting to get their software and products out to the public as soon as possible. It is not uncommon for a software shop to have hundreds of client installment scenarios that may need to be recreated in QA. Proper DevOps solutions enable a company to do this.

Agile and DevOps combine their collective efforts to incorporate continuous integration and continuous delivery (CI/CD) so that the software updates and development keeps going on throughout the year rather than aim for one major release each year. The checks and balances afforded by both methods make sure that each small change by a developer or a team of developers can compile effectively and seamlessly with the original software and changes made by other developers.

Waterfall resulted in developers concentrating on making the software. The release and distribution was an afterthought and considered the last hurdle. Today, the Agile and DevOps methodologies have considerably sped up the process by which customers give feedback and software improves throughout its life

Apps and programs and entire operating systems keep updating and driving new improvements faster and faster. Only some of them are noticeable in the long run and very few of them are major improvements to the actual software. However, the constant minor improvements to software have managed to raise the standards for software development.

Key Differences Between Agile and DevOps

The Team Makeup of Agile and DevOps is particularly different. Agile has team members from development, QA and product ownership. DevOps is made up from people in Development and Infrastructure.

The Agile teams’ goals are the transparency in the development process. They bring together quality analysis and development so that the sprints can be more productive. The DevOps team does things a little differently since their goal is efficiency of the technology delivery. DevOps brings together development and operations. DevOps has a continuous operation, which isn’t limited to sprints. The only feedback aa DevOps team gets is internal, to make sure that the stringent standards that were agreed upon in the beginning are met.

As far as the deliverables of the Agile process go, they are multiple small releases and some major updates each year. Each small and large release stands on its own and isn’t packaged as part of some bigger update. For the DevOps process, the end-product must be the delivery of those releases to the right place.

Agile and DevOps get joined by incorporating Continuous Integration and Continuous Delivery (CI/CD).  CI/CD solutions take every code change by a developer and ensures it compiles properly with every other check in and queues it up for delivery. CI/CD makes it a shared task with Development and Operations.

Agile DevOps
Team Makeup Development, QA & Product Ownership Development and Operations
Goals 1) Have Transparency into the Development Process
2) Bring Development and QA closer
3) Bring Development and Product Ownership
1) Efficient Delivery of Technology
2) Bring Development and Operations closer
Duration 2-4 Week Sprints Continuous
Feedback By customers and Product Owners Internal Feedback
Deliverables Multiple Smaller Releases. Each which stands on its Own. Those Smaller releases arriving in the right place.
Tools VersionOne, Git, Mercurial, JIRA, Leankit, Axosoft, Trello, Loom, Jenkins Jenkins, Docker, Ansible, ELK, Consul, Git, Kubernetes, Puppet, Naygios

Read More: Is Your Company Truly Agile? Ask Yourself These 5 Questions >>
Read More: AGILE EHS – IS SAFETY ALREADY AGILE? >>
Read More: Top 8 Cost Cutting Techniques for CIOs >>
Read More: Technology Spotlight: Disaster Recovery vs. Business Continuity >>

Need Tech Talent

Are you finding it harder to locate the good technical and IT talent? Many companies find them selves in the same situation. There are some better ways to locate and attract the right it and technical people to your company. Contact us to learn more.