System Consulting

Analysis & Design

Establishing requirements

We know how crucial it is to understand your objectives, and fully interpret what is requested. And many impressive solutions have started from just the vaguest indication of an idea.

This often means delving past the initial brief to find the root cause, and also considering wider stakeholders who may have an interest in or be affected by the proposed design. This involves:

  • Defining the top-level objectives
  • Defining the audience
  • Defining the functionality, usability, reliability, performance, supportability, security, implementation, augmented product and budget requirements (FURPSSIAB as an acronym, anyone?).

Analysis of the problem space

Where requirements gathering establishes baselines, analysis is about answering questions and arriving at options:

  • What overall ways are there to achieve this system?
  • How can we minimise administration by automating processes?
  • What new opportunities could the technology create for the business?
  • How will existing information be transferred into any new software?
  • The requirements are considered while analysing options for achieving a software solution, finding strategies to remove bottlenecks and streamline processes.

These are just some of the considerations that need to be taken into account. Canary will analyse your requirements, and provide our recommendations based on our experience with business & software solutions.

Where the typical consulting process fits in to a complete project lifecycle, leading on to development and a deployed solution.

Designing the solution

For many requirements where an obvious solution is apparent and Canary can help with (for example) Database Assistance or moving into Support & Maintenance, etc, the project may be diverted directly into implementation.

But most typically, analysis leads into solution design, expanding on how the system will be structured and the proposed implementation.

We leverage knowledge of applied software development regarding design, construction, configuration, maintenance, database modelling, implementation and management to frame up a proposed target solution:

  • System architecture
  • Data storage and models
  • Component modules
  • Processes
  • Interfaces

These are iterated back and forth with the client, to hone in on the accepted solution.


In modern, agile practice, many projects opt for a prototyping approach within the solution design process, rather than working towards abstract design documentation to define the solution.

In this manner the client and project team work to model interfaces and core functionality in a living, working prototype, as a rapid avenue for the various stakeholders to envisage, interact with, and provide feedback on the design. The prototyping method allows:

  • Easier visualisation, understanding, and communication of the solution – rather than interpretations from documents
  • Rapid iterations, evaluation of feasibility, and comparison against requirements
  • Easier transition into the development phase
  • Potential cost savings and faster delivery: often the prototype itself evolves into the minimum viable product, and onwards into the completed solution

This tends to have many efficiency advantages during the design phase right through to development, and suits most high-speed projects where time to market is a major consideration.

The caveat is this often replaces traditional design documentation. The project teams communicate very effectively via prototype iteration and there tends to be far less reference paper documentation for the solution from the pre-development phase, documenting design decisions, unless specifically agreed and contracted.

Getting started

Contact us using the form below to start the conversation about getting your project to fruition.

How can we help?

Use this form, or email [email protected]