Solution design can encompass many different deliverables working with the problem domain analysis from high level architecture, to low level algorithms.
Our designs are flexible, and open to many approaches based upon the requirements and resources available. Working from initial analysis, design considerations are carefully made but in quick succession over an iterative process though face-to-face discussion.
Where possible existing design patterns and available commercial or open source solutions will be used where they are a good fit. Our solutions do not introduce any bloat, rather they directly meet the problem at hand, without adding unnecessary layers or complexity.
From types of input, to the way information is presented, consistency is key! We believe a uniform style between software components is important for the overall functionality of software.
We believe in allowing for change, so come time for a new feature or alteration, our solutions can accommodate the desired change. Software design should be as modular as possible, allowing for parts to be replaced whilst not requiring broad modifications.
Design deliverables do not include “actual” code, however the procedural documentation can be used directly, allowing the software solution to be implemented. The design is inherently part of a complete solution.