I'm researching a solution for a UX design issue that has plagued me for a while: when an experience closely mirrors the underlying API/database structure/etc. rather than aligning with what the user is actually trying to accomplish.

Git is one example I've seen cited, with the user expected to multiple atomic commands to accomplish what is normally one logical operation in the development workflow.

I often fall into a trap where I might have a database structure with three major tables and inevitably I end up with a UI that has three major screens- and this may not represent the best way for a user to interact with the system. If this anti-pattern has a name I can more easily research it but would also appreciate any pointers to research or strategies on how to overcome this on my next project.