What software architects/developers frequently forget ...
When looking at code or architectures, sometimes I get the feel that developers forget that the art of programming, or any other problem solving task, is really the beauty of being able to transform a complex problem into a series of simple, well defined logical steps. Here is what some of the most intelligent people the world has ever seen remind us:
“If you can't explain it to a six year old, you don't understand it yourself.”
― Albert Einstein
“Simplicity is the ultimate sophistication.”
― Leonardo da Vinci
"Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it."
- Alan Perlis
So, the gist of the story, the role of an excellent developer or architect is not to complicate the simple, but to simplify the complicated. Sometimes people can easily get mislead about the beauty of a solution by admiring its complexity, but really and truly the greatness lies in the ability to simplify a complex problem.