Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'd say that we're developing software in a world where the front-end of an application is probably the most important. The increasing ability for a user to access and interact with software almost instantly in the cloud is making the first few minutes of user interaction crucial in determining whether the application will get any further attention, making UI design and the "intuitiveness" of the application extremely important factors.

As a developer, I've never really appreciated the important of the design of my applications. I usually write the code that works, and take advice from either a graphics designer or project leader on ways to improve the usability / look of the app. But maybe this isn't the way to develop any more. I can't help but wonder the time and resources wasted on a developer being told by a graphics designer to move a button 2 pixels to the left (for example) when, if that developer had a basic understanding of software front-end design, they'd be able to make the decision themselves.

I can understand large design decisions, such as the overall look of an application and the global fonts used etc, are all jobs that should be done by someone with the appropriate knowledge of such an arena, but should we, as the developers of the front-end, know enough of design theory to be able to make smaller design decisions by ourselves?

  • Should the front-end design of software and some basics of user interaction be taught alongside the current programming package?

  • What level of knowledge should a developer expect to have in regards to user interaction & design?

  • Should an understanding of design hold a higher ground than it does at present in the context of resumés and qualifications?

The subject is somewhat of a hobby for me, I find it fascinating studying users' interaction with a program, but it should it be part of the core of software development?

Just to clarify, when I talk about "design" I'm talking about front-end design, rather than the design of the software architecture (something which every developer should understand).

share|improve this question

migrated from stackoverflow.com Apr 10 '11 at 15:35

This question came from our site for professional and enthusiast programmers.

4 Answers 4

up vote 3 down vote accepted

Since your question asked about front-end developers I would say absolutely yes. In fact, not just the basics but they should have a deep understanding of design concepts, usability and so on.

Software development have been moving towards a separation of concerns for a long time. So many applications make use of components that have nothing to do with the user interface. The programmers that work on these components do not need to be concerned about usability.

The programmers that work on the user interface on the other hand should have a deeper understanding.

share|improve this answer
    
Would you say that software teaching courses today respect this? I'm currently at University and would say that the importance of design and interaction hasn't been thoroughly explained considering how vital it is for a front-end developer. –  EMMERICH Apr 10 '11 at 14:45
    
Not really. Usability is usually just a component of software engineering course but at the undergrad level it probably deserves a course or two on its own. At post grad you can specialize in usability engineering in some places though. –  Vincent Ramdhanie Apr 10 '11 at 15:08
    
Everyone has a user, whether you're writing web pages or the API behind those web pages –  pdr Apr 10 '11 at 16:18

Like aesthetic design? It's kind of hard not to learn a thing or two when you spend most of your Jr. career converting PSDs into perfect HTML/CSS replicas but I've never felt bad for my inability to pick a color scheme or design a logo to save my life.

Where every front end dev should devote a fair amount of thought (and they generally do in my experience) is more on general usability and practical user-interaction design. If you're not really interested in those things I can't imagine how you could possibly want to actually work on UI for a living.

That said, I'll be the first to jump on a graphic designer trying to put two overly similar background and font colors together or who doesn't appear to get that paragraphs are a lot easier to read when they're not spread too far out horizontally. But usually the designers get it too. In my experience it's critical we consider this stuff in part because sometimes self-proclaimed UI nerds of the non-coding/designing variety (i.e. managers/business owners with Steve Jobs complexes) forget the user for the elaborate snazzy UI they've imagined will be ever so wonderful and somebody has to be a champion for the user.

IMO, the worst way to have front end devs and designers work together is to have the designer and/or user-interaction specialists (who are sometimes a bit overly academic for my taste) draw up a blueprints and then hand them off waterfall-style without any feedback from experienced UI devs. We should be building prototypes from biz reqs before we ever see designs and UI devs should always be involved in initial design conversations where anything more than static content is involved. Not just so we can cast no-votes but also so we can make people aware of the things that might be more in our grasp than they realize on the complexity front.

Ultimately however, there's nothing I love more than working with a strong designer with good instincts. Using space supremely well takes a mix of talent, knowledge and experience-honed instincts that I suspect I could never develop to the levels I've seen among more proficient designers out there.

share|improve this answer

Should every frontend developer understand the basics of design?

Oh yeah, definitely! Just delivering functionality just isn't good enough. It doesn't help your company very much if the underlaying software architecture is perfect and every design pattern Fowler ever mentioned has been used if the users sitting in front of the screen are screaming one "WTF" after another.

Delivering a software product isn't just delivering all the functions required by the customer but also delivering them in a way everyone is happy to use them. One might say that "looking good and being easy to use" should actually be a requirement so that the people implementing the solution are aware they need to findone skilled enough to deliver all this. But let's be realistic here - most of the time that's not the case, so yes, someone ought to have a look at what's being delivered from an ergonomic point of view and since the frontend developer is the one implementing the layer closest to the actual user it should be him!

share|improve this answer

It certainly does help when a front-end developer as some sort of feeling for design and esthetics. From my experience it isn't always just about coding, user interaction and design play an important role in my daily work.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.