Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is programming knowledge necessary for an user experience designer?

We have a user experience designer in our team who has no programming background. He is expected to design screens within Eclipse as a development environment. His (valid) complaint is that every time he designs a specific screen and gives it to development - they tell him what is not possible technically using either SWT or GEF. So, he wants me to teach him basics of SWT/GEF so that he can make informed decisions and maybe even try out certain things in eclipse (as opposed to using Photoshop) before proposing designs to save time.

My personal belief is that design should not be constrained by technical possibilities and in theory, everything that the designer dreams of (at least the practical things) should be possible technically - albeit with workarounds or a little hacking.

So, my question is this - how important do you think is programming knowledge for user interface design? And if it is, how do you go about teaching someone with absolutely no programming experience the graphical frameworks on various platforms?

like image 687
Anirudh Avatar asked Jan 28 '09 05:01

Anirudh


3 Answers

In principle, I agree with you. Programming knowledge shouldn't be necessary to be a skilled designer of UIs and work flows. However, knowing the abilities and limitations of the technology in use can help a UI designer work more effectively with the programming staff.

Where programming knowledge can help is if the development staff is blowing smoke that something cannot be done when it can be, some knowledge of the tools being used can help refute that. If the development staff is correct that something cannot be done, then knowledge of the tools can help the UI designer find an appropriate solution that meets the design goals and is achievable.

With a properly cooperative development staff, the UI designer would need very little (if any) knowledge about the specific GUI tools being used.

I've been on the developer side of this where I was being asked to do something impossible or impractical. I always worked with the designers to find a happy middle that met the design goals. Sometimes what I thought was impossible was in fact possible. Sometimes we had to do things a different way. A few things had to be put off as "possible, but too much effort." (Such as an SWT based application that became a Windows task bar. Definitely possible, but impractical for the project in question as it would require native code.)

What is most important is that both sides realize that they are on the same team.

like image 62
Eddie Avatar answered Dec 02 '22 21:12

Eddie


Its very important..

Not knowing about:

  1. technology in general
  2. the technology you have chosen to dedicate your time investing into to produce the end product

Will result in a complete waste of time for everyone..

Even the end user needs to learn a bit about the technology employed in able to use whatever product we make.. Someone who drives a car will always need to know how to fill in the gas and know the basics of what a car is and what it can do, software works in a similar fashion.

Its like asking someone who doesn't know that cars (the ones of today) need wheels to make a drawing of your next release model.

The way to make them more aware of the technology is:

  1. Show him/her similar products to the ones you should be making
  2. Show him/her stand alone implementations of the building blocks you might consider using

But by all means...this doesn't mean you should stifle their creativity..have them draw away what they dream, just make them that little bit aware of reality as needs be in order to have something done in this lifetime

like image 36
Ric Tokyo Avatar answered Dec 02 '22 20:12

Ric Tokyo


So, my question is this - how important do you think is programming knowledge for user interface design?

I think a basic knowledge of the standard user interface for the platform is required (text fields, combo boxes, radio buttons, etc). A good designer should be familiar with the capabilities and limitations of these GUI components, from a developer's point of view. So I guess some basic programming knowledge would be useful.

My personal belief is that design should not be constrained by technical possibilities and in theory, everything that the designer dreams of (at least the practical things) should be possible technically - albeit with workarounds or a little hacking.

I think there are important qualifications here --- each OS has guidelines on what constitutes good GUI design, and it's beneficial for your product that you follow them because the user has a certain mental model of how he or she should interact with applications on that platform. (Having said that, there may be good reasons for breaking some design conventions, e.g. in games, specialized graphics/music applications.)

how do you go about teaching someone with absolutely no programming experience the graphical frameworks on various platforms?

Each toolkit makes available a whole bunch of small sample programs to demonstrate the use of different components --- this is probably a good first step to acquaint oneself with them.

like image 32
Zach Scrivena Avatar answered Dec 02 '22 19:12

Zach Scrivena