Technical skills of an Interaction Designer

24 Jun 2011 - 4:53am
2 years ago
38 replies
9043 reads
Silvia Di Gianf...
2009

Hi all,
as Interaction Designer I think it's a foundamental matter to have a deep knowledge of  "how it works behind the scenes" what we design for people to use.

The question is: which language (HTML, Java, Javascript, DHTML...) do you think an Interaction Designer should be fluent in and at which level?

Thanks,

Silvia

Comments

24 Jun 2011 - 5:37am
Damien
2011

In my opinion, it mostly depends on the projects. 
The interaction designer (ID) could be seen by a project team as a specialist of the interactions of an application project. The ID could therefore be in charge of the coding of these interactions, or at least of the coding specifications. So the ID must know how to code. And code options depend of the projects.

There are mainly three options :
- Javascript (jQuery or other libraries), which relies on HTML, for websites displayed on computer or mobile phones
- ActionScript (Flash), for websites, mobile apps, desktop apps (through Air)
- Java, mostly for mobile apps (though I don't know this option very much)

It's difficult for anyone to be a specialist of all these languages. So the specialization is mostly orientated by the projects options, or the team management.

About the level qualification, (from no skill at all, to master of code), I would say it directly impacts the autonomy of the ID. Does the designer need to be supporter by a coder ? and at which level ? In a way, a coding ID is more efficient to the project, producing more effective specifications, and being cheaper to the project...

24 Jun 2011 - 5:37am
Damjan Obal
2010

Silvia, I like to think of my work as Interaction Design, and am often hired as one. Though, my knowledge of languages is close to zero... I know the basics, the limitations and how to work with different platforms, but as an interaction designer or user experience designer, I don't code. Perhaps a bit of html while preparing early prototypes. So, mostly, in my humble opinion interaction designer needs to know about the IT environments, platforms and frameworks so he/she can easier fit in the workflow. Of course some basic skills are more than welcome. 

Cheers! 

Damjan

24 Jun 2011 - 6:03am
Silvia Di Gianf...
2009

Damjan, I share your same experience: languages close to zero. This makes me feel powerless sometimes, especially in situations where I am the lead designer with the support of 10+ developers.
I am working on my career development plan, where I work, and one of the points of growth is the technical side. Said that it's difficult for me to understand what would be good for me to learn (or better, to read about and know what can be done with what) and at which level.

Silvia

 

24 Jun 2011 - 8:05am
kojo
2008

I have been working as Interaction designer for over 10 years, and I have good knowledge of html the varies generations and Css and some javascript, and my experience tells me this we interaction designers are always looked down to by developers because we lack technical skills that is why I struggle now to learn xaml, and it will always be the case they think what we do is not actual work and they could do it themselves, and so far nothing changed since 2001 when i started this line of work.  that is why I think we should have some resources that are specialized to give technical knowledge to people like us.

kojo

On Fri, Jun 24, 2011 at 1:33 PM, Silvia Di Gianfrancesco <silvia.digianfrancesco@gmail.com> wrote:

Damjan, I share your same experience: languages close to zero. This makes me feel powerless sometimes, especially in situations where I am the lead designer with the support of 10+ developers.
I am working on my career development plan, where I work, and one of the points of growth is the technical side. Said that it's difficult for me to understand what would be good for me to learn (or better, to read about and know what can be done with what) and at which level.

Silvia

 

((
28 Jun 2011 - 10:13am
brianjdurkin
2011

@kojo  

You work for the wrong company then. I have been working as a web designer/web developer for 12 years and just made the leap to Information Architect/User Experience Designer this year and that being said I am very glad I have that background but at the same time I have never in the past looked down on a UX or IA for not knowing what is technically possible. If you dont know what is technically possible then you don't know. There are lots of things I am learning as a 1st year IA/UX person that I didnt know before about interaction, user testing, organization, best practices and so on. Everyone has a role on a team and if that team does not work well together then maybe you should look for a differnt team to play on. That's just how I see it. I mean I am not expected to code anymore, am I glad I can code the hell out of anything they throw at me? Sure. Do I want to? No, because I am busy working on the interactions and what works best for the user. I am happy doing that now. Just my opinion.

24 Jun 2011 - 8:05am
bminihan
2007

If you're going to dive into code in your role (assuming web applications), I wouldn't go much further than the client-interaction tier, including HTML, CSS and JavaScript (in that order). Depending on your domain or current project, it may be simpler to learn jQuery than plain JavaScript, simply because it's somewhat easier to wrap your brain around than hardcore JS.

I would take all of the above in baby steps. The fastest way to learn is by figuring out how to adjust an existing web site or page. View the source of any web page on the Internet (probably best to start with simpler sites, not Facebook =]), save it locally, copy all of the embedded scripts and CSS files to the same location, reconnect them, and you then have a rich learning environment to figure out how to move things around, change how they work and "play".

Take advantage of browser tools to learn how things relate to each other. Chrome and Firefox have the best inspection tools, whereas IE is somewhat painful (but still do-able).

I wouldn't push yourself too hard to learn everything immediately. Take it slow, gain confidence with small steps, and don't stop practicing. The more you learn, the more you can do, and the richer your prototypes will become as a result.

I have complete faith in designers who can prototype interactive designs to W3C standards, because they drastically improve the design's transition from analysis to development.

Best of luck =]

Bryan Minihan bjminihan@gmail.com bryanminihan.com linkedin.com/in/bryanminihan

-----Original Message----- From: ixdaor@host.ixda.org [mailto:ixdaor@host.ixda.org] On Behalf Of Silvia Di Gianfrancesco Sent: Friday, June 24, 2011 6:36 AM To: bjminihan@gmail.com Subject: [IxDA] Technical skills of an Interaction Designer

Hi all, as Interaction Designer I think it's a foundamental matter to have a deep
knowledge of "how it works behind the scenes" what we design for people to
use.

The question is: which language (HTML, Java, Javascript, DHTML...) do you
think an Interaction Designer should be fluent in and at which level?

Thanks,

Silvia

24 Jun 2011 - 8:47am
Jack L. Moffett
2005

The language(s) you learn, to whatever degree, should depend on the type of work you are doing. If you work for a company that develops desktop applications for Windows, then HTML, CSS, and JavaScript won't be much help. The vast majority of my work is browser-based, and I have therefore become an HTML/CSS expert. I've only recently picked up jQuery and a little JS.

I encourage any Interaction Designer to start learning code, but only after they have mastered core design skills. Visual design abilities will make you a better IxDer than coding skills. Coding skills will make you a more valuable IxDer than you would be without them, as will knowledge of business, psychology, etc. Choose your mix based on what you are doing now, and perhaps more importantly, where you want to go.

24 Jun 2011 - 11:05am
bminihan
2007

I agree with mastering design skills before coding (or at least continuing to be a better designer than coder =]).

