Good software is like a knot

About 1 min reading time

Warning: philosophical, almost silly, post about knots ahead

While I was getting our sailing boat in order for a trip during the past weekend, I had an insight.

Good software code is like a reliable knot

I was tying some ropes and it hit me how knots can be as beautiful, simple, messy and complex as code is.

  • A good knot should be elegant but robust
  • A good knot should be simple enough to understand and solve by another person
  • The more complex the knot is, the more open it is to vulnerabilities and weaknesses
  • Using existing knots which are proved to work in certain conditions is good
  • A good knot in one situation may not be the optimal choice in another

Now switch knot above to piece of code or software.

I reckon you might be able to draw parallels about programming to many areas, but I think knots are one of the clearest comparisons.