There are six foundation blocks (Version control, Continuous integration, Issue tracking, Unit tests, Reviews, Code analysis) that ensure the quality of the software and therefore of the product itself. Various synergies between the specific parts enable transparency and maintainability. At the same time these components work as a toolkit for every single software developer.
Through the usage of a version control, each modification of the code is comprehensibly documented, and each version can be restored at any time. This grants flexibility to the development and allows a precise analysis of all arising errors of the software.
The use of a continuous integration (CI) system allows a controlled compiling of new software versions as well as continuous reporting for the developers regarding any arising errors during the compilation. Additionally, automatically elicited key figures, which display the state of the product, can be generated and reported. Features and bugs, as well as milestones and project tasks, are managed through the Issue tracking system (JIRA and / or Confluence). This creates traceable and transparent development from requirement analysis to delivery and allows the creation of relationships between individual tasks or features.
The Interaction between these three systems (Version Control, CI, Issue Tracker) as well as the interaction of the developers with them provides additional benefits, which increase the quality of the products even more. Any changes only need to be documented once, since the version control, issue tracking and CI systems automatically transfer the modifications. Because of this automatic transfer to the Issue Tracking System, every change is assigned uniquely to one requirement, which provides complete traceability to each action. The developer gains quick feedback through the CI System, since each change in code automatically generates a new software-version.
The usage of Unit-Tests and the integration of these tests into the CI System allows a quick identification and debugging of errors, even while the software is still in development.
Additional to this, reviews ensure that at least two people view and test the code before a component is cleared for further testing.