Bryan Minihan
bjminihan@gmail.com
bryanminihan.com
linkedin.com/in/bryanminihan

24 Jun 2011 - 10:37am
Matt Nish-Lapidus
2007

Well put, Jack.

Just as in other design fields, you learn the materials and technical skill you need for the thing that you're building. You also need to learn the business, manufacturing, and other aspects that will make the product a success. This is on top of the things that we usually worry about.

If you're working on the web then a solid knowledge of HTML, CSS, and JavaScript are really a requirement. This isn't just about understanding limitations, it should be about understanding the possibilities... the things that make that medium unique and interesting. How will it help you solve the design problems? Often the underlying technology holds a lot of great potential. Many of the amazing advancements in CSS technique have come from designers, not developers.

You don't have to become a specialist in the tech, and you will always benifit from working with somebody who is. That said, if you can't make your design come to life in something aproximating the end technology then you're just making pictures or websites/apps/etc.

 

24 Jun 2011 - 11:22am
Christian Manzella
2010

I've had the opportunity to work from all different angles on web projects, including coding at the presentation layer and coding at the data manipulation layer.  My passion still lies in design.  

I believe that my coding experience has allowed me to have more intelligent conversations with developers, and has gained me a little more *cred* a time or two.  It's also worked in the inverse, where I've been told to shut my hole, because it's not my role.  With greater knowledge of tangent disciplines, it becomes challenging to keep from extending yourself when it's not warranted or requested.  That aside, from a communication standpoint, it's typically easier if you can speak the language of those you're speaking to.

Above all, you have to know what your limits are, as a designer, in related fields that aren't your focus.  I've known some designers who were phenomenal, and then once they learned to code, they placed restrictions on themselves based on their level of aptitude in a technology, where a dedicated developer would have had the knowledge to execute the very things they ruled as not being technically feasible.  At the core of it, if you're a designer, you'll always be a designer first.

Echoing some of the other things said here, the point is that it's a matter of what you're expected to do in a given role, or a matter of who you want to be.  If you're working with a capable team, and you understand the core of the realm you're working in (web, mobile, desktop), you can be an extremely capable interaction designer without the ability to code, but knowing how to code won't hurt you (unless you let it). 

24 Jun 2011 - 11:57am
Jared M. Spool
2003

I'd like to take a moment here to pitch a UIE Virtual Seminar that we put together to answer this specific question. I believe designers who know something about code have an advantage over those who don't.

To that end, as part of UIE's ceaseless efforts to help designers get as smart as they can be, we recruited Dan Rubin to teach a 90-minute webinar on what CSS3 is all about and how designers can take advantage of the new features.

You can find out more about Dan's seminar here: http://www.uie.com/events/virtual_seminars/css3vs/

The seminar is next Thursday, 1:30pm Eastern Time. You can watch it from your desk or bring your entire team together in a conference room, for the same price.

Use the promo code IXDA when you register and you'll also get llfetime access to the recording of this seminar for your entire organization. That's pretty sweet, no?

Sorry for the pitch, but this is right on topic with what we've been discussing here.

Jared

