Don’t design complex interfaces or layouts. Instead, make the simplest thing that could possibly work.
Programmers know this intuitively through the nature of their experience creating things, breaking things and fixing them. But it is as much true to design and crafting a great user experience as it is to tech architecture and development.
To paraphrase the Extreme Programming Roadmap:
When given a design challenge, explore your various option with a wide-open view of the problem. Think of a variety of contrasting solutions. But almost always, inevitably, the right solution will be the simplest one.
Break project into small simple pieces. Each piece should be well-defined and stand-alone.
If you have a big project made of little, simple, understandable pieces, you will have no problem knowing it and changing it.
programmers designers are those who write code design things even idiot programmers can understand.