Sometimes Simple Just Means Dumb
The Holy Grail of Simplicity is impossible to define. Software engineers spend the majority of their mental power striving to keep things simple in the face of enormous complexity: in their tooling, in their organization, in their domain, in the world. It’s not always clear what simplicity is in a certain situation - and that fact alone keeps engineers employed - but sometimes simplicity is just about being dumb.
Some dumb things:
- Putting a SQL query in-line with your business logic
- Writing all your code in the
main()
- Using a literal directly, without pulling it out into a constant
- Writing a for loop rather than a stream
- Writing business logic that often produces the wrong result, but in an obvious and correctable manner
- Assuming their business operates in a single timezone
If you’re building something small, you have the privilege of being dumb. In fact, that’s one of the best reasons to build small things rather than big ones. In smaller things, dumbness looks more like simplicity, and it is less likely to be mistaken for isolated laziness or excessive cleverness.
Many of the above things are genuinely terrible ideas in certain contexts - but that doesn’t mean they should always be ruled out entirely.
Not always - but sometimes simple just means dumb.