Jared M. Spool
User Interface Engineering
510 Turnpike St., Suite 102, North Andover, MA 01845
e: jspool@uie.com p: +1 978 327 5561
http://uie.com  Blog: http://uie.com/brainsparks  Twitter: @jmspool

24 Jun 2011 - 1:23pm
Don Dunbar
2009

I agree with the idea about knowing something about code, which is different than being a heavy duty programmer. I started by learning to program in Java and C++. Now I work in a lot of languages especially Python, Ruby, Actionscript 3 and Javascript. If your idea is that in working with developers, it is good to know how they are thinking, then it helps a lot.  But, in addition, knowing how to code, or even program, helps with rapid prototyping and working out quick examples of interactive design solutions. 

In my work I often do both design and initial development, so actually knowing how to program ( not just use a programming language) has been very helpful. I can talk to developers on their level and I found it easier to express usability needs to them by knowing their concerns.

There are a lot of prototyping languages available to learn. Some languages like JavaScript can be used for prototyping in web environments. Processing is a great prototyping language that was built for artists and designers who are not intending to be heavy duty programmers. It is easy to learn. Once you learn the principles of programming you can easily adopt new languages.  

Not everyone probably needs to know programming to the level I do, but in some cases it really does help. Especially on small teams where everyone has multiple roles. 

So I recommend learning to program or at least learn to code with HTML and CSS. As Jared mentioned it gives you an advantage over those who don't know how to code.

24 Jun 2011 - 2:14pm
Audrey Crane
2009

