Our engineering architect Nick Twyman led the assembled team in a session to brainstorm issues which might be severe enough to tank the project. He opened with the prompt, “Imagine you’re presenting to the entire company 12 months from now and must explain why this project completely failed.”
The short answer is when you have a "complex" problem to solve instead of a "complicated" problem. In this short excerpt from the 2017 Dent The Future Conference, Truss CEO Everett Harper talks about the crucial difference between the two types of problems, and why mistaking one for the other can lead to unintended consequences.
Tabs vs. spaces is one of the longest-running bike sheds in software engineering. Most engineers will, if pressed, have an opinion one way or the other. Most engineering teams have an agreement of mutually assured destruction if anybody brings it up after the project has started (and, by then, the project is formatted using whatever the first two engineers wanted). The problem is not tabs vs. spaces; the problem is that this isn't something that a software engineer should care about at all. It doesn't matter.
Truss’s work with machine data startup Gyroscope aimed to create a solid infrastructure foundation for their technically challenging work, so they could race ahead without building up technical debt. We chose Bazel and Kubernetes to make a modern and solid base so that deploys were run by a single command. Here’s how we did it.