This blog post is an extension to my previous blog posts on tools for good software design and tools for good software design, part II, as such I’m not giving it a full bump in the part number :)

In the previous posts I mentioned six principles:

  • KISS” principle, and the importance of keeping things simple
  • Single Responsibility” that really helps to keep things simple
  • Eat Your Own Dog Food” – a technique to enhance the chances that APIs and infrastructure, in general, would be tasty (useful) to your users
  • Five Whys” – a technique that allows us to dive into the root causes of problems
  • ״Main Flow״ principle – a way to ensure that the entire core functionality is constantly working (hence main flow), by having the system self-check itself all the time
  • “Mechanical Sympathy” – knowing the tools we use makes us better at what we do

Meanwhile, I gave a talk about these principles in the last DevConTlv Conference:

Here is a map of the principles I mentioned in my talk:

Tools for Good Software Design - Map

The principles in the chart above are positioned in relation to two aspects of problem solving. The Y axis stands for “solving the problem right” – the higher a principle is positioned, the more it is relevant to solving a problem in the right way – that means, the solution used is less likely to generate/enhance future problems or errors. The X axis is for “solving the right problem” – the farther a principle is to the right, the more it relates or helps with solving the right problem. That is, the principle helps to make sure that we are actually doing something that needs to be done.  The principles positioning in the chart above are calculated, of course, in a highly scientific fashion, that is – totally my hunches :)

The sharp-eyed amongst you must have spotted that in this chart I added a couple of more principles: ״Another Level of Indirection״ and ״Breaking the Rules״. They will be the subject for a future blog post. Anyhow, I’ll end with another quote from Yogi Berra that semi-relates to the dangers in “breaking the rules” principle. This was his answer when he was asked why his team lost the game:

“We made the wrong mistakes” – Yogi Berra.