I'd just add that in addition to the excellent points being made here about knowing more about what's possible and communicating (talking, specing, whatever) with engineers, sometimes you need some kind of geek cred to have the engineers be willing to really engage with you (to kojo's point).

You can get geek cred from lots of things, could be that you're learning COBOL from aramaic writings, building your own analog synthesizer, or near-fluent in Klingon. This varies from engineer to engineer of course, but sometimes if I feel that a team perceives me or my work as something they don't plan to engage with seriously, I make a joke about Zeno's paradox, mention when I had a TRS-80, or how I saved Fishcam . It's amazing how one little joke can turn things around. And it's a good excuse to do something you're interested in but isn't obviously practical, if you've been dying to spend your sabbatical watching Star Trek. (And for this, it's probably better if it's not HTML or CSS or something they can kick your a$$ at.)

26 Jun 2011 - 6:52am
TimSlavin
2008

To Silvia's question about languages, I would recommend you know at least HTML, CSS, and jQuery. The latter you don't have to know 100% but it helps to understand how jQuery is used (it's a library of javascript code that attempts to solve the problem caused by web browsers interpreting javascript different ways) and the way jQuery is implemented. HTML and CSS probably you should know more in depth, enough to create basic designs quickly. And you should begin to learn HTML5 and CSS3 which are coming online. HTML, CSS, and jQuery are all key technologies used to create web interfaces (obviously).

In terms of programming languages, I agree with the points here: it depends on your work environment, your interests, and your opportunities to learn one or more languages. But I don't think intermediate knowledge in one or more programming languages is required to be an interaction designer.

25 Jun 2011 - 11:13pm
Dave Malouf
2005

Serious question though it may sound a bit snarky:

What should you learn if you design Navigation systems, medical devices, OEM auto-equipment, Point-of-Sale systems, data collection devices, scuba equipment, military systems, etc?

I know this doesn't effect the huge majority of people out there, but just am curious how people would answer this. I have a briewing answer in my head, but would love to hear from the rest of y'all first.

(ps. the snarky bit is ... if we are really going to change the human condition per our organization's statemetns about IxD, it will be really hard to do if all we design is for web and ubiquitous screen platforms; but seriously, I am curious to know the answer to the question. If the answer is Java & C++/# I think we are all buggered.)

-- dave

26 Jun 2011 - 6:24am
Jared M. Spool
2003

Dave,

You asked:

What should you learn if you design Navigation systems, medical devices, OEM auto-equipment, Point-of-Sale systems, data collection devices, scuba equipment, military systems, etc?

The answer is the same, no matter what you design. If you want to be more valuable learn to code.

Learning to code the language and system that's closest to what the implementors and developers are using is the best choice. Learning to code any language and system will bring a level of understanding to your work that you can't get otherwise.

You'll know how to prototype better, so your great ideas can be communicated without that interpretive dance that happens in front of the whiteboard.

You'll know how to appreciate the challenges of implementation, so that your designs will better match the capabilities and avoid the constraints of the platform.

You'll know how to communicate better, so your team will be talking a common language.

I wrote more about this here: http://www.uie.com/brainsparks/2011/06/06/3-reasons-why-learning-to-code-makes-you-a-better-designer/

Jared

26 Jun 2011 - 11:24am
nettemple
2010

I agree with Jared but it is important to highlight several key points. The word <strong>VALUABLE</strong> is key in his statement  "...if you want to be more valuable learn to code....". So this is to say that as many of the comments reflect - you do NOT have to be an advanced coder, but the more you know, certainly the more valuable you become. This is also the debate presented in Cooper's "The Inmates are Running the Asylum" book.

It is also important to be honest and note that great programmers are "great" for a reason. It is not conceivable that all interaction designers become truly great coders. Its like me fantasizing I can play in the NBA because I shot 11-12 in my weekend pick-up game. The great coders that I have worked with operate at a whole different level. So when I reference that IXDers become more valuable with coding skills, please keep it in perspective.

But with knowledge, comes value - in all of the areas mentioned by Jared: prototyping, communication, understanding, collaboration, appreciation, etc.

In more direct response to David's question - unfortunately my experience tells me if I am going to design medical devices, I have to learn something about the medical processes (even though I don't have to become a doctor) and if I am going to design something for scuba equipment, I need to have some scuba knowledge (even though I don't have to become a professional diver)...

Davo

28 Jun 2011 - 10:25am
brianjdurkin
2011

Very true and the reason why I am now working as an IA after being a web designer/web developer for 12 years. Not to mention I got tired of being a code monkey and tired of NOT having any input into projects. People do get too hung up on which language to use or learn though. towards the end of my "monkey" days I had to just figure it out and use whatever project I was thrown into. They are all based off of logic and understanding and have some fundimental principals.

26 Jun 2011 - 6:53am
TimSlavin
2008

What should you learn if you design Navigation systems, medical devices, OEM auto-equipment, Point-of-Sale systems, data collection devices, scuba equipment, military systems, etc?

The underlying issue is the need for IxD types to learn the business and industry they are in. Part of this is understanding how their designs are turned into code. One level up, however, products are not only coded, some products that are coded are also built in factories with zero tolerance for failure in the technology. Knowing how to code in those cases might be too deep a dive. Or necessary. But learning how the product is created always has value. Same for another part of learning the business: the customers (aka users). They can be as mysterious as C# or any other programming language. Same for competitors and peers and their products, which are another part of the business. For example, how well or poorly do competing products solve the problem you're trying to solve? If your business is regulated, government rules are another part of the business IxD types should be familiar with, if not learn in depth. Also learning how the product is marketed, delivered, and serviced can be helpful in understanding customer/user expectations towards the product and your design solutions.

The more you know, the better you can fit in and, in theory, the better your work. How deep to dive, and in what pools, that is the question.

26 Jun 2011 - 12:49pm
Don Dunbar
2009

"What should you learn if you design Navigation systems, medical devices, OEM auto-equipment, Point-of-Sale systems, data collection devices, scuba equipment, military systems, etc?"

  I agree more with Jared than Tim. And I would stress the difference between learning to use a language ( maybe call this coding) and learning to program. Coding is learning syntax and modules and libraries with best practices for that language. Programming is learning to solve problems with code, and the tools you use are data structures, algorithms and logic. I'm not saying become a great programmer, but learning to program rather than code has many benefits for the designer. In many CS courses algorithms are presented and learned in pseudo code because of this difference.  

As many have mentioned, it opens channels of communication. Not just using the jargon, but by learning to program and think about problem solving with code you can discuss the project on more levels than the design phase itself. Learning this way also encourage insight into the problem at hand. It is a means of 'thinking outside the box' as it were. And, as Jared mentioned it also helps in prototyping out solutions much faster. 

Still,there are a handful of tools on different platforms that provide a visual means of developing an interface without even using code.

QT is available on Linux and some other *nix OS's. QT allows a designer to map out the interface without knowing the language underneath. But, by not knowing the language at all, it is somewhat intimidating. 

OS X has an interface design tool that works with Objective-C in a similar way. 

For Java Swing, both Netbeans and Eclipse have visual tools.

Python has multiple GUI modules, but Boaconstructor has a visual interface to WxWindows.

And of course the Flash interface has code snippets so you don't even need to know how to code.

All these tools have a learning curve and by learning them you will pick up the underlaying language to some degree.

But I think most helpful is picking up a book like "How to think like a computer scientist." The author has made it available for free online. The book comes in a few additions, including one for Python and one for Java ( they teach exactly the same thing).  Learning about data structures and algorithms, even at this basic level, will help  you move between languages with greater ease than just learning to code in a particular language. Of course you will end up using one language more and you get more proficient with that one. 

In addition I believe it helps with design by building our problem solving skill set. We learn to think more strategically in different ways than problem solving from a design perspective alone.  Someone mentioned earlier that some designers became bogged down by learning to code, they became trapped by their limited understanding of the technology. I think this problem happens for a number of reasons outside of this discussion. But, in relation to the topic, learning to program makes it easier to realize solutions you may not know how to code yet. You can visualize a solution and map out the steps even when you don't know for certain the exact code to write. In other words, I think the problem was that the designers learned to use a language rather than learned to solve problems with code. 

More directly to how I read your question about data collection etc. There are too many languages used for these systems for a designer to use them all and keep up with changes in the design world as well. So, again I think learning to program helps here. It's agnostic so to speak. 

And I know I have worked on medical projects where the final device ran a C++ system, but I made the prototype using Actionscript. It obviously wasn't directly used in the final system. But because the prototype had all the interactivity of the final interface it helped the developers more than just explaining it to them or even a storyboard did. They had no problems translating the work.

26 Jun 2011 - 7:58am
Graham Sear
2010

Hi Silvia,

Aside from just understanding how things work behind the scenes, HTML,CSS and JQuery are great to know for delivering prototypes for different fidelity - clickable wireframe/full interactive prototype. A clickable wireframe can demonstrate flow and pick out usability issues that you wouldn't see if you had produced a series of flat wireframes and also stop any areas of misinterpretation. Although, Axure, Fireworks etc can build this interaction for you the level they provide is relatively low unless you're willing to play around in Axure for hours.

Learning the basics of HTML,CSS and JQuery is also relatively straight-forward and to get to a beginner level where you can produce working prototypes shouldn't take too long and can replace having to write reams and reams of annotation to get show clearly what you mean.

Graham

26 Jun 2011 - 1:40pm
Dave Malouf
2005

I am confused when it comes to this topic on many levels:

On the one hand, I do believe as @trenti recently said at @frontiersof last week "the interface is the expression of the code" it sits on top of. I get that on a certain level; however, that is akin to the building form being the expression of the steel, glass, wood, piping, floor boards, etc. It doesn't work in fact, b/c the expression is made before the materialization. So it is not so much that the interface is the expression of code as much as the code is the materialization of the design. Yes, I can see a place for a dialectic and it is in that synergy that I think the real answers lie.

The other issue here is whether or not one's ability to make manifest the idea completely is required in order to completely design. To clarify, the first idea is that I must understand materiality and I don't have a problem with that, within a balanced reason and expectation that it is best/ideal for there to be true experts in materiality over and beyond the role of the desiger (and I understand that this may be a luxury in certain contexts though not most or even many). Now I do get that the more i can express my idea in a way that most closely resembles the vision the more likely my vision will become manifest. I am just not wholy convinced that this requires code. 

Where I do draw the line for sure is that the designer should be prepared to jump into the role of developer He or she may be able to, but it is dangerous in fact for the expectation to be there. The danger is in how much the resources tied to production are always in critical danger, forcing too many a developer into the unhonorable position of either a) having to refuse to do work they know how to do, or b) feeling guilty for not being able to.

I have gotten through the better part of 20yrs of web, software and embedded device design w/o being able to really make manifest my own designs. Definitely in the last decade for sure. But I do not feel any less, neither less successful or less valuable, because of this lacking, so I am a bit at odds between the two sides of "I'd really like to know that" vs. "I shouldn't have to." In fact, as stated above by @JackMoffet, I most sincerely believe that being a solid graphic designer is much more (infinitely more) important to being a good interaction designer than knowing how to code.

Side note: Why isn't anyone mentioning the importance of databases in this mix? @yoni on twitter put very eloquently recently the need for designers to have a better understanding of databases, b/c if an interface is the expression of anything any more it is the database above all else.

-- dave

26 Jun 2011 - 2:16pm
Jared M. Spool
2003

Maybe I missed it, but I didn't see anyone say that a designer had to "be prepared to jump into the role of developer." I certainly never said it.

All I've said is that a designer that knows how to code is more valuable to the team and to the market than one who doesn't.

You seem to want to make this into more than it is.

Side note: I talked about databases in my posts when I said, "If you know what database queries will be faster than others, you can make the right response time tradeoffs." Yoni is right. This is not a new idea.

27 Jun 2011 - 9:06am
tstutts
2008

A great thread going on here! I wanted to share my insights/ experience, especially given the unusual place I've find myself in professionally during the past couple years.

These days my freelance work is largely divided between UI/UX efforts, where my core deliverables are wireframes, site-maps, etc. and then something referred in as Creative Coding--it doesn't really have a working label as of yet. In this second role I design/develop tools in OpenFrameworks (C++) and Processing (Java) to generate graphical elements for television commercials, print advertisement, and installations. It's not work that's in constant demand, but when it is, there's a small handful of designer/developers, who are called on to it do it, largely for companies with presence in the tech industry. Another way to describe what I do is that that I write code to make rich, sometimes generative, techy images, that would be incredibly difficult to create by hand or in Photoshop. On these projects I typically work with art directors and often resort to quick-and-dirty code, because I'm not trying to create a bullet-proof app--I'm often just trying to crank out an element or two that comes closest to what the client is looking for. These things then gets programmed, exported, and finally inserted into the commercial or print ad. Then you're done. There's no user testing, just ratings to follow. I enjoy coding in this capacity, because it puts me in the design seat, though it's difficult to define best practices, since it is a fairly niche role.

Recently though I was asked by a client to design and develop an application that the compositors could use to generate elements. This put a whole new spin on things. Suddenly I had to take some of the best practices from other work in UI/UX and apply them to an app I was responsible for building from start to finish. This quickly became a much larger task, as you might imagine, and I had to make some compromises to the usability of the application, that wouldn't have been acceptable outside of this realm, but were fine in the commercial world of lightening fast turn-around.

On some other more traditional UI/UX projects (web apps and so forth), that aren't for fortune 500's, the coder in me has tried to work my way into a development seat of sorts, while designing the application at the same time. This usually is a response to the design not looking or behaving the way I'd described within the final visually treated wires. I follow-up by suggesting some CSS to engineering. When that doesn't help, I write the HTML/CSS myself, and finally, when things still don't match up, I wind up in the environment committing changes and so forth directly, tweaking Javascript, etc. At this point, things can become quite a headache, as I'm spending some of my time deploying changes with the engineers, while spending the rest of time designing what's next. I start to see my design choices impacted and compromised completely by their level of difficulty in terms of implementation, which does not always lead to the best overall solution.

The takeaway here, and coming from a relatively code-savvy Interaction Designer (who actually loves coding), is that as a designer, unless you are working on a project like a microsite or some specialized non-customer facing app, where the design and development are all in your hands, it is probably not wise to go so far as to be committing code changes within the actual environment. You will likely find yourself in a world of frustration. You may also find your creativity pushed to a more granular level that requires an entirely different discussion. On the other hand, if you have the inclination and ability, it might be a good exercise to try. The farther you push your role, the more you are going to learn. In retrospect, I could have handed off engineering non-dynamic HTML pages with styling and basic scripts, but instead I got my hands dirty working in an ever-changing, dynamic app, with some components that only work server-side. On a future web project for a Microsoft, for instance, I will never have this kind of opportunity (nor would I want to), but at least I can shed a little bit of past engineering wisdom into my deliverables, and understand the limits of what is possible with currently technologies.

In closing, to an interaction design who wants to learn to code, I recommend checking out www.processing.org . It may not give you a coding background that translates directly to the applications you would design in the real world, but it'll open your mind to the world of variables, arrays, and objects, and give you appreciation for the fact that the web is broken up into different layers to manage different pieces of an application. It may also lead you to do some out-of-the-box thinking in terms of the way your expertise in UI/UX could apply to other domains.

27 Jun 2011 - 7:11am
Jack L. Moffett
2005

I just posted this on http://designaday.tumblr.com/

There’s a great discussion happening right now on the IxDA forums about the technical skills of interaction designers. Should we learn how to code? To what extent? What are the possible benefits and risks of doing so? I’d like to tell you a little story.

Once upon a time, I didn’t know much code. I had learned Lingo, the scripting language for what was then Macromedia Director (now Adobe’s), so that I could create interactive pieces in college. It was very useful for prototyping, but had no connection to actual implementation. I used GoLive Cyberstudio, then later Dreamweaver, to create web pages with WYSIWYG layout. That was fine for websites, but when it came to web applications, the HTML wasn’t clean enough. My role within a project was completely up-front, and once implementation started, I moved to other work and was occasionally asked consulted by the developers on issues that weren’t covered in my design documentation.

Over time, I became familiar with HTML and was able to edit it directly, then write it from scratch. As CSS popularized, I learned how to use it. By this time, I knew how to use HTML and CSS better than any of the developers at my company. Rather than developers taking my static HTML, cutting it up, and pasting it into JSPs, I was integrated with the project team, editing the JSPs directly. I was able to ensure that my designs were implemented exactly as envisioned. I learned to use the tools the developers were using for checking out and checking in code. I learned to use the bug tracking and tasking software they employed. In so doing, I was better able to influence implementation. I became an integral part of implementation, and thus was involved in the functional testing where I could enter bugs against anything that didn’t live up to my expectations—either from a functional or usability perspective. Eventually, I became familiar enough with the JavaScript that I was able to make minor edits to the dynamic parts of the application. Now that I’m able to use jQuery, there is a lot more behavior that I can implement myself in a way that the developers can use.

So for me, the ability to code is less about earning “cred” and communication, although I’m sure it has helped with both, and more about dependency and scope of influence. I am less dependent on the abilities and attention to detail of the developers, and I now have greater influence over the entire course of a project. As a result, the final product is better.

Does the ability to code, to a certain extent, make me a better designer? I would argue only to a small degree. Understanding constraints and capabilities of a technology is important, and learning to code gives you a better appreciation for that, but isn’t necessary. Better communication and more credibility with developers is a good thing, but learning to code isn’t the only way to get there either. What learning to code has done is made me a more effective designer, as my design abilities better affect the final product. It has made me a more valuable designer, as I can now be utilized more effectively across the entire project schedule.

If you want to be a better designer, learn more about design. If you want a greater hand in implementation and the benefits that go with it, learn to code.

27 Jun 2011 - 8:42am
Katrina Tempero
2010

As an interaction designer for the web, I have found that I need to initially forget how something will be coded, and think about how a design would ideally flow without the limitations of languages. Then when meeting with developers we are able to come up with solutions or compromises to enable the design that may have previously presented a limitation had they been introduced in the planning of the architecture.

That being said, I agree that for the web it is important to keep up on the advancements in HTML, CSS and Javascript to help maximize interaction possibilities; especially if something is being rejected as a limitation, when you know it is possible.

27 Jun 2011 - 9:33am
pkdaly
2010

This is probably the second most popular UX/IXDA discussion topic after 'who are we', and it's basically the same question. The responses typically reinforce the notion that 'interaction designer = web site'. What coding skills do I need to design a new security screening 'user experience' for the San Diego airport? Can we ask coders the same sort of question: what knowledge of human psychology do you need to know to code a GUI?

That said, I've picked up enough over the years to know 2 things: 1) when to call bullsh*t on a coder who says it can't be done, and 2)knowing which of designs A, B, or C is going to create the most technical scope/workhours--and how to descope a design so it accomplishes the same user need with less development effort.  A web search can usually help with #1.

