During the software development process we ensure that at the start of the project standards are defined by the whole team and are accepted and maintained throughout the project.
To reduce dependencies within software a layered architecture is used (strict layering). Separation of concerns as well as the maintenance of very high code quality is a goal from the outset. Everything is programmed in accordance with the applicable best practice guidelines. Ensuring that the requirements are actually met can be accomplished by the use of appropriate tools. Tools such as Checkstyle checks compliance with certain criteria in the source code. Using automated tests can be checked with respect to the architecture. The picture of the software architecture in the form of UML diagrams enables long-term transparency and ensures an overall understanding of how the software works.
The choice of the most suitable architecture for a software product is based primarily on the life-cycle of the product on the production environment. Throughout the project, aspects such as security analysis, security audits and code reviews are always in focus.
Both the development and rollout of the project are preferably done incrementally and iteratively (i.e. partial deliveries of the end product at predefined intervals). By avoiding so-called Big Bang risks, vulnerabilities are significantly reduced.