For a while I have tried to think of a concise but general definition of
kinds of tools I like. Being a pragmatic person, I like things that
"just work", the highest accolade any software library or application
can get. I also eschew unnecessary complexity -- complexity is enemy of
robustness; and while it is always possible to easily add more
complexity, it is generally very hard to remove added complexity. And
finally, the thing has to be useful to be of practical interest.
And then it occured to me: condensed to essentials, these are the 3 main
properties that I like:
-
Simple ("as simple as possible, but not simpler")
-
Sensible (or, Smart)
-
Useful
Taken together, it leads to acronym SISU (or, SiSU), which also happens
to be a useful term in Finnish language (roughly translating to "have
guts", the trait of a person who never gives up).
So let's hear it for "Sisu Principle": best tools are
Simple, Sensible and Useful. They got Sisu, and form the backbone of
good software systems. They are also things that can carry overhead of
other of kinds of sisu-less components.