Overview

Our solution Design phase transforms a business case into a step by step implementation plan. We design domain models, customer experiences, technical architecture, release processes, security mitigations and support processes. Cocreating these elements with clients ensures we are fully aligned before we begin the implementation phase.

Planning creates space for Agile

Planning is an essential part of our Agile methodology. It clears a space in which rapid iterative work can be done without obstructions of process and risk management. We deliver our Design phase in three work streams.

Solution Stream

Technology Stream

Production Stream

Solution stream

The key challenge in all software projects is communication. We bring together a wide range of domain experts and technologists through techniques that capture the ideas and concepts of the solution in a clear, concise and shared language.

A shared language

We begin the solution stream with domain modelling. This is the process of defining the key entities in a system and the events that link them together. Quality software cannot be written without a clearly defined domain model that encapsulates the knowledge of the domain experts. The challenge is getting the information out of people's heads into a formalised structure which can be understood by all members of the project team.

A business is a set of processes

Modelling domains as separate chains of events is a powerful methodology. It is intuitive for non-technical staff as they already think in terms of business processes. Traditional software analysis fails to capture accurate domain models because its approach is alien to business people. Instead of thinking of a business as concrete operational processes, it attempts to capture a domain as a set static relationships between abstract entities.

From Post It Notes to human readable code

The first half of our domain modelling process ends with a detailed map often captured in remote workshops using a technique called Event Storming. We translate these maps into readable code that can be understood by non-technical stakeholders. We do this by using a radical new approach that combines Domain Driven Design with Functional Programming.

This enables domain experts to continue enrichment of the domain model at the a higher resolution of compilable code.

UserActorDataRead ModelUser InterfaceScreen LayoutDomain EventCommandUser ActionExternal SystemAggregatePolicy orProcedureUser InteractionQueryCommandCommandUserActorDataRead ModelUser InterfaceScreen LayoutDomain EventCommandUser ActionExternal SystemAggregatePolicy orProcedureUser InteractionQueryCommandQueryUser InteractionCommandUser ActionExternal SystemDataRead ModelUser InterfaceScreen LayoutAggregatePolicy orProcedureDomain EventUserActorCommandQueryUser InteractionCommandUser ActionExternal SystemDataRead ModelUser InterfaceScreen LayoutAggregatePolicy orProcedureDomain EventUserActorCommandQueryUser InteractionCommandUser ActionExternal SystemDataRead ModelUser InterfaceScreen LayoutAggregatePolicy orProcedureDomain EventUserActor

From domain modelling to user stories and wireframes

Once we have defined the domain model we begin to define user journeys. These user stories are iteratively developed using stakeholder feedback. Guided by the user stories we build interactive wireframes that allow stakeholders to give feedback on the end-to-end journey.

Finally we turn the wireframes into fully designed interactive prototypes. These prototypes incorporate corporate guidelines and illustrate the look and feel. Together with the domain model and process analysis, we have a sufficiently detailed solution design to move into the Development Phase.

Technology stream

H&C’s solutions are designed to complement an organisation's existing technology. To do this we run a dedicated Technology stream to specify the required integrations.

Data and system integrations

Our engineers collaborate directly with client IT departments and co-create technical architecture design and specifications with those stakeholders.

Cyber Security and Security by design

Security needs to be baked into solution design. Many of our clients work in regulated industries in which security incidents have critical consequences. We use a variety of techniques including Threat Modelling and Secure Development Lifecycle to ensure our solutions meet the highest possible standards.

Production stream

On-site testing

Many of our solutions are deployed directly into production facilities or customer centres. To ensure the success of these deployments, we plan on site testing in advance during the Design phase. This ensures a smooth transition of the solutions into production with minimal disruption.

Deployment and Release planning

The Design phase also defines the process for ongoing support and evolution of the solution once it is live. These processes should be aligned with the product roadmap and the context in which the solution will be launched.

Risk assessments and best practices

We work with a broad range of client stakeholders to ensure that risk assessments, performance requirements, scaling forecasts and FMEA analysis are developed and maintained.

Learn how your business could innovate using our five phase methodology