The other thing I see is that when designers go too far to the 'dark side' they end up with copycat designs. What code they can steal from other sites, or in the pre-web days whatever basic controls came with the GUI toolkit. They lose focus on user needs, end up with a system model vs. user model.  I have delivered XAML code just to help bugs get fixed rather than deferred, but it is not cost-effective use of my resources to the business.

Paul Daly

27 Jun 2011 - 11:12am
Dziechciaronek
2010

It depends what are you doing, if you work with a team of developers and you want to create a complicated Java app - you may know a bit about Java, but it doesn't help you to make a decisions which interface design will be the best. If you are working in Agile, you could ask developers about time and effort to develop your vision.

If you are working on website design you should know HTML, CSS and Javascript, at least jQuery and this is all. You could have knowledge about Python, Ruby or PHP, but the typical knowledge about how websites works is enough.

So, make your own website from a scratch, slice the psd, make it looking good on every browser, add Javascript, and that and thats all. It is not hard to do ;)

28 Jun 2011 - 3:34am
Silvia Di Gianf...
2009

I would like to take a moment to thank all of you who contributed to this hot topic.
I have now a clearer idea of where I want to get on the technical side and at which level. And why. I am pleased it became such a great conversation.
I also confirmed to myself that this is the job I want to keep on doing and the community of passionate minds I want to be part of.

