The 3 Big Cs of Continuous Agile Development
Agile development is important. Here we cover Agile CI/CD/CT: continuous integration in Agile; continuous testing in Agile; and continuous delivery in Agile.
Why Agile and Continuous?
Agile and continuous development go together.
In the age of Agile and digital transformation strategies, every brand is looking to set themselves apart. You need to be offering services to end users on their terms, on their devices, at their convenience, streamlining and differentiating features. On top of that, end users expect everything to look great, work perfectly — quickly.
When choosing your digital transformation strategy, there are key tradeoffs to understand between what are seemingly conflicting agendas. You need to get features to market faster. But you need to balance increasing presence on users’ devices against maintaining high application quality.
What’s commonly known is that acceleration can come in the form of adopting an Agile process:
Highly independent dev teams who are responsible for a feature or area of the code and delivering incremental functionality from design to production.
That's where continuous and Agile go so well together.
The 3 Cs of Agile Development: CI/CD/CT
Continuous integration (CI), continuous delivery (CD) and continuous testing (CT) are all important in Agile.
While serving slightly different objectives, these elements can actually integrate to assist the team to achieve the goals we mentioned: velocity and quality.
Continuous Integration in Agile
Continuous integration in Agile enables developers to merge all code changes into a shared repository several times a day — automatically.
Continuous Integration is a necessary approach for any Agile team. The image below depicts a team that has not implemented a CI process. You see a 60-day development period and then after all that, the team shares their code.
The outcome of such a scenario is creating or extending the post-sprint stabilization phase, where developers need to test and redo integration points. This gets expensive. Naturally, this is also very frustrating to developers and testers.
Continuous integration in Agile changes that. The team integrates increments from the main tree continuously. Using test automation, they are able to ensure the integration actually works.
Each sprint finishes on time and within the defined quality expectation. This shrinks the stabilization phase, possibly enabling you to get rid of it altogether. In a CI process the ideal would be a working product at the end of each sprint, maybe even each day.
[Related Blog: The Keys to a Strong CI/CD Pipeline]
Continuous Testing in Agile
Continuous testing in Agile is the process of automating test activities into every commit. It's also sometimes called Continuous Quality. Continuous testing (CT) enables the promise of Agile.
Teams are looking at CT because developers spend precious time fixing a bug for code that was written long ago.
In order to fix the bug, they first need to remind themselves of which code it was, undo code that was written on top of it, and retest. It’s an extensive effort.
Testing should take place every commit, every few hours, nightly, and weekly. This is the type of testing that increases confidence in the application quality and drives team efficiency.
[Related Blog: What Is Continuous Testing?]
Continuous Delivery in Agile
Continuous delivery in Agile is the practice of automating all processes leading up to deployment. Thus, continuous delivery takes Agile through to its conclusion.
Continuous delivery includes many steps, such as validating the quality of the build in the previous environment (e.g., dev environment), promoting to staging, etc. These steps, done manually, can take significant effort and time. Using cloud technologies and proper orchestration, they can be automated.
As opposed to continuous delivery, continuous deployment takes agility to the next level.
The working assumptions are that:
- The code is working at any point in time (for example, developers must check their code before they commit).
- A significant amount of testing is done automatically, such that we have confidence the build is solid.
That level of test and orchestration automation is difficult to find, but some Agile SaaS organizations are certainly benefitting from this approach.
To complete an efficient CD process you need to ensure you have a monitoring dashboard for your production environment in place. This helps you eliminate performance bottlenecks and respond fast to issues.
How Perfecto Supports Testing in Agile Development
To ensure success in a rapidly transforming marketplace, brands need to accelerate their time to market, increase presence, and ensure high quality.
CI/CD/CT in Agile are the answers. They enable the velocity and quality needed.
Perfecto supports all three:
- Perfecto integrates with continuous integration tools, such as Jenkins, Azure DevOps, TeamCity, and Circle CI.
- Perfecto enables continuous testing.
- Perfecto provides the automation and fast feedback you need for continuous delivery.
See for yourself how Perfecto supports testing in Agile development — and the 3 Cs. You can get started with a free trial today.