Simplicity is necessary for long term success. This is true in all areas of business, especially technology. On occasion a complex tech product dominates a market for a while, but by and large, simplicity wins in the end.
To be clear, I’m not talking about simplistic technology. I’m talking about technology that solves a problem using the fewest parts. This is the opposite of the kluge, an assembly of ill fitting cogs that inefficiently address an issue.
Developing simple technology works in cycles.
Inventors have an idea, a new solution to a problem.
As the inventors turn that idea into a reality, they realize the problem is more involved than first anticipated.
The solution becomes more and more complex as the inventors near their goal. Eventually, they have a messy, first draft solution.
The inventors continue to brainstorm and play with fewer and fewer parts. Over time they come to a simple solution to the original problem.
Some stop at their first solution. The best inventors don’t.
The Results of Simplicity
Simplicity enables creativity. Nothing slows down innovative ideas like grappling with bloated tech. Sometimes the struggle to understand a technology doesn’t leave any more mental room to think about how to better use it.
Simplicity leads to reliability. Bugs live between lines of code, so the more lines of code, the more bugs. Charles Lindbergh was the first to fly from New York to Paris in 1927 partly because he chose a single engine airplane. He understood that the more engines he used, the more likely he was to have engine failure.
Simplicity becomes performance. The fewer lines of code and transistors used to complete a task, the faster it can go. The famous computer designer Seymour Cray knew this. To the uninitiated, his designs seem complex, but computer architects marvel at their simplicity.
Simplicity in Tech
In my career I have seen the cycle of simplicity and the resulting benefits time and time again.
Timesharing operating systems started with the Compatible Timesharing System (CTSS) at MIT. It broke new ground but was simplistic, leaving much to be desired. The next evolution, the Multics, was a massive academic paper generator of a project. It solved problems CTSS didn’t address but with enormous complexity. Dropouts of the Multics project took their experience and created Unix. Every operating system today owes most of its ideas to Unix.
Programming languages and compilers went through a similar process. When I was cutting my teeth, the world programmed in COBOL (business) or FORTRAN (everything else). Some had PL/I but most didn’t. There was a bit of BASIC, more as microcomputers became more available. We systems types used Assembler exclusively.
But then two things happened in parallel: Niklaus Wirth invented Pascal, and Ken Thompson and Dennis Ritchie invented the C programming language. The world of programming changed. A quick flip through their lightweight manuals demonstrated these languages’ power and simplicity (PASCAL User Manual and Report and The C Programming Manual).
All programming languages are descendants of Wirth’s and Ritchie’s work. You can thank Ken Thompson for using curly brackets in your programming languages. My team and I strive to craft our products with this simplicity, both inside and outside.
Simplicity from the inside gives Coraid reliability and performance advantages. Some Coraid systems have been documented to have run more than six years without rebooting.
External simplicity allows users to be creative with Coraid products. Anywhere you can use a disk drive you can use an EtherDrive.
It’s hard but rewarding work, and I’ll keep at it. Simplicity is not optional.