Description and deliverables
A fixed price consultancy-led review of the software design and architecture targeting issues with performance, scalability, maintainability or usability.
The output includes the following deliverables:
- Report detailing strengths, weaknesses, and potential risks within the current software
- Recommendations for improvement
- Briefing session with stakeholders
Building software that proves to be popular is a great achievement. One of the side effects is that it places stress on the system which in turn tends to show weaknesses in design.
“Enterprise-strength” software is designed and constructed according to best practices such as design patterns, encapsulation and abstraction of layers. Performance and security are “baked-in” from the start as is scalability and the ability to support modification.
It takes a significant level of expertise to be able to assess software code to discover its strengths and weaknesses, and this is exactly what Storm’s Consultants deliver. They also have a track record of troubleshooting “show-stopping” technical issues.
Storm’s software architecture and quality audit comprises 3 activities:
- Understanding of the background and specific concerns
- “Deep-dive” into the code
- Report and presentation
The audit is led by a Principal Consultant.
The stages are described in more detail below.
Briefing to establish to purpose and value of the software, its version history, and the specific issues currently encountered.
Storm’s consultant will typically work with the senior developer to investigate the code and gain an understanding of how it has been developed and the challenges faced and overcome.
They may prototype some improvements on paper or directly in code.
Report and presentation
The report documents the code review and provides a basis for negotiating identified improvements.
Especially useful when bespoke software projects hit a barrier, or technical tensions appear in a project, Storm’s audit of architecture and software quality brings independent expertise to the situation, identifying technical issues and helping to provide the roadmap to improvement.