views:

335

answers:

11

Programmers often serves as a designer of user interfaces. You could argue whether it is good or not. However, especially in small companies, it is a reality that does not change.
What do you think personally as a programmer, is it our work to design UI? Personally I think that not, especially when you are going to work on Web Applications, where they made you to design UI also.
*Correct me if I am wrong.*

+5  A: 

Should a programmer design User Interfaces?

Only, If you're working in a small company or freelancer - one man army with limited team-size, where you often have to wear different hats of a programmer, tester, QC and the UI designer. This would not be the case for larger companies, where teams are large and responsibilities are divided horizontally or vertically.

this. __curious_geek
+6  A: 

A GUI designer should design user interfaces. This is a different skill set. Of course, there's no reason why you shouldn't have someone in your team capable of performing both roles well, but it is important to recognise that the roles, and skills required, are different.

David M
+1, I am a developer but as I spend a lot of my time out of work designing I cover this role in work too.
ILMV
+1 for a good response. I agree with you.
Bakhtiyor
@ILML. That is really boring task, I know it from my experience.
Bakhtiyor
+12  A: 

In an ideal world there should be a UI designer, just as there should be a DB designer, etc.

However, this would mean that even the shortest projects run by the smallest companies would need a team of at least 3 (or more) people. Because of the cost that this would incur it's never going to happen.

On small projects you are going to have to double up job functions in fewer people. It's a fact of life.

From a pragmatic point of view I think that all programmers should have an understanding of the basics of UI design, if only to be able to spot a bad one and do something about it. I also think that programmers should have an understanding of DB design as well.

You should look on this as an extra skill set you have which will give you more options when looking for new career opportunities in the future.

ChrisF
+1  A: 

Some Web Application requires some good designs, you are right at that point. Thats because there are designers. For example, I am really bad at design. A programmer should have own Design Patterns on coding :). Of course, if you have a good idea on how to design, it should be good for you. You can both write & design your UI however you want. Be pro on coding, let designers design your UI :) Good Luck

Serkan Hekimoglu
I am very bad in UI design too, that is why I started this discussion.
Bakhtiyor
dont worry about it. just be a pro coder. It is enough for us.
Serkan Hekimoglu
A: 

The team I work in is very small so we are all involved with the full software lifecycle, although we do have a dedicated QA team too.

Dan Iveson
+1  A: 

You have answered your own question i think, i have worked in companies where i would not be doing this and also companies where i would. If you work on line of business apps the UI may not be a top priority and therefore a programmer is usually capable of this task.

Richard Friend
+2  A: 

Personally, I prefer working on projects where I have a view of the full application stack, so, for a web app, I'd hope to work on the UI, presentation, business and persistence layers.

I like to fully develop a 'feature', rather than a layer - it makes the work feel more real; but then I'd say that I'm probably not typical in that regard.

Also, I've found on projects where the work is divided by layers that there's (necessarily) a much bigger overhead in agreeing on the interfaces between different developers work. Arguably, of course, that's a good thing, because extra up-front design can only improve things, but I found that huge amounts of time were wasted with people waiting for others, and fixing thing that broke from a seemingly innocuous change.

Of course, there is a very different skill set, so you either need good all-rounders (who are probably less good at the minute detail of individual areas), or strong leaders for each technology. But I think the payback is fewer integration issues where everyone's code works perfectly, just not all together!

DaveyDaveDave
A: 

I think a programmer can design UI well given the correct training. My university had UI classes, and there are short seminars / training classes out there today that hash over the basics of good UI Design. The important thing is to know your customer well, and the real use of your website - keep in mind that this may differ from your intended use. I.E. you may have intended one type of user to use your site in a very basic way, but it turns out it has become a favorite of expert users, so the UI needs to support that.

Often times your buying customer, if you are offering "solutions" rather than "products", will dictate large portions of the interface, right or wrong, so the affect of your design expertise is limited anyway. The important skill to have here is communicating the whys of your interface, and the why not's of theirs.

reuscam
+1  A: 

Programmers, generally, design horrible UIs.

I think the ideal here is a UI designer with some programming knowledge. While they will focus on the user's experience, they'll also know how certain UI decisions may have a big impact on the underlying implementation.

Ed Daniel
**Programmers, generally, design horrible UIs**. That's true sometimes.
Bakhtiyor
I think this is a bit of a generalisation; I agree that the majority(?) of programmers probably don't have a brilliant artistic eye, but given some design guidance, from a not-necessarily-technical designer - I'm thinking Photoshop mock-ups with colours, fonts and guide layouts - most programmers can come up with a perfectly serviceable UI.I agree completely that the ideal is a UI designer who knows programming; but I've definitely seen more bad UIs from non-programmers (by which I mean graphics designers or marketers) than from programmers.
DaveyDaveDave
I think there are two parts to the problem, as far as programmers doing UI are concerned (and yes, this is more generalisation):1. They're generally far more comfortable with the machine than the users they serve, don't mind (or, in some cases, notice) rough edges, and don't mind dropping down to the command line if need be2. There's a conflict of interest that - especially as release day draws near - can be overpowering. "Yes, I *could* make a fantastic UI here, or I can throw a text box in and get on with my other 10 critical issues..." It can be hard to recognise, let alone resist.
Ed Daniel
"I've definitely seen more bad UIs from non-programmers (by which I mean graphics designers or marketers) than from programmers" - I think the absolute worst I've ever seen was when we gave a design house a copy of Dreamweaver and asked them to design a UI for a portal brick. Not only was the UI horribly wrong, but in a 300x200 brick they'd managed to get 5 layers of nested tables and enough HTML to go right across my desk and down to the floor. Management's plan, of course, was that we would just plonk the HTML straight into our app... which was meant to be served over GSM at 9k6... *shudder*
Ed Daniel
I had the exact same thing (minus the GSM)! Of course, management couldn't understand why we quoted any time at all on the UI, because it was 'already done' (at high cost, of course)!
DaveyDaveDave
@Ed Daniel. The story is really distressing.
Bakhtiyor
+1  A: 

It depends. In a small company, of necessity programmers will also be designing UIs, so yes, it is your job. In a larger company, there may be others on the team whose job is to design the UI, so then no, it isn't your job.

The question here isn't "should programmers be responsible for designing UIs". In some jobs they will be, in others they won't. Some programmers enjoy designing UIs and are good at it, others don't. If you personally do not like designing UIs, then you should take jobs where you are responsible solely for writing code and not designing UIs. If you are currently in a job where you are being asked to design UIs and you don't want to do that, time to talk to your boss to see if there is someone else who could do that function. Say you don't feel UI design is a strength of yours and you want the company's product to be as good as possible, therefore is there someone else who could help design the UI? If there isn't, start looking for another job that better fits your skills and inclinations.

Kirsten
A: 

Ideally not, but it's mostly better than the client designing the UI.

simon