Simple software is beautiful. Beautiful software is simple. Simple programs are dramatically less expensive to create and maintain, for all of the above reasons. The simplicity of software also is a key metric distinguishing programming ability. Junior programmers create simple solutions to simple problems.
Senior programmers create complex solutions to complex problems.
Great programmers find simple solutions to complex problems. The code written by topnotch programmers may appear obvious, once it is finished, but it is vastly more difficult to create. Just as the goal of science is to find simplicity and order in a seemingly complex universe, the goal of programming should be to find simple solutions to complex problems. Finally, there is a global quality to beautiful software that is not the sum of the previous attributes. All of the above qualities must come together to create an overall design that is beautiful.