28 Jun 2011 - 6:26am
Sean Pook
2008

Great thread!

I have the pleasure of working with some companies who have enough time and money to split interaction design into conceptual and real-world. On a conceptual level/team the interaction designer is completely removed from the constraints of technology and is charged with creating creative and intuitive interfaces as wacky as you like. For most companies though, it's not just helpful but crucial that an interaction designer knows the limitations of the technology that their designs will be eventually implemented in. Is learning to code one way to discover this? Yes, but it sounds like a lot of hard work. Communication and understanding is the key for a fluid relationship between design and development. Doesn't happen too often though right?

Interestingly, whenever a job description of mine for an interaction designer even mentions the words HTML or CSS etc (EVEN IF it says something like...an understanding of HTML would be an advantage), I often hear a BA Baracus type response : "I ain't doing no coding fool". I almost always have to re-emphasise what the job spec says - that the client just wants the designer to know how the technology works, not to code in it. "Oh that's ok then" is the typical reply. I sometimes now remove the HTML or CSS references from specs to avoid this expected hurdle.

I think the panic from seeing any kind of language mentioned on a job description is not a reflection on interaction designers not wanting anything to do with technology though, but probably more that they have had some bad experiences where they've gone for an interaction design role and it turned out to be a coding position.

Cheers,

