Good software design is the cornerstone of any software development initiative!
Requirements Elicitation & Analysis:
During this important stage we determine, document and analyse the project's requirements. We liaise with all of the project stakeholders in order to get as full an understanding of the requirements as possible. Secondary requirements which may arise due to performance considerations and the like are also considered. Test strategies are designed to validate the requirements. The requirements feed directly into both of the following design tasks:
In some cases, depending on the scale of the project, it may be necessary to carry out a high-level or architectural design. As well as designing the software system at a high level of abstraction; various technology, protocol and software tool options will be evaluated and chosen. For smaller projects, this stage may not be necessary.
This design task involves determining how each of the individual project requirements will be realised through software and it leads directly to coding.
'Ivory Tower' design is rarely very successful, we like to develop a real working prototype as early as possible in the software design and development cycle so that we can validate our design and gain insights on how to improve it. The prototype evolves with the design and vice versa.
We offer a design review service. It is often very useful to get another pair of eyes to check over and validate an existing design before development resources are committed. The earlier potential problems (or opportunities) are spotted the better.