First steps in how to approach Continuous Integration & Continuous Delivery

In this presentation, we will discuss how to approach a continuous integration (CI) workflow for developing and testing products.

A CI workflow automates the process of building, testing, and deploying your software. This can help to improve the quality of your software and reduce the time it takes to get new features to market.

There is a big difference between Continuous Integration (CI) and Continuous Delivery (CD) which basically comes down to the complexity of the product you are creating.

The possibility of CI or CD is totally dependent on the complexity of the product which is being delivered and the integrated parts that product has, as well as the legal obligation where standards are concerned.

This high-level (First Steps) documents looks at the approach, first steps and tools needed to move towards CI & CD.

Continuous Integration and Continuous Delivery give the benefits of a faster software development life cycle, by using automation from code-commit to production delivery. The basic idea is to automate the manual test and deployment tasks, so you have the test coverage you need in the fastest cost-effective way.

Continuous Integration allows for multiple developers to work on the same code sets and check in the code daily, reducing code merging and build Issues.

Automated validation tests, unit test and format testing are run nightly, allowing for the latest tested code to be available the following morning for testing and continued development.

The code is generally a manual task performed by the developer; the rest is generally automated processes performed by the tools.

The available build can be fully automated to deploy to different test environments with specific environment configurations. Allowing for parallel testing of the new code and reducing environment deployment issues.

Functional and Non-Functional testing can be automated where possible, however some regulatory requirements which require manually approved quality assurance processes will remain manual.

User Acceptance Testing for new features are often manually verified for release and automated into the future functional tests.

New Feature development can be scheduled across different platforms, removing dependencies on different development workflows. Features can be created in “Feature Flags” allowing them to be switched on and off across platforms facilitating smooth transition into delivery test cycles.

The right Approach starts with Identifying the right tools. Project Management tools such as Jira and Confluence facilitates Agile methodologies to be adopted, for planning and transparent status reporting on the delivery for Epics, Features, Tasks, Environments, Code, Testing and Defects.

Benefits

Create Epic and Story statements for the product you wish to create.

Assign tasks to the Epics and Stories within Jira and keep an audit and transparent tracking

Project artifacts, terminologies and workflows are transparent and can be unified across different product workstreams.

Reporting is live and can be simplified with RAG status reports to transparently Identify bottle necks within the production workflows.

Test traceability can be monitored and traced across different versions of code and visually display acceptance criteria coverage.

Within CI, Code and Build tools are dependent on the development languages being used and often tested with automation tools specific for the language

Benefits

Automation can be triggered from the code check-in through to code deployment

Test reporting is automated across the build, test and deployment stages.

Code is tested daily, removing issues in build, format and code validation. Environments are ready to test with the correct predefined versions, deployments are automated and standardized across multiple test and release environments

The way to start Continuous Integration, is to document and understand the 7 steps below within your own company.

1.Document the the existing workflows, products and teams

2.Get a detailed understanding of the team’s pain points, objectives and processes

3.Assessments of pain points and identify where the bottlenecks are.

4.Create a bullet point list which identifies the measures you want, the proposed resolutions and the enablers.

5.Project management tools should be agreed and selected to unify the methodology, project artifacts and reporting within the SDLC

6.Identify and start the Tool selection and Training of resource involved.

7.Stage and schedule the delivery of the above steps and report on the improvements to the measures identified.

Note: The specific steps involved in setting up a CI workflow for products will vary depending on the specific products and development process.