System Design

Developing a good system design is central to building safe, reliable, extensible, and cost-effective products and services, but what is the system design? It is probably best to think of how we get to a system design and that will explain what it is.

It starts with the requirements for the product or service. The client will tell us what they want in a product, and we translate this in a set of requirements. 

We then take these requirements and identify and define the necessary modules and components, and place these in a coherent architecture.

We then examine the modules and define the interactions (interfaces) between them.

In a relatively simple design this can be straight forward. In more complex products it is likely to be more iterative; as we learn more through designing the system, we might need to further clarify the requirements.

Sometimes we might suggest adjusting the product requirements to accommodate a module or component that we have identified would make the design more effective and enhance the product.