The term due diligence means (see wikipedias definition of it) means that you have exercised the appropriate level of care and caution before a job task is undertaken. It often referred to the process of researching a company prior to purchasing it. Since there are legal implications, it is useful to come up with a checklist of items that should be in place. This will help you to ensure that you haven’t missed any important steps or quality checks. The process of a commercial or operational due diligence usually takes at least 8 weeks of time and can be very much longer depending on the complexity or the size of the companies involved.
Software and due diligence
In the field of software design and electronics, a due diligence involves a thorough assessment of a client’s existing platform or software code. It means asking the right questions of a client and obtaining the necessary information in order to proceed with a project or acquisition. Most corporations develop a due diligence checklist or a simple template that can be used and adapted for a given situation. With regards to software projects there are different questions to be asked compared to corporation acquisitions.
The due diligence checklist itself
The process checklist is designed in order to ensure that you are left with a very good idea of the strength of the software or project prior to taking it on. There are several issues that can be included into a checklist. These will typically begin with basic information about the corporation and then become more specific around the detailed issues at hand. Many of the considerations will fall under the basic category of literally common sense.
Crucial points include processes, the people (e.g. developers) involved, testing, documentation and of course hosting and finally details of how the software is released . Red flag issued items may include considerations such as the absence of a readable documentation or potential incompatibilities with an integrated development system.
With regards to software projects you may also take some time to evaluate the software development process itself and the underlying quality mechanisms. Depending of the maturity of the software it might be also a good idea to check the approach the developer team takes to achieve new releases through milestones. Today many teams use scrum as an agile approach to software development whereas older software might still be implemented with the older waterfall approach.