Ever hear the muse about the frog and the boiling water?
I use it to describe the behavior where we innocently allow otherwise really odd things to happen to software products over time. “Oh, it’s been like that for 10 years!” It is never a single, discreet moment in time; instead it kind of “sneaks up” on you if you are not paying attention.
For example:
- Code that is hard to unit test without bringing in all sorts of dependencies (even mocking barely helps)
- That javascript error that happens in (unsupported) Firefox, but not in (supported) IE or Chrome
- Instead of being more compatible with all modern browsers via a simpler and more consistent UI framework.
- Context menus (right-click) that have everything but the kitchen sink in them
- Instead of more clearly articulating the commonly-used vs the rare menu choices
- A UI that nearly defies Cucumber/Capybara testing
- A “Save As” dialog that also offers up to the user the ability to control the next landing page, to deactivate the item, to create a new item under a new parent, and to generate the PDFs for the item All under Save As!
- Instead of making the UX more clear and solving the real problem: undesirable workflow.
- We have Save. We have Save As. But wait! There’s more! You can Save As, give a new name, and choose from 3 different pages to go to next!
I often think it stems from a few common shortfalls:
- The real problem was not solved, but simply masked
- Complexity begets more complexity
- The domain is not understood, so incompatible fixes are tacked on in the wrong spots
- We didn’t have time to do it right, so we just got something that would work shipped
- The customer(s) wanted it built like this
- There is no overriding vision for the type of user experience we want to convey
- There is no hard-ass product owner putting their foot down
Don’t let this discourage you if you are still outside the pot looking in at friends and colleagues who are in the hot water. It’s an opportunity to improve, clean up, straighten things out, and start anew.
Don’t be the frog!