Simple Machines

Back in middle school I remember being intrigued by the science lessons about “simple machines”.

A simple machine is a mechanical device that changes the direction or magnitude of a force. In general, they can be defined as the simplest mechanisms that use mechanical advantage (also called leverage) to multiply force. Usually the term refers to the six classical simple machines that were defined by Renaissance scientists:

https://en.wikipedia.org/wiki/Simple_machine

Much later I read an article by Joel Spolskey who argued for an analogue in the world of software. He made the point that the pillars of the software world, things like Excel and PowerPoint and Word, were software reproductions of analogue paper methods. Excel is a paper ledger, PowerPoint is a deck of film slides, and Word is typed paper.

I see this dynamic in programming too. Writing code follows a similar pattern to writing prose. The initial process of spilling your guts is similarly fast and prone to poor quality. Then debugging and refactoring are like bringing in an editor or proofreader. Formal testing and user acceptance testing feel like letting someone read a final draft of your work.

It’s been famously said that we stand on the shoulders of giants. Those shoulders aren’t only a previous generation of mentors. We also utilize human adaptions and affordances that are built in to our physiology. And proven techniques for analog mental work translate into digital work as well.

Design a site like this with WordPress.com
Get started