We have specialized in implementing technical due diligence for many years. Due diligence is basically a picture on the current state of the development department, where we audit the code, methodology, development environment, software architecture, etc …
The result of due diligence is never a judgment about the code or the architecture, but rather, a detailed description of the current state.
So we try always to deliver a solid document explaining the software department and with concrete advices to improve the software processes.
From now and so, we have decided to contribute to non-profit companies implementing due-diligence for free.
We hope those are good news for some companies… but… what is a technical due diligence:
Description of the software development model
Is very important to check how the team is working. IDEs, refactoring, code versionins, branch policy… everything is important.
Testing and Quality Assurance
There is no Continuous deployment and accurated devops withoug a strong QA system.
We check unit test and TDD as long as Functional Testing. Many times with our partner nexoqa.
Component Logical View
Based on the software architecture standard (4+1) we document all the components, paying attention to the intent and responsibility rather than the technology used.
Component Phisical View
Here we describe how the system is running and connected from the point of view of the components.
In software development life cycle we can think of governance as measure, monitor and management of software.
Governance is a critical part that ensure the system is prepared for change and you can control it.
We can thing on cross-cutting concerns as aspects of software that affects many parts of the software.
Although the due itself is a very valuable document since it gives a scientific view based on objective analysis and logical reasoning, the Results are so important to.
Due Results are important because are actions and modificacions we can make to make our software system better.