A-Z Popular Blog Encyclopedia Search »
Management
 Advertisements
Management Theory

Management Functions

Change Management

Project Management

Management Accounting

11 Elements of Continuous Delivery

 ,
Continuous delivery is an approach to software development that allows software to be released at any time. This involves short development cycles, frequent integration and automation of deployment and testing. The following are common elements of continuous delivery.

Sprints

Organizing work into short work cycles known as sprints that typically last a few weeks. A business unit may maintain a backlog of work that may include thousands of requirements. Each sprint begins by prioritizing work from the backlog that is potentially releasable.

Deployable Software

Development teams that prioritize keeping their software deployable at all times.

Continuous Integration

The practice of merging all developer work into a shared mainline several times a day.

Version Control

Version control is a tool that maintains current and historical versions of all code. This often has useful features such as viewing the difference between any two versions of a file.

Automated Deployment

The ability to automatically deploy code to any environment with the push of a button.

Test Automation

A tool that automatically runs test cases against an environment and reports results.

Deployment Pipeline

Maintaining environments for different stages of a build such as system integration, testing, user acceptance testing and production environments. This allows stability for labor intensive processes such as user acceptance testing while providing environments that are continually built and automatically tested.

User Acceptance Testing

User acceptance testing is the process that a business unit uses to accept software as complete.

Operational Acceptance Testing

The process that operations teams use to accept software as resilient and supportable such as load testing.

Security Testing

The process that an information security team uses to accept software as secure such as vulnerability assessments and penetration tests.

Release Management

The process of planning releases and making the decision to launch a release to production.

Continuous Delivery Process

Continuous delivery is a process of regularly checking in the work of multiple developers into a shared mainline in a version control tool. The code is then deployed to a system integration testing environment for build and unit testing until these tests pass. The code is then deployed to an automated acceptance testing environment until that test passes.
With the code integrated and build, unit and automated testing completed the code is then deployed to a user acceptance testing environment. Business units test the code and open defects against any variances. When user acceptance testing is satisfied that the code is reasonably high quality it is releasable. The release management process decides when to actually deploy releasable code.

Continuous Development vs Continuous Deployment

Continuous development regularly produces code that can potentially be launched to customers. Continuous deployment regularly produces code that is launched to customers. The difference is that continuous deployment doesn't include a release management decision about when to launch a release and instead automatically releases any code that passes testing.
Overview: Continuous Delivery
Type
Definition
An approach to software development that allows software to be released at any time.
Related Concepts

Coding

This is the complete list of articles we have written about coding.
Abstraction
Algorithms
API
Bootstrapping
Caching
Code Refactoring
Code Smell
Complexity Hiding
Components
Deep Magic
Edge Case
Event Processing
Forward Compatibility
Hardcoded
IT Artifact
IT Examples
Layers
Microservices
Negative Code
Precomputation
Proof Of Work
Pseudorandom
Reusability
Scalability
Software Design
More ...
If you enjoyed this page, please consider bookmarking Simplicable.