> I have made GUIs many, many times and my best case scenario goes something like:
> 1. A design has been made, everyone loves it. Detailed drawings have been made.
> 2. The devs are told to Make It
> 3. The devs Make It, exactly to spec
> 4. Everyone looks at it and everyone hates it
> 5. So many meetings. So much stress. This Is Terrible! What To Do?
> 6. A new design is made. So much better! Detailed drawings are made.
> 7. The devs are told to Make It
> 8. The devs Make It, exactly to spec
> 9. Everyone looks at it and They Do Not Love It
> 10. So many meetings. So much stress. This Is Terrible! What To Do?
> 11. Someone suggests in one of the many, many meetings what amount to basically minor changes, moving something, changing some colors, changing some text, something like that.
> 12. The devs Make It, exactly to spec
> 13. Nobody’s happy. But nobody hates it.
> 14. The devs are pissed.
I have similar experience. I think the real issue with GUIs: You have technical people building something (mostly) for non-technical people. Imagine developing a GUI for an internal app that the purchasing or accounting department uses. Most of your internal customers are non-technical. They don't think like devs. Plus, many devs have awful communication skills, especially with non-technical users, so large gaps in expectations can emerge.The best experience I have ever seen: Have the internal customer team hire a semi-technical fresh grad. They are the primary dog-fooder of the new app. Force them to do their job only using the new app (as much as possible). They give lots and lots and lots of immediate, direct feedback to the devs. You can slowly iterate to something reasonable. The secret that makes mid-level managers upset: Don't plan; allow it be built organically, especially if your audience is internal.
Another thing that I have noticed: Some people are just way, way, way better at designing and implementing GUIs. I have no idea how to filter for these people, but "you know it when you see it".