My first experience with “Web Design” was around 1997. the DotCom thing was heating up and a client wanted to host a web site that was “Designed” by a “Internet Design Company” (that I swear was not in business even 10 days before).
The problem was that the “page was taking too long to load”. I looked at what they did, and saw that while it was a beautiful page (yes, the “site” was only one page!), it was one big .gif file (and this is in the age of 2800 baud modems).
What I did, was break up the parts of the image, into separate images laid out using tables (again this is before the .css gurus told us how evil that was). The “Site” loaded in a tenth of the time and I learned that “Designers are only good for making mock-ups, and only programmers know how to properly make web applications”.
I hate to admit that this has been my attitude until this year. The year I ran into Alan Beasley. Without intending to, he made a Programmer admit that Programmers are not in charge of the most important aspects of building truly great web applications, the Designers are.
It all started with a simple article Alan wrote on CodeProject.com: Building Better Buttons in Expression Blend & Silverlight. The point is that these were “just buttons”, but they were fun to press. I started to use his buttons in my articles, and I noticed that people were more impressed with pressing the buttons than they were with my code examples.
I started to collaborate with Alan, and I watched people play with the PopUp in our Popup article over and over again.
I would ask them “why do you like this so much?”, and they would respond, “I like the way it smoothly slides between yes and No”.
It then hit me that Silverlight allows us to make applications that people find enjoyable to use. Perhaps it is the way a driver enjoys driving a finely crafted automobile. It doesn’t matter where you are going, it is just fun to drive.
I was particularly taken by a small detail that Alan put into a File Manager application that I Programmed and he Designed.
In that one, the slider in the middle “pulses” when you hover over it. It practically begs you to slide it smoothly left and right. It is a small detail, but it says to the user “we know you exist, and we care about your experience”.
All this comes at a price. Alan is a great guy, but he is after the best user experience, period. On a Windows Phone 7 tutorial, we spent two weeks, after I had completed all the coding, emailing back and forth resolving issues such a how he can transition from the list box to the video the way he wants.
Actually, every single project runs into the same design related issues:
It’s funny how I seem to be able to create applications that work just fine, and there are only “issues” after he gets a hold of it!
But, that the point, there IS a problem with the application. HE is the person who can SEE the problem. A single minded attention to the Design of an application, allows the application to be better Designed. After each “issue” is resolved, I have to admit that he is right.
Look at my version of the File Manager:
And look at his:
The code is exactly the same!
But, it’s not just about “look”, it’s about “Design”. Look at my version of the Windows Phone application:
Now look at his (again, the code is exactly the same):
His design not only looks better, it makes more sense. He addresses important issues, such as the spacing between the buttons, so people don’t accidently press the wrong button.
Don’t get me started on how much agony he gave me over the issue with hooking up his version of the volume control. The entire time I am asking myself “WHY ME??”, until I see the final product and realize once again why it’s always worth it.
Everything that Alan Beasley and I have done would not be possible without View Model. View Model, is basically MVVM without any of the “you should not do that”. View Model is about Designer Developer interaction, period.
Silverlight allows Alan and I to have a separation of responsibilities. He is in charge of anything that ends with .xaml (the UI) and I am in charge of anything that ends with .cs (the code). He never messes up anything that I am doing, and don’t mess up his stuff. We can actually email files to each other that the other person can simply drop into their project and it just works.
I feel that, the fact that a Designer can have complete control over the UI, means that Designers will work in Silverlight rather than another medium such as Flash. What artist wants to see their work “cut up” by some Programmer?
It’s is not enough to teach Programmers how to do better Design. We need to give Designers “an equal place at the table”. Great applications will be created because we have “Diversity”. It’s not a “Team” if the Programmer is able to overrule everyone else, because every aspect of the application must go through the Programmer.
When my programmer friends and I discuss different techniques to build Silverlight applications, the conversation usually gets to the “what would Alan Beasly think?” question. If he is not able to completely Design the UI with no coding, you lose your Designer. So unless we think Alan would “sign off on the solution”, we find another one.
Design is nice, but the most important thing? What about good architecture that is scalable and easily refactored ? These things are important, but the most important thing about any program, is the people who use it. A poorly designed application that has a great back end, is of little use if it does not perform the functions that the human being using it needs done.
Let me illustrate my point with a story I call “The Programmers and the Chairs”:
The requirements were clear. We only have trees to work with, and we have a lot of people, and they need something to sit on, because they get tired if they are standing up all the time. The first time the problem was solved, it was solved only by Programmers. Programmers are really smart people, and they figured out how to cut down trees, and they created tools to create chairs. And that is it, they created one type of chair. It met the requirement. The next time, a team of Programmers and Designers was used. The Designers realized that sometimes chairs were needed that needed to be moved a lot, so they designed them to be lightweight. Other times the person using the chair needed to sit in it for long hours, so they made it adjustable to support their back. Please note that each time the Programmers were required to make these “Designs” actually work! “You want the chair the same size but lighter?” Whyyy meeee?? Hmm perhaps we can make the legs thinner… And sometimes they wanted a chair so they can rock a nursing baby to sleep. This chair can also be easily rocked when they are older and want to watch their grandkids play in the yard. The Designers added contoured armrests and attractive patterns in the wood. Things that would appear to serve no purpose, other than the fact that this is a chair that a person will use as a cherished possession for decades.
The requirements were clear. We only have trees to work with, and we have a lot of people, and they need something to sit on, because they get tired if they are standing up all the time.
The first time the problem was solved, it was solved only by Programmers. Programmers are really smart people, and they figured out how to cut down trees, and they created tools to create chairs. And that is it, they created one type of chair. It met the requirement.
The next time, a team of Programmers and Designers was used. The Designers realized that sometimes chairs were needed that needed to be moved a lot, so they designed them to be lightweight. Other times the person using the chair needed to sit in it for long hours, so they made it adjustable to support their back.
Please note that each time the Programmers were required to make these “Designs” actually work! “You want the chair the same size but lighter?” Whyyy meeee?? Hmm perhaps we can make the legs thinner…
And sometimes they wanted a chair so they can rock a nursing baby to sleep. This chair can also be easily rocked when they are older and want to watch their grandkids play in the yard. The Designers added contoured armrests and attractive patterns in the wood. Things that would appear to serve no purpose, other than the fact that this is a chair that a person will use as a cherished possession for decades.
This is the kind of application that I want to create.
Fallon, I am a developer and a designer. I have been doing both since a very early age. Creating art of all sorts with some national recognition and programming software while designing electrical systems before age 13...and that was 1979. I have always considered myself an artist/designer first and a developer second...though for 30 years I have programmed almost daily.<br><br>In all my time I have never been upset (as you appear to be) at what other people find valuable or enjoyable....in fact, I have the complete opposite reactions. Being an artist, I always want to know what causes energy in other people...maybe that's a cool movie, maybe that's a video game, live concert, great food...and I try to capture that and reflect if back to them...for their enjoyment. I have always looked at software as the brush...a tool...to execute my creativity.<br><br>Now you are probably thinking: here is a designer who can't build a great back end to an application. And this is where I would ask to you take a step back.<br><br>Many great designers are great ...etc. I admire Chip Foose. I don't particularly find American muscle cars as exciting as he does...but he is a great example of a great designer...and also completely able to "build the back end". We do exist out here...we...people who can do both...and do them well.<br><br>This thing about America...and design...sorry, I think that is absolutely wrong. Just because Italian suits and cars are fabulous doesn't mean America is bad. Have you ever been to Russia? China? Mexico? You can find examples everywhere of poor design...and populations who really don't care. America...on the other hand....gave the world iPhone...and the Web... so please stop putting us down.
Sorry if I came off a bit harsh, but this is a bit of a sore subject for me.<br><br>This country is so far out of balance on this issue, and the end result won't be good.<br><br>Design is absolutely the most important thing in our culture. That is both a good thing and a bad thing, but it doesn't generally matter if the balance is kept intact.<br><br>Unfortunately, we're way out of wack, and style wins out over substance every day. It doesn't matter if everybody is like that, but it's bad when that's not the case. Other countries are more focused on substance, not just in software, but in all aspects of industry and life, while we believe that if it's pretty, it must be better(software, politicians, women, you name it).<br><br>The triumph of style over substance leads to us giving up the substance of manfacturing for the development of fluff. I guess you can tell that I'm a bit worried about this, although I promise it's only in reflective times(I can't let this stuff ruin a perfectly good day, lol).<br><br>Anyway I'm off the soapbox, and thanks Alan for setting me straight... I needed that.
I'm quite happy for to say good graphic design, information design, software design are all important. Is one more important? I think you can find examples where one outshines the others. Let's face it a lot of the Apple products have not been technically good, but the look lovely.
Interesting conversation, I wonder if Apple would have a viewpoint now that they are bigger than Microsoft. But I suppose it depends on how you view/measure it... As for IBM, as I understand it, they make more money on leasing & finance of their stuff than they do on the products themselves. They judge their most valuable asset as their logo & brand identity. (I know, I used to work for them!)<br><br>But it is fair to say that all/both aspects are equally important be it design or code. And just like having a debate! It's all very well having a valid point, but unless you can display some diplomacy, your point will be lost, or fail to win people over... <br><br>I think all Michael is saying is: Design is a critical part of software development. And without it, you are probably going to fail to win business, or impress customers. You could have the best code in the world, but who would know if no one wants to use your products because they look rubbish & are not intuitive! Demand is created by desire, & without demand your amazing code is worthless... And who is a better salesman? A design that sells itself, or a salesman who could sell snow to Eskimo's? I know which I would rather have...<br>
@Fallon Massey - It is interesting that you bring up the Movie Industry. My BA is in Film. A good script to me is the most important thing. A bad script with good acting and great production is very unsatisfying to me.<br><br>No matter how good I become at my craft, I think I can only hope to 'participate' in greatness (by fostering it), rather than create it. If this works, it remains to be seen.
I won't beat a dead horse, but there's an old phrase.<br><br>"Content is King", and while that's not always true, have you ever heard that design is king? Of course not, because history is paved with examples where design NEVER drove anything, technology did, and ALWAYS does.<br><br>How can design be that important? Come on man, how much money is in design vs technology? Tell me a company that does design that makes more than Microsoft, IBM, the Auto Industry, the list is endless.<br><br>Without the technology of the internet and databases, what would the designers do? Technology runs this planet, but on any one specific job, maybe design rules your world, but in general, it's just another component to a complete job.<br><br>Design is important, but let's not get carried away because you like a guy that does decent design.<br><br>Here's my final example. The Movie industry is assumed by youngsters as this massive thing. Why? Well, the flash and sizzle blows their importance out of proportion, and confuses those that don't see clearly.<br><br>The weakest technology companies dwarf the movie industry, but to hear some kids talk, it's a giant industry that rules the world.<br>
@Fallon Massey - I think my argument is that if you do not have a good Design, the rest of the things wont matter.<br><br>When I turned in my version of the Media Player, Alan Beasley's response was basically "When people try to hit the pause button they will end up hitting the wrong button most of the time".<br><br>My "Design" was seriously flawed. I feel that it was a complete show stopper and that NOTHING else mattered.<br><br>Of course EVERYTHING matters, but if you had to rank things in order of importance, I now feel that the Design of an Application is at the very top.<br><br>For example, what is more important, having your surgery come out successful, or being alive after the surgery? Both are important, but one of them is the most important.
You've learned the wrong lesson. If you're a designer, the most important thing is programming, and if you're a programmer, design is the most important thing.<br><br>The most important thing is the one you don't have.<br><br>If you have a team, then both have equal importance. There is no piece of a design that can exist without the other, assigning importance beyond that is a gross misreading of what building a complete product represents. <br><br>BTW, after all of the development is done, the most important thing for commercial products is sales and marketing... still think design is the most important?<br><br>You learned the wrong lesson.