Sean

28 Jun 2011 - 11:05am
Bill Barranco
2009

Sean,
Are you working with your old company still or have you spun off on your own?
        Bill Barranco

28 Jun 2011 - 8:26am
Rez
2009

The thread seems to have a bias towards Interaction design for web. I'm wondering what mobile designers think?

While knowing programming languages may not always guarantee understanding the "how", it is clear that in some situations/jobs it may be very helpful. If your company or your work is focused solely on Web then learning HTML/CSS/JS sounds like a reasonable time investment.

In my case, on top of the 'typical' suspects, we are currently working on VoIP, NFC, M2M, each of which relies on different protocols, frameworks, network-device dependencies, device-device dependencies, etc… There is no magical-triad that can be learned to support all of these and working closely with the technical people is the (next) best thing.

28 Jun 2011 - 10:05pm
Richard Carson
2010

There is a huge bias towards Interaction design for the web on this thread, as if the entire world could be designed in HTML. Although, maybe future versions of HTML like HTML 6 or 7 could accommodate for screenless designs, as well as computerless based design interactions.

Richard Carson

On Jun 28, 2011, at 9:45 AM, Rez wrote:

> The thread seems to have a bias towards Interaction design for web. I'm wondering what mobile designers think? > > While knowing programming languages may not always guarantee understanding the "how", it is clear that in some situations/jobs it may be very helpful. If your company or your work is focused solely on Web then learning HTML/CSS/JS sounds like a reasonable time investment. > > In my case, on top of the 'typical' suspects, we are currently working on VoIP, NFC, M2M, each of which relies on different protocols, frameworks, network-device dependencies, device-device dependencies, etc… There is no magical-triad that can be learned to support all of these and working closely with the technical people is the (next) best thing. > > ((

29 Jun 2011 - 2:06am
tonyzeoli
2008

Understood. How do you plan for the canvas tag and map out interactivity within HTML?

Tony Zeoli, Founder
®
The New Social Music Guide
P.O. Box 597, Chapel Hill, NC 27510
✉  tonyzeoli@netmix.com
☎ 917.705.4700
Adviser to 8tracks.com, HipHopMuseum.org

Social:
Contact me: tonyzeoli djtonyz djtonyz anthonyzeoli
Feed: Carnival Brazil with Kaskade

Tweets: Cool! Got my @zipcar card today...can't wait to test it out.Follow @netmix Reply Retweet   21:03 Jun-22

My recent favorite song: It's You, It's Me (More Vox Mix) by Kaskade via Pandora | listen

On Tue, Jun 28, 2011 at 11:10 PM, Richard Carson <richard.carson75@gmail.com> wrote:

There is a huge bias towards Interaction design for the web on this thread, as if the entire world could be designed in HTML. Although, maybe future versions of HTML like HTML 6 or 7 could accommodate for screenless designs, as well as computerless based design interactions.

Richard Carson

On Jun 28, 2011, at 9:45 AM, Rez wrote:

> The thread seems to have a bias towards Interaction design for web. I'm wondering what mobile designers think?
>
> While knowing programming languages may not always guarantee understanding the "how", it is clear that in some situations/jobs it may be very helpful. If your company or your work is focused solely on Web then learning HTML/CSS/JS sounds like a reasonable time investment.
>
> In my case, on top of the 'typical' suspects, we are currently working on VoIP, NFC, M2M, each of which relies on different protocols, frameworks, network-device dependencies, device-device dependencies, etc… There is no magical-triad that can be learned to support all of these and working closely with the technical people is the (next) best thing.
>
> ((

(((Please leave
28 Jun 2011 - 8:27am
bjminihan
2010

Perhaps instead of saying "an understanding of HTML and CSS would be an advantage", you could say "demonstrated ability (via examples/portfolio) to design to the strengths and weaknesses of modern web technologies (HTML, CSS and JavaScript)". 

7 Feb 2012 - 8:54am
ronswanson
2012

As my dad once said: To be the best striker you have to know your opponent and the limitations of the field.

In my opinion it's always good to have very wide understanding about a lot of things as an IxD. That's what makes it so hard.

As the top footballer has to be the best at dribbling, running, scoring, defending, heading, passing and also be a good team player, the IxD have to train to be better in all different fields. And as in sports, just a few in the world can be the best at all of them.

I would see my self as a quite technical IxD, which in my case means that I still have much to learn in the field of graphics.  Today, after working with IxD for 3 years I would say that I’m like the 11 year old Messi, still training to be the best (and are hopeful to be just that when I grow up, just as Messi was).

I have never met such a person as the “perfect” IxD. Some IxD’s are great at conducting user tests, some at conceptual design, and some at designing large and very complex websites. Find your own path, be an expert on it, and then strive for higher grounds.

So my contribution to this debate is that it’s always good having a basic understanding in all fields that you want to affect. If you want to push some design boundaries you have to get an understanding what boundaries that can be pushed for a specific platform. And yes, it’s always platform specific. An iPad app is one thing and a car another. If I really feel strong for a web design element that are pushing some boundaries, I will for sure get the technical knowledge I need to push the developers into doing their best in making it happen.

Because who wants to design and build something that is just another system in the world?

 

 

9 Feb 2012 - 2:43pm
Sean Gerety
2009

I have to agree with Dave Malouf on this.  Why as an interaction designer should you need to know the syntax of a particluar langauge?  You are designing the interface and interaction, which to me is more important that what is the current language that is in vogue.  Plus, things move rather quickly when it comes to technical langauges.  One day it could be ruby & jQuery, the next could be Objective C and SVG.  That can become a trap for you.  It's about the interaction.

I will say that knowing a language will help you bridge the communication divide with developers and allow you to prototype beyond whiteboards and paper.  I would recommend HTML & jQuery/JS skills be part of your toolkit, just as I would recommend paper and pen.  The more you know the more valuable you'll be. 

 

Cheers,

 

Sean

9 Feb 2012 - 4:35pm
Moses Wolfenstein
2010

Sean's mention of HTML & JS reminded me about Code Academy's Code Year. I'm running more than a little behind on it myself, but I still recommend it as a free way to start picking up some programming capacity. After I started working more closely with my developers and teaching myself some HTML and CSS, one of them pointed me towards it. It's definitely not perfect, and to be honest they could really benefit from having a skilled instructional designer on staff, but it's been a fun way to start picking up a little JS on the side.

Syndicate content Get the feed