System Design

While this topic is about our approach to CAE software design, the philosophical points could apply to other disciplines such as the design of complex electrical systems.

System design is one of the most interesting parts of our work which is very fortunate given that it is critical to the success of a project. If the design of a CAE system is sub-optimal or just plain wrong, lots of effort can be subsequently wasted working around flaws that might have been designed out.

As trained engineers with extensive industrial experience we believe we are better placed than most computer programmers to be able to understand fellow engineers’ requirements and to be able to imagine ourselves in their position using our CAE software. This also enables us to make many decisions without constantly having to trouble our customers with trivial questions. We promise not to waste your time. Careful listening, understanding and communicating with customers is one of our most valuable skills.

Lateral Thinking

We have spent many years designing, developing and implementing CAE software and we have first-hand experience of many different CAE techniques. As a result we have a broad understanding of what does and does not work. However, because everyone lives in a bubble framed by their own experiences and knowledge, it can sometimes be difficult to step outside of the bubble to recognise the existence of new or novel alternatives which might be better than previously tried, tested, safe and easy options. As F. Scott Fitzgerald stated: “The test of a first rate intelligence is the ability to hold two opposed ideas in the mind at the same time, and still retain the ability to function. One should, for example, be able to see that things are hopeless and yet be determined to make them otherwise.”

Actively seeking lateral thoughts from other disciplines is often an excellent source of inspiration and a means of breaking out of the bubble. An approach successfully used by one of our customers in the mechanical engineering industry was to maintain an extensive “museum” of products they and their competitors had made. Designers were actively encouraged to spend time handling products in the museum. We have also developed systems to help electrical designers identify similar-to designs.

“Framing” is a psychological term used to describe the way we make sense of the world from our individual collection of experience and knowledge. While framing is highly useful, it does colour our perceptions and it can be a nasty behavioural bias that encourages us to be lazy, narrow minded and limiting our ability to analyse problems.

A useful counter balance propounded by Charlie Munger (Warren Buffet’s partner in Berkshire Hathaway) is the concept of a lattice work of mental models which he uses to analyse investment opportunities. Charlie believes you’ve got to have multiple models because with just one or two, the nature of human psychology is that you’ll torture reality so that it fits your models or at least you’ll think it does. A lattice work of mental models can be thought of as a set of overlapping and interacting set of ideas which is useful and relevant to system design where it is often the case that alternative solutions are not independent but overlap or interact in some way. The lattice work of mental models can be useful in probing and analysing alternative solutions with the aim of selecting the best tools and design for an application.

Knowledge and extensive experience is a wonderful foundation and advantage but learning is a lifetime activity. Knowledge can ossify as you get older. The computer industry is very dynamic with constant advancement and change. Along the way many seemingly good ideas fall by the wayside which can sometimes be wasteful but it is an exciting and deeply interesting industry in which to work.

Keep it Simple

It is often the case that the power and benefits of CAE systems are beyond the reach of users because they are too complicated or time consuming to use. This is especially a problem with systems which are only needed on an occasional basis.

The objective should always be to produce a simple and elegant design. Keep it simple stupid (KISS) is a good guiding principle as it is often much easier to produce a complicated solution than a simple and elegant solution. As Blaise Pascal said “I would have written a shorter letter, but I did not have the time”. Also necessary complexities should, as far as possible, be buried in the program and hidden from the user. We aim to design CAE software that is like a swan; visibly elegant and effortless while in the hidden depths it’s paddling like fury.

While it is desirable to simplify a system design as much as possible, over simplification can be dangerous. The best way to handle these competing challenges is to view the user’s requirement and the proposed system design in as many different ways as possible. In computing there are usually several different ways of achieving the same result. Sometimes the differences are trivial and unimportant but sometimes choices made at the design stage can have a dramatic influence on the entire project. Having multiple perspectives on a problem promotes deeper thought and insight, especially with problems that do not have black and white, right and wrong solutions. This approach also helps avoid over obsessing on detail and enables the designer to sweat the big stuff.

Page 2 of 2 >>


The starting point for many designs!!!





HarnConnect and HarnWare are two of our more complex systems.