Mechanical Sympathy
Hey folks, heres another jargon of the day for you to chew on: Mechanical Sympathy.
From google and to continue David's and Tanya's Speed Zoomies analogy for team/software development:
Mechanical sympathy is when you use a tool or system with an understanding of how it operates best. You don't have to be an engineer to be be a racing driver, but you do have to have Mechanical Sympathy .
It's basically understanding some basics about the tools you're using (or assessing) to help you use them more effectively.For us this may mean using multiple lenses to assess the tool being considered/used:
performance - whats the best way to get the most performance out of the tool
operational support - how do I use this tool in a way to minimise the amount of maintenance I need to perform on it
cost - how much does this tool cost to use? are there much cheaper alternatives?
security - how do I lock this thing down - is there a public admin console waiting to be abused with default passwords? Do I trust the maintainers?
reliability - how robust is this tool? is it widely used/supported? is it a managed service?
You can use this as a way to assess whether something is fit for purpose or not for your use case(s). A example is datastores: NoSQL (dynamodb) vs. relational databases (postgreSQL) - if you know a bit about each you can understand where to apply them to make a better platform.You can use mechanical sympathy to inform your decisions - it's a good heuristic and self check to reflect on whether every problem really is a nail that must be smashed with the same hammer. Also consider when you have no mechanical sympathy - if you are using a tool and you don't know how it works or does it's thing - this is a risk, you should be addressing this through self-learning or coaching.
Use this to pick the right tool for the job, understand what your stuff runs on and make better decisions.













