The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Art Classes

I like the declarative nature of the Windows Presentation Framework (WPF), and I think it is probably a step in the right direction. But I have strong reservations about the concept of decoupling the presentation from the logic.

For one thing, I am really bothered by the underlying assumption that software developers have no sense of aesthetics. I was involved in band and chorus in high school, and I took several art classes in college where I started out as a Photo Illustration major before switching to Computer Science.

If a software developer's Math skills were lacking, would we redesign the software so that there was a "Math Layer" that could be designed and maintained by mathematicians? No. We would send the programmer to Math class. So if a programmer's designs reveal a lack or aesthetic sensibility, why don't we send the programmer to Art Class? A company where I used to work recently hired a full-time fitness trainer. Why not hire a part-time art instructor and offer free evening art classes to employees?

The other problem with this approach of separating the presentation layer from the logic layer is that in most shops, I suspect that a single software developer is still going to be doing both jobs. There might be advantages to segregating the tasks, as in "today I'll work on the presentation and tomorrow I'll work on the logic". But my own experience leads me to suspect that form and function are not that easily separated.

I favor the notion of the software developer as a master craftsman who creates a harmonious blend of form and function. I think it would make sense to have a user interface specialist in an organization. But their job should be to mentor the software developers and help them to critique their work, not to simply do the work for them.

The bottom line, for me, is that if you take away the aesthetics, you take away the fun. I don't want to be a grunt programmer.
Smoothie
Friday, May 19, 2006
 
 
I agree with you, however, companies might find it more economical to hire a group of starving artists and train them to become developers.
Nonymous
Friday, May 19, 2006
 
 
> For one thing, I am really bothered by the underlying assumption that software developers have no sense of aesthetics.

I don't think it's that software developers don't have a sense of aesthetics, it's that they usually aren't required to. And as a result, many don't. Hence the need to separate logic or content from presentation.

> If a software developer's Math skills were lacking, would we redesign the software so that there was a "Math Layer" that could be designed and maintained by mathematicians? No. We would send the programmer to Math class.

Because art is subjective. Let someone else do the endless UI tweaking so I as the programmer can work on the logic.

> The bottom line, for me, is that if you take away the aesthetics, you take away the fun.

Source code can be beautiful, too.
DHofmann
Friday, May 19, 2006
 
 
> train them to become developers

That's the ticket. Get a bunch of art students and turn them into programmers.

After all, anyone can be a programmer.

Serious recommendations:

1) Get a book on design, follow the guidelines.

2) For web pages, there are a templates, some free, some as low as $25 to $50. You can customize a bit with color, logos, possibly the proportions.

3) Design something. Yes, it might look like crap. Hire an artist for a day to improve it.
dot for this one
Friday, May 19, 2006
 
 
Smoothie, I think your implied assertion that anyone can be taught to be a good graphic artist is fundamentally flawed.

There seems to be something about development that requires a different part of the brain than for being visually creative.  It is pretty rare that you find someone like yourself with both a refined aesthetic sense and good, logical programming skills.

Teaching someone who is good at math to be a good programmer is relatively easy.  Teaching someone who has never developed an aesthetic sense to have that sense is very hard, and further I would say that many developers just don't care - or cannot recognize a good UI from a bad one.

Developers do a good job of making programs work in a logical fashion and in solving difficult algorithms.  Designers do a good job of making software look pleasing to the eye and that work in an intuitive manner.  In my experience, the twain seldom meet.
Karl Perry Send private email
Friday, May 19, 2006
 
 
It's an interesting idea.  I wouldn't mind being sent to art class, so long as I wasn't being graded on my performance.

