Designing bug-proof engines
Suppose you have to make an engine that's going to operate in an environment with a lot of bugs. There are two strategies you can take: Which you choose is often downstream of requirements, but you should be aware of both options. Too often, the engineer gets stuck on one option when it would actually be easier to take the other path. What are some other instances of this problem? The Saturn V is an example of #1, whereas the Falcon 9 is an example of #2. In programming: C is an example of #1, whereas Java is an example of #2. In distributed systems: In writing: The list goes on, but the pattern is the same. I first had this thought when working at AWS on distributed systems. Before the "bug-proof engine" analogy, I visualized it like you're designing a device to transfer marbles across a room. You can design a device that never drops any marbles. Or you can design a device that sometimes drops marbles, and pay a janitor to sweep them up every night. So I'd call this "perfectionism vs
Suppose you have to make an engine that's going to operate in an environment with a lot of bugs. There are two strategies you can take: Design the engine such that it's impossible for bugs to get inside Design the engine to tolerate bugs getting inside Which you choose is often downstream of requirements, but you should be aware of both options. Too often, the engineer gets stuck on one option when it would actually be easier to take the other path. What are some other instances of this problem? Design a rocket engine that never fails Design a rocket that can tolerate engine failure…
saved by
related reading
- Essays on programming I think about a lot | benkuhn.netbenkuhn.net
- Notes on Distributed Systems for Young Bloods – Something Similarsomethingsimilar.com
- The Grug Brained Developergrugbrain.dev
- The Shape of the Systemshapeofthesystem.com
- https://danluu.comdanluu.com
- Writing an engineering strategy. | Irrational Exuberancelethain.com
- John Carmack on Idea Generationamasad.me
- AddyOsmani.com - 21 Lessons From 14 Years at Googleaddyosmani.com
- The Programmer's Paradox: Systems Thinkingtheprogrammersparadox.blogspot.com
- Good Engineer/Bad Engineerterriblesoftware.org
- Do the simplest thing that could possibly workseangoedecke.com
- What is "good taste" in software engineering?seangoedecke.com