12 May, 2009

The Design Pitfall

Design: one of the most ambiguous terms in software development

When we use the word "design" in our discussions, we sometimes end up misunderstanding each others and having a hard time explaining our point, until we accuse one another of not paying attention to listen to our arguments. The good news is that the problem is not "we" but the ambiguous word that we use: design. Design can mean many things especially in software...

==============

Areas of Designs that comprises web development:
Note: the hierarchy of responsibility...
Software Design sometimes involves Interface Design that involves both interaction design and graphic design. So

Software Design
|
|
Interface Design
/\
/ \
/ \
Interaction Design Graphic Design

Software Designer
He is believed to be the authority to be asked if an idea is feasible. He tells the manager what feature set can be achieved and how to achieve it. He is often seen working with system analysts asking the question "What are the requirements of this software and how do you want me to implement it?". If there is no system analysts, a software designer assumes this role. Software designer is always seen reading books and magazines, searching with Google, and standing in front of the legal department's door knocking to seek legal advice about patents, trademarks and licenses.

If the software requires user operation, then it's a must for the software designer to also consider interface design which can be the role of another expert in this field. Although a software designer knows the ins and outs of software internals, sometimes he is not adept when it comes to making a user-friendly user interface that people will love and get addicted to. Interface Designer to the rescue.

Interface Designer
The interface designer's job is, of course, to create an interface between the software and the user. User Interface lets people give commands to a software product and manipulate its data. An interface designer does not have to be a psychologist but at least has mastered the best-practices in creating a user interface which is known as the User-centered Design. Interface designer asks the software designer the question "How does this software perform its functions and who will use this software?" He works with the Software Designer, and constantly get pressure from the firm's legal, marketing, and sales departments. He even works with the writers. When the company gets into to a lawsuit trouble because the user interface discriminates the blind users in Europe, this interface designer, as well as the Quality Assurance Team, will be held liable. Tsk tsk... I don't want this job.

Interaction Designer
Your company must be like one of the big boys in the software industry (e.g, IBM, Microsoft, Google) to have the luxury of having a separate interaction designer. Interaction Designer works with his immediate boss, the Interface Designer. But typically, the interface designer is also the interaction designer because interaction design is a part of interface design.

Interaction design defines how the software behaves in response to a user's action. In the web, especially for the non-Ajaxified web sites, this software behavior is to display information to the user when a link is clicked, page per page. So in this case, the interaction designer asks the interface designer the question "Where is the IA of this software that I have to consider? In Web, IA, or Information Architecture is analogous to the taxonomy of pages, no more, no less. IA is defined by the interface designer and shouldn't be confused with Interaction Design itself.

Again, let me reiterate. An Interaction Designer is not really have to be a different persons from the Interface Designer.

Graphic Designer
Icons, colors, layout, and anything about the visual arts is in the hands of the graphic designer. The sales of the software may rely on the graphic designer's talent of providing stunning visual appeal to the software interface. But the manager doesn't see his value. He is always underpaid. He only gets rich by getting a kick back from his photographer friend whose photo he recommends to his company to buy. He reports to the Interface Designer, who gives him all his tasks, who accepts and rejects his deliverables. The good thing is, when he infringed on copyrighted materials, it is his boss, the interface designer, who will get into trouble with the managers.

This is the area of design where most immature software companies fall into the "Design Trap". Their managers think that GRAPHIC DESIGNERS ARE THE SOFTWARE DESIGNERS. This is dangerous because the developers and the software itself suffer when the deliverables of the graphics designers, who only knows about beautiful colors and his beloved Photoshop, becomes the specification that defines all the software intricacies including requirements and features, user interaction, IA, decisions like to-ajax or not-to-ajax, etcetera. It will be a TOTAL DISASTER for the entire team that extends even to the database and system administrators!!! Believe me, I've been there and I've seen it ruin everything.

==============

I hope we all learned from this piece of blog. You don't have to take this information seriously if you are only a small team. The only idea here that I want to convey is that the term "design" means a lot of things.

1 comment:

V2 said...

Software Architect? Well, I'm not a fan of that vocabulary. If there's an architect, it just implies that there should be engineers and developers. Bullshit! This division of labor is a total bullshit! Even a developer can do the job of an architect, or an engineer can be a developer.

Software development is not industrial development, or can be liken to factory productions like a Ford automobile assembly line.