But I also don't see a problem with dividing the work between "make it look good" and "make it work."  I've worked at companies that did this.  Sometimes the programmer still ends up working on aesthetics (e.g. designing custom controls), but the designer is there to create beautiful mockups that give the team a goal to shoot for.
Kyralessa Send private email
Friday, May 19, 2006
 
 
I suspect part of the problem is the aesthetically challenged fear both feelings and people  which provides the major motivation for going into programming. Many so called aesthetic types fear logic and reality.  They choose to live in a world of unfocused fantasy.  Both types get off asserting their whims upon the fragment of the universe they believe they control. Ultimately, neither controls anything of much importance.  Meanwhile, the developers who have a strong sense of aesthetics, understand people, embrace reality, AND are good at logic have a clear field in which to ply their trade.
Lionell K. Griffith Send private email
Friday, May 19, 2006
 
 
"offer free evening art classes to employees"

How about free daytime art classes?
eb0rts Send private email
Saturday, May 20, 2006
 
 
Do people really need training and classes?  Those are poor substitutes for time, space and money.  Why not give those instead?
eb0rts Send private email
Saturday, May 20, 2006
 
 
I don't need classes to learn something new about programming; I'd just need a couple of books and enough time to learn.

But that's because I know how to learn programming.  I'd want somebody to guide me if I were learning art or design for the first time.  At some point I'd probably know enough about design that I could pick up books and glean extra details, but not when I'm just starting out.
Kyralessa Send private email
Saturday, May 20, 2006
 
 
"I'd want somebody to guide me if I were learning art or design for the first time."

I would not want somebody to interfere.  This was why I dropped the subject in school.
eb0rts Send private email
Sunday, May 21, 2006
 
 
Most artistic people could not design a good interface either. I think an architect/draftsman would have more appropriate skills. Just look at most flash based websites to see the results of artists developing interfaces. Use an artist to help with splash screens/icons/logos etc... but nothing else.
Adrian
Sunday, May 21, 2006
 
 
First, I'd say good design and good usability go hand in hand.  If the app ain't usable, it doesnt matter if it's pretty.  If the app isn't pretty, then it is much less usable.

From experiance, it is *very* hard to wear a programmer hat AND a designer/usability hat at the same time.  Why?  Being a good programmer means you know how to communicate a problem to a machine.  Being a good designer means you can communiate a problem to a living, breathing human being.  With our current state of technology, the two are at odds.  Thus, a person wearing both hats at once will always be fighting an internal war of "this is great for Joe Blow, but it will bloat the hell of out my code".  Who wins?  It depends.  But it is a constant struggle.

What is my point?  Sure a programmer can wear a designer hat while they program.  But it ain't easy.
Cory R. King
Sunday, May 21, 2006
 
 
There seems to be an implicit assumption that a better visual design requires more coding effort. I believe that much of what designers do amounts to the judicious selection of a harmonious set of fonts and colors. When you Diff the source code, the difference between a pleasing design and a garish design might be only in the color values and font names selected.

In art classes, I learned about principles such as "the relativity of color" and "atmospheric perspective". These principles affect our perception, and they are relevant to user interface design. They are not just a bunch of touchy-feely artsy-fartsy crap. They are based on an understanding of the human visual system and human visual perception. Understanding these things would make an programmer much better at producing a "pretty good" user interface. But applying these principles does not necessarily mean writing any additional code.
Smoothie
Monday, May 22, 2006
 
 
The problem I have with most of the simplistic decoupling we are always shown is that your interface WILL become less rich and more clunky for the majority of high usability real world applications.

The decoupled interface between presentation and logic needs to be rich enough to transfer enough feedback to the user in a timely way - i.e. all the options you have in a tightly coupled presentation and logic version (dynamic screen changes, focus changing, messages, highlighting) end up being channeled into this communications conduit (events or state or AJAX, or whatever).  So it's MUCH more of a design challenge.

So this puts MORE emphasis on a quality architecture (higher quality programmers) to make an easier life for graphic designers, yet will still continue to give the programmers more difficulties on a daily basis in achieving a high level interaction design targets while attempting to maintain that boundary.

This is a recipe for disaster for software which is designed for usability where the team is too inexperienced.  If usability is a priority goal, then you need to take a very serious look at this commonly prescribed design solution and MAKE SURE you can actually carry it off.  Even experienced programmers tend to be usability shortcutters and this can further compound the problem.
Cade Roux Send private email
Monday, May 22, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz