Tuesday, March 09, 2010 #

Pixel Perfect Development

 color

Technorati Tags:

This is a debate that quite frankly I do not have the patience for anymore in my career as a Software Engineer.  I don’t know jack about Graphics or Usability and I will openly admit it.  I may think that if I move this form field to the left in my application, that it’s usable…because I’ve created hundreds of input forms in my career and that makes me a usability expert.  You might be thinking “right on dude, I feel the same!”.

But I can tell you that you’re probably wrong in 99% of the cases when you think you’ve got it right in your application in terms of usability and that “good enough” for you means doesn’t mean that it’s going to be “good enough” for your end user’s experience and overall success utilizing the tool you just built.  After all if you have not done usability testing, how do you know?  If you haven’t tapped your designer’s proven experience and intuition in this area, how do you know as a Software Engineer?  You don’t.

“I hate those pixel perfect jerks that annoy the hell out of me”.  Well, I have to tell you, even though I am a Software Engineer, I’m the opposite in terms of thinking when it comes to the overall tool I’m building.  I am tired actually of hearing my Software Engineer colleagues discount and unacknowledged aesthetics and therefore undermining flow & usability as a direct result.

Honestly, I’m sick of hearing my fellow Software Engineers say the following:

1) “It doesn’t have to be pretty” (FAIL: unfortunately you are blind to usability if you think “pretty” is all graphics are for)

2) “It’s ok if those pixels are off a little and things don’t line up…who cares”

3) “We don’t need a graphic designer, we can do it ourselves and it’s good enough to just use CSS”

Software Engineers, Technical Managers, and even CEOs don’t even begin to have a clue about:

1) Usability

2) Graphics as it contributes to a more usable UI

3) Flow of an application as it relates to a more usable UI

4) True Usability Testing itself and the act of doing it properly or even what it fully means

5) UX patterns

Sorry to break it to you but the world is no longer working in a blue link, black text, and white background nor is it still using <label style=”color: blue;”></label>.  We use real color values that makes sense to the overall delicate balance of the UI that paints the code you and I write as OOP developers.  Your users are sick and tired of an entry form that is a mess and colors that just look like shiza, and expect us as developers AND Graphic Designers to do a little better than this and…for software engineers to change their rigid ways of thinking.

Most developers hate “graphics” and graphic designers.  They wish they were never born.  But those developers are blind and therefore completely unprofessional. It should be a 360 (OOP + Graphics + Usability) way of thinking, not a stubborn-minded 180 (just OOP) way of thinking when we think about the overall application/site we are building.  And until you as a Software Engineer wakes up and listens and truly tries to understand the other side of the coin, then you are incomplete as a professional.

Software Engineers think that what they do (OOP) is the ONLY thing that matters or should matter need to wake up.  Talk about egoistical.

The problem with this is that Software Engineers are narrow minded by nature.  We eat and drink code and that is all.  We never “think outside the box” other than the box we are in which is only code and architecture.  But we should not use this as an excuse.  While we as Software Engineers are supposed to be viewed as abstract thinkers, geniuses, or whatever fulfills our all-knowing attitude and feeds it, at the same time this directly conflicts with and hurts the overall quality of the application. It hurts and undermines your end users expectations if all you care about is just the code and disregard true Usability and fail to utilize UX professionals.   Having this attitude that we don’t want anyone telling us how to code an application including the UI, and that we believe we know better including even how to position the elements on the page in a usable manner is flawed thinking.  It’s a flaw in our genius…or the genius somehow all we think we are as engineers.

And we as Software Engineers are more often hypocrites because what happens is we say “I hate Graphics and Design” but we end up being the ones who dictate the entire flow and how elements are laid on the page completely calling it “good enough”.  That is a line of crap.

It’s not the job of a Software Engineer to be a Graphic Designer right?  Ok, if that’s the case, work with your designers and allow them to have some say in the UI.  Stay out of it then in terms of being right on the flow of the application…and at the same time start to listen and let go.  And I’m talking about good Graphic Designers here.  I acknowledge there are bad obviously but let good designers work with you and find time or a way to give a damn for once in your career to get their ideas or concerns resolved in the app you’re building together.

Did you even know that there are proven UX patterns that when applied improve usability two fold, which includes positioning of elements, flow, and use of graphics, just as Design Patterns work in our code?  If the answer is no, you have just proven my point.  You have no clue about usability to begin with.

Why should Software Engineers care?  Because it’s an integral part of the success of the application YOUR building even if all you touch is design patterns all day.

And let me ask you.  Would you let a graphic designer do the reverse.  That is tell you as a Software Engineeer that utilizing any OOP patterns does not matter whatsoever and it’s just “tech talk”?  It’s the same exact analogy just reversed.  

As a Software Engineer I’ve actually moved outside just OOP.  I’ve taken some time and looked into what usability really means, worked with some great designers, and how graphics and able to realize how it’s an integral part of the overall success of any user facing application we build and the overall ROI for the business we work for.   Whether or not that business acknowledges the value of graphic designers or usability is irrelevant.  The point here is that all this is being undermined and undervalued and we are at fault due to our attitudes.

The idea that “they” (graphic designers) are a pain in the ass because they want pixels to line up perfectly actually shows how limited your mind is as a Software Engineer.  Your value has just gone down as a professional as well as your application is of less quality and you’re too closed minded to acknowledge or realize that. 

Look at Microsoft.  Is there any more of a clear example than this? They have had to deal with this and hurt badly over the years because of their past arrogance.  I am not an MS basher, this is reality.  And because I am a Microsoft supporter I am glad that they finally have been improving graphics & usability in many of their core applications and it’s really starting to impact them positively in the past couple years.

This post is going to be hard for a lot of Software Engineers to swallow.  But it had to be said.

posted @ Tuesday, March 09, 2010 8:54 PM | Feedback (1)