Work back from UI
Work back from the UI.
How to prevent over-abstraction: start from the UI and work backwards.
Abstractions should grow out of actual practice. Never abstract before you build the simple, concrete, non-abstract thing that closes the loop.