Raktim Singh

Home Uncategorized Are you confused between Agility & CI-CD?

Are you confused between Agility & CI-CD?

0
Are you confused between Agility & CI-CD?

Agility and CI-CD are often some of the most common terms used in software development and testing circles.

If you are confused between both of these terms, then we must start understanding what each term means –

Lets understand – Agility :

The term, agile refers to the set of frameworks and practices that follow the official principles of “The Manifesto for Agile Software Development”, containing 4 values and 12 principles.

It is a document with key values and principles that help the development team work efficiently and sustainably.

It signifies iterative and incremental methods such as Scrum, Scaled Agile Framework (SAFe), Kanban, Lean Development and Extreme Programming (XP).

More than anything, Agility focuses on predictability.

As you are doing the demo of product, after completing of each feature, you are able to get immediate feedback and you can incorporate those feedback/change management, at regular intervals.  

This is achieved through dynamic collaboration, iterative feedback cycles and cross-functional teams that work on processes and tools designed for specific tasks.

In agile development, the priority is set on collaborations and self-organization.

Here, the team creates a solution in a team and work cross-functional.

It means that there is an indisputable division between the teams. From the testers to developers, everyone is equally involved from the beginning of the process.

Also, as each process hasten, people’s feedback is taken into account.

Agile testing is perfect in cases where both business and technical demands change as the project advances.

Since this is true with many digital projects, agile works the best in the development approaches.

So Agile is best suited for an environment, where requirements are not fully clear, team members need to learn new skills & customer is ready to experiment with you.

Remember, finally, it’s a win-win for both vendor & customer as, overall rework ( Testing, fixing, ..) cost comes down.    

In conclusion, contrary to the traditional methods when companies used to manufacture cars, they used to prepare the blueprint.

They used to detail out, for a car, which/how various parts will be added and how the assembly line will look like.

Once you know, how to successfully manufacture one car, you can just replicate and produce millions of those cars, with a very low defect rate. But this is not true for the knowledge industry & software.

You don’t write software for one bank & get money for replication of the same code.

Here every time, you are producing a new car, there’s a new approach involved in each step.

Earlier, in a waterfall model, one used to gather requirements & prepare a design. But this was different from the blueprint.

No one was able to correctly envisage, how the final software will look & work.

So, after putting effort for 6-8 months, both customer and vendors would end up disputing with each other as the end product is not what the customer expected (though it matches the requirement document).

Hence there was a need felt, to show the MVP (Minimum Viable Product) at regular intervals to customers and incorporate changes.

Agility is all about the ability to handle and incorporate change management.

CI-CD (Continuous Integration & Continuous Delivery) is the way to show/deliver these changes to the customer.

But after showing it to the customer, if you are not able to incorporate the change, the whole purpose of agility is lost.

CI/CD :

CI/CD comprises the practices for software engineering and deployment. It refers to the engineering practices where members of the development team integrate their code at the highest frequency i.e. daily and even hourly.

Earlier, integration has always been a time and effort-consuming work, but CI tactics utilize automation tools that execute build and testing.

The focus of CI is to establish a software-defined lifecycle the reduce the effort for building and integration.

And with CI use, the frequent integration resulting in detecting errors in the code quite early, causing no room for any defect.

While CD or Continuous Delivery refers to the practice that ensures the code remain in a deployable state.

Meaning that all the new features, bug fixes, experiments, configuration changes incorporated into the code always remain ready for deployment to a production environment.

The focus of CD is to make deployments routine events to take place at any minute on demand.

Whether that development occurs to a large-scale distributed system or embedded system or complex prod environment.

CD also refers to Continuous Deployment, a practice where all changes are automatically deployed into production.

Contrary to Continuous Delivery, there’s no final manual approval step before realizing it into production.

To execute any of these practices, it’s vital to have the right CI/CD tools at pace.

Spread the Love!

LEAVE A REPLY

Please enter your comment!
Please enter your name here