Quality is everything

H&C's approach to software engineering is inspired by the Lean Manufacturing principles first developed by Toyota in the 1930s. Our focus on eliminating waste in the process of turning business requirements into software enables us to efficiently deliver quality systems.

Demystify all the things

We help stakeholders to understand that code is just a language for writing instructions. Most languages, including plain english, are good for writing instructions. The difficulty is to know what the instructions should be.

We use programming languages with Algebraic Type systems. This enables us to record instructions in runnable computer code that can also be understood by non technical stakeholders. This ensures that nothing in lost in translation between business domain experts and our engineers.

Scale and quality by design

We know that small teams of exceptional engineers are many times more productive than much larger teams of less experienced people. Unfortunately SCRUM and object orientated design patterns have led to very large teams and bureaucracy heavy development processes.

Our use of Functional programming eliminates the Object Oriented code bloat that often codes around problems rather than through them. This commitment to reducing waste also makes our client engagement model focus on delivering value rather than ceremony.

Technologies we use

.NET

F#

C#

Python

Docker

Kubernetes

Google Cloud Platform

Amazon Web Services

Microsoft Azure

TensorFlow

Keras

Xamarin

React

Angular

Raspberry Pi

Android

iOS

One piece flow

Another Lean Manufacturing principle we have applied to our software delivery process is 'One Piece Flow'. Many of our clients are already applying this principle to their production lines. Working in large batches requires speculative planning and reduces feedback information. Instead we create quality through a feedback loop by continuously delivering small updates. This enables us to delay decision making until we have facts, rather than forecasts. It also ensures that quality control is a continuous rather than retrospective activity.

Music not magic

Writing software is like making music, the quality of software is as dependent on the skill of the engineers as music is upon the level of the musicians. Quality in software is measured in speed to market, number of bugs, how well it solves the target problem, and how easy it is to change as the problem and surrounding context evolves. These problems are best solved by a small team of empowered engineers who work with tools and methodologies that reflect their expertise.

Learn how technologies we deploy could transform your business

Find out how our technology could drive your success.