Identify Room for Improvement
Fujitsu is one of the world's leading information and communication technology companies. The German subsidiary Fujitsu Enabling Software Technology GmbH (EST) develops software used for providing and operating cloud infrastructure, marketplaces and services.
Software quality is of great importance to Fujitsu, not only because of the company’s Japanese roots. To identify room for improvement with respect to maintainability, the company asked for a neutral external assessment.
We use a fully automated analysis to audit the provided Java source code. In doing so, we examine different quality aspects, such as structure, comments, redundancy, exception handling and architecture conformance. The results are enriched by manual code inspections and interviews with key members of the development team.
We summarize the results for Fujitsu EST in the form of a detailed written report and personally discuss them with the project managers.
Fujitsu EST knows which areas are exposed to possible long-term maintainability risks. This way, quality assurance measures that have already been planned can be applied in a more targeted manner and included in project planning.
Furthermore, Fujitsu EST can depict the quality to the parent company's stakeholders in a transparent and comprehensible way. Hence, positive effects of earlier improvements to the development process can be proven objectively.
What we did at Fujitsu
The code analysis considers well-accepted quality criteria. It is based on automated analysis using Teamscale, which supports analysis of nearly all programming languages. Our experienced auditors validate the results.
Our experienced auditors contribute manual analyses of criteria not coverable by tools, e.g., the quality of comments in the code, and complement automated analyses by an in-depth review of selected source code files.
Together with the development team, we identify and discuss the components of the system and dependencies between them. We also cover deployment aspects and interaction with other systems, as well as properties like scalability, security and performance.
Together with you, we select relevant changes that are likely to be done to your system. We discuss with the development team the impact of these changes and how well they are supported by the architecture.
Software systems typically rely on a large technology stack including programming languages, databases, frameworks, and libraries. We analyze the relevant technologies for associated risks, based on standardized criteria.
The development process itself contributes significantly to the future-proofness of a system. Based on the phases of a typical process, we discuss tools and methods used by the development team to implement changes. The assessment considers industry standards and established best practices.