Our total project service will typically include the design of the solution, working closely with the client, carrying out detailed analysis where required or liaising with the client’s team to gather supporting information. Continuing with the theme of risk avoidance, the maturity and stability of a chosen technology will be weighed against the opportunities provided by that technology; this not a trivial factor in our world of continually evolving hardware and software technologies.
Designing a software solution can involve multiple disciplines, from deep code-level performance requirements, mid-level database design, up to the ‘front of house’ user experience; our design process ensures these disciplines are driven by the overall objectives, whether set by business, or at a lower level, the project deliverables.
Design techniques have changed since the early days when users had just a monochrome screen and a keyboard with a few function keys as their main interface to an application. Then design effort was 90% about process functionality and 10% user-interaction. These days those values have just about reversed, with many ways to present on-screen views; multi-coloured, multi-windowed, and multiple applications running simultaneously. Mice and the multi-windowed displays arrived in the 1980s to move us on from our static screens and keyboards, and now we have a growing range of devices and more types of interaction such as touch, with tap, swipe, press, and even press longer and press harder.
Our design tools and techniques now include mock-ups, user stories, pilots, and prototyping, with the aim of delivering a solution with a good user experience. We use all these tools where appropriate, but also keep design and functionality in perspective to avoid the trap of over-design.