Standardizing on a given platform or technology is one of the most powerful ways to create leverage within a company: improve the tooling a bit and every engineer will get more productive. Exploration is, in the long run, an even more powerful force, with successes compounding over time. Developing an investment thesis to balance the ratios and timing of standardization and exploration is a core challenge of engineering strategy.
What does this look like in the real world? Imagine our team is working on a personal training app that lets users get on-demand virtual training from available trainers. We’ve decided to launch a new feature that also prompts the user to order fitness products. We assume this will be a bonus revenue stream. It makes sense, right? Shouldn’t more opportunities to make money = more money? If our team had done some user interviews and user testing, what we would have actually learned is...
A few jobs ago, I was helping someone with a small tech issue, standing over their shoulder at their computer. The screen was unbelievably dark; I’m not exaggerating when I say it looked to be near 0% brightness. For all I knew, this person had some vision sensitivity or just a basic personal preference that […]
Writing tests (or deleting them, refactoring them, etc.) should always involve a cost/benefit calculation, even if it's a rough mental estimate that's not written down. In particular, that requires answering "How much effort will this test take me to write/debug?", "How much extra confidence will having this test give me?", "What level of confidence do I feel comfortable with?" and "Could I achieve higher confidence spending this effort on something else?".