The Process of software production has a lot of analogies to the production processes of other industries. To obtain a high quality product, it is required to have a very well organized production workplace. Additionally- high quality products require specialized tools. This implies the need to have advanced knowledge of how to use such tools. High quality products must be correctly and very accurately tested.
Read the e-book and learn how to organize the CI / CD process, taking into account various types of tests and strategies of working with the source code repository. Here is an overview of the content and the first chapter.
Table of contents
- Principles of software
- The problem of a successful product
- Trust level for software quality determination
- Implementation of Trust Levels
Continuous Integration (CI) process has been recently widely adopted by different software production industries. In theory it has several benefits like immediate information about product state and reduction of project costs. But in practice, very often CI systems evolved to the state, where all benefits are overridden by high levels of complexity, bad assumptions and incorrect test system design. Incorrectly designed and scaled CI systems are generating extra maintenance costs, without apparent benefits.
In this article the author will present practical hints on how to keep software product quality in a good shape with the help of a well designed Continuous Integration process. Aim of this article is to propose a development process, code repository structure and quality metrics. Composition of these elements could be the key to maintain the quality of the software with rapidly changing requirements.
Process of software production has a lot of analogies to the production processes of other industries. To obtain a high quality product, it is required to have a very well organized production workplace. Additionally- high quality products require specialized tools. This implies the need to have advanced knowledge of how to use such tools. High quality products must be correctly and very accurately tested. Test results shall be used for continuous improvement of the production process. At the end product must be properly packaged and delivered to the customer. The above analogy captures the specificity of software production. Recent trends in the industry put tremendous pressure on automation of the process of creating, testing and delivering the software.
There are a variety of software tools designed to support CI processes. But to use such tools in the most optimal way, organizations must define CI process principles like general structure of code and test repository, rules for code quality rating, rules for test automation and execution.
From the observation, the level of chaos in the project was always inversely proportional to the level of understanding of the code delivery process between repository branches (including delivery to the production environment). Development teams need clear rules on how to work. The concept of software trust levels helps to immediately judge the quality of the product. Trust level is assigned to the product based on the results of different validation points (validation point result should be always binary- it could have value true or false).
The concept is assumed to be scalable, as content of the set with validation points is flexible and should be defined accordingly by the organization.
The proposed software trust levels framework is intended to be easy to understand and easy to scale (it can be adapted to the process used by the small as well as in the corporate size teams).