What this concept means, usually, is the process of finding a solution and the description of the solution found for a particular software programming task. So, why finding a solution becomes designing? Obviously there is a need to imply that it is not all purely logical or analytical work. There is a hidden non logical component in this process . A part which is somewhat artistic where some of the concerns would belong to the domain of aesthetics rather than performance.
The aesthetic part of programing rarely becomes important enough to get any attention at all. I don’t remember seeing in design documents sections dedicated to the look of the classes and during design review sessions I never heard lines like – “the solution should work but the aesthetics is not brilliant, give me something prettier please”. Still, designing, using the artistic meaning, is present in creating any product whether it is a software product, a software source code, automobile engines, automobiles or just cleaning products. Of course, aesthetics gets more attention when designing sport cars than it gets for designing soap and still it is there nevertheless.
Source code isn’t created to sell its looks . It was made to perform some logical tasks. Same holds for automobile engines. Still, the process of getting to a good design of a sport car is very similar to the process of designing the technical, dirty little pieces of software. In both cases there are many different ambitions and it is never possible to satisfy everything. In the end there is going to be some trade-off and compromising and the creative process of adapting and changing the formation till the compromise is solid is the design process. There is always more than one way to skin a cat http://justapipe.wordpress.com/2010/07/19/skin-the-cat-once/ .Aesthetics plays a big part in designing sport cars only because sport cars has a high requirements in regards to aesthetics. It is just one of the items in the wish list along with more technical ambitions like speed and power. And, although aesthetics is not going to be on your requirement list for software design it is still there, in the background.
Decisions like more classes, big do all classes or small cohesive elements are influenced from aesthetics and not only from functionality. It is no too speculative to presume that better aesthetics would result in better functionality. Aesthetics, I sure that biologically as well as practice, is a shortcut for getting to better functionality. In biology, better looking woman or man is usually corresponds to better gene pool and therefore is more attractive. Better design, only by the aesthetic parameter would make it easier to read and maintain because we would know immediately where new additions belongs. When all the classes are arranged in some nice geometric form where more important classes are bigger (heavier) it is much easier not to make mistakes.
The opposite where everything is cluttered together… well, I don’t need to tell you about that.
When I get a design document where the artistic design elements are working well together I know it that it is going to be a deign that works and last judging only by parameters like space, layout, flow. Parameters that naturally belong to areas like architecture and commercial product design.
Aesthetics should become more explicit in design reviews and not because we like to pretend that that software development is more creative than other areas like architecture but purely for practical reasons.