Jenn Lukas — Front-End Developer

Operation Get Rad (blog > livejournal)

You can find more about me in a conveniently located sidebar!!

Jack of All Trades…Master of Development?

Posted on February 18, 2010 at 02:29 PM in The Nerd(3) Comments

I started this blog post on January 12th, but could never get through it. I found myself going back and forth and agreeing and disagreeing with myself with every point, making it pretty difficult to write a coherent entry. After some lively discussion through the Happy Cog twitter account today, I’ve decided to give it another go, this time in question and list format.

The tweet (which followed a great many related tweets and blog posts) read:

“Interesting read: “5 Good Reasons Why Designers Should Code” http://cot.ag/aBMpdt Agree/Disagree? Should lines be drawn across mediums?”

If designers should code, should coders design?

How closely are these two practices intertwined? Let’s examine the other direction. As a developer:

  • Are you proficient in Photoshop?
  • How about Illustrator?
  • Fireworks/ImageReady/Acorn/Painter/etc?
  • Familiar with Grid Systems?
  • Do you keep up with the latest design trends?
  • Do you understand typography, horizontal/vertical rhythm what about scale?
  • Do you understand color theory?
  • Are you comfortable in a design critique? Do you know how to critique your own work? What about someone else’s work?
  • Would a designer want to play Layer Tennis with you?

Are these the skills that make you a designer? I have a degree in web design, I studied typography in school, I even, at one time, loved Quark. But at the same time I was loving my Database Structures and Coldfusion classes. Seven years ago: I knew a little bit about a lot. I was constantly receiving constructive criticism in school and at a design internship that I was spreading myself too thin. I was told that I had to choose a speciality. I chose Front-end development. My focus on design took a back seat, and while I certainly know the Adobe shortcuts to hide/show rulers and grids, I would not call myself a designer.

So how do you define being a designer? The questions above? Having that special something? Something else? Is being a designer different then knowing how to design? And what, if any of these, should a developer be expected to have?

Speaking of trying to figure definitions, how exactly is the “code” in “designers should code” being defined here?

Let’s get this straight(er)… as there is a big difference as knowing that rounded corners are easier in CSS3 vs. being able to code proficiently for IE and optimizing sites to the max. As a designer:

  • Are you proficient in HTML/XHTML?
  • How about CSS?
  • How well-versed in the W3C technical specifications and guidelines are you?
  • Do you keep up-to-date with topics like HTML5?
  • Are you saddened about the loss of XHTML2?
  • How deep does your knowledge of JavaScript go?
  • Are you comfortable debugging your code?
  • What does accessibility mean to you?
  • Do you not understand all the fuss about IE6?
    • …Because once your past hasLayout, it’s all cake?
  • If you were halfway finished with coding/styling a site, would a developer have no qualms about having to take over your code base? (Minus the expected minimum getting familiar time)

Dan Mall’s 140 character or less statement was one of my favorites today, “Disagree. I think designers should know ABOUT code (preferably with experience), rather than knowing HOW TO code.”

There are lots of great advantages to having this knowledge in your tool belt. From knowing the limits of the browser, to pushing the limits of the browser and rocking the newest neat tricks. And on the opposite side, there are natural concerns about anyone who does not specialize in development, being put in the position of writing production code for a client, as well as unrealistic pressures put on a designer job description that already has a lot of responsibilities.

Is the line drawn at Front-end development?

Why not CMS knowledge? An example: using the CMS, ExpressionEngine, out of the box – means being constrained to a very specific markup for pagination. Customization options off the table, the design for this pagination is limited. Is it the designers job to know EE well enough to know that? Or is the developers job to inform them of this constraint?

Is the bar set different for web designers vs print/web designers?

How much does ones job description play into the topic here? As a designer working for an agency, if you’re job description includes both print and web functions, does that mean you have the same expectancies as a designer who focuses solely on designing for the web? Is your view on this matter the same as your companies or managers view?

Should Information Architects design? Should Developers wireframe? Should Project Managers program? Should Designers make sales? Should Client Relations Directors know how to run payroll? Should Directors write copy?

Is it a double standard to not extend this idea to all practices? Are some disciplines exempt from knowing others? Is it enough to be knowledgeable or should you be proficient enough in all aspects that you could be a one-person shop? Iron-man web design, if you will (I went a long way to get to my first sports reference). Should your Project Manager share the same amount of love for Dojo that your programmer does?

One of the things I love the most about working at Happy Cog, is the cross-pollination of practices. At any time, anyone in the office will be on QA of a project, or the whole office will be involved in a Sitemap review. Everyone knows some degree of what everyone else does. Not only does that open up the office to lots of different points of views and varying ideas, but it also creates a mutual respect for your co-workers, knowing that every job takes a high skill level and every person LOVES what they practice.

This also means that while everyone you work with can be great at what they do, everyone can also help each other be even greater. A Project Manager can pinpoint gaps and timeline issues when they know that it take xx amount of time to code templates. A Back-end developer can identify Sitemap gaps based on CMS requirements. An Information Architect can spot a source ordering discrepancy between code and the planned hierarchy. A Front-end developer can suggest a link in a design become a popup for users with JavaScript enabled. A designer can plan deliveries and help the Project Manager to make sure the client sees the creative at the appropriate time. Et cetera, et cetera.

But where do you find the time (and the budget) for all this knowledge?

Today someone brought up the passion to learn these things. I whole-heartedly agree. I love the internets, even thought sometime it acts up and times out on me. I would love to become an expert in everything web (minus those silly social media titles) and wish I had all the time in the world to do so. But how much can you fit in between a full time job, hobbies, a personal/family life as well as personal web projects? Should your full time job carve out a certain amount of hours per day/week/month for you to read the Popular PM-ing Today FTW RSS feed? Or should you do that in your free time between extra work and having a relationship and eating? How do you fit it all in? And where does it fall in your priority list?

Who cares? Why are we discussing this again?

Well, with all the rage/questions/exclamations that surround this topic, doesn’t that answer the question? If a topic is still arousing people, and people are still learning from it, I say, have at it! At least I’m not tweeting about the Phillies (though regular season tickets go on sale today – consider yourselves warned).

What’s a scattered blog post without a conclusion?

In an ideal world, who wouldn’t want to be able to do everything? Based on the amount of blog posts about this topic and about balancing work/life priorities – I’m hesitant to say its realistic to be the best at everything/multiple things. In my experience, I find it best to conquer things one at a time. Sure, some have dependencies on others, and thats where having a knowledge of something as opposed to an expertise in it differs. I spent a large part of the beginning of my career getting comfortable in Front-end code, and while there are ALWAYS new things to learn, I waited till I was at a point of proficiency in that work till I started tackling Back-end development again. And while I’m no Mr. Hout, the ability to work within ExpressionEngine has eased the meeting of Front-end and Back-end at this office ten-fold. We can work together simultaneously and I am aware of constraints and awesomes of the CMS.

So I say, be rad at other things as well – as it can most likely only help your primary discipline. But be the raddest at your chosen discipline first, don’t neglect your own practice to spread yourself thin with other ones. And hopefully you are lucky enough to be surrounded by those same kind of awesome people in the areas you don’t know as well. An offense and defense will get you a whole lot further then only 11 men on the field – even if you have Hank Baskett on special teams*. Who’s up for Squash?

* This is already on my desk.

Comments

  • Angelo Simeoni said…

    It boils down to workflow. Design driven development has been embraces as a productive standard. Designers create awesome things that developers (both interface & procedural) then set about executing.

    Design is about pure ideas. Development is the execution of those ideas. The two disciplines are inextricably linked. One might even consider a well executed piece of code ‘well designed’.

    Should a designer have to know about database constraints? How about markup & style? Javascript? It depends on context.

    Most often, designers should design, interface developers should develop interfaces, and so on. It can be helpful, and essential at times, to step outside of one’s comfort zone.  This is usually when the quality of execution is at stake.

    Posted at 03:44 PM on February 18, 2010

  • JP Toto said…

    Here’s a topic I wrestle with a LOT but I want to reset some definitions. In my head a designer is mostly what you were talking about: Font, color theory, UX (ideally), page structure, etc. However, I think designers should also be proficient with CSS, (X)html, etc. This isn’t really “coding” – this is just markup.

    A [back-end] developer is someone who writes engines that generate markup, designs databases, knows how to properly scale a site, writes custom applications, and keeps things running smoothly. Developers should care (and follow) things like design patterns, language frameworks, database ORM tools, database sharding, scalability, etc. I consider writing markup to be front-end work. Most of the time a developer has to figure out how to generate markup in an efficient way. Knowing a CMS isn’t development. Writing a CMS is development.

    Having said all that… (boy I’m a snob)

    Unless you’re a http://www.nerdmeritbadges.com/products/06-full-stack-web-developer it’s very important for designers to have some understanding of development constraints and for developers to have some understanding of design constraints. For example, a designer could whip up a wonderful looking mockup and show it to a developer who poo poos it because he/she knows it will be too much data to render to a screen AND have any kind of scalability. Likewise, developers need to know that the markup they’re generating needs to respect the cohesiveness of a site that was so painstakingly designed for brand awareness, UX, etc.

    It’s hard to be good at ALL that. I consider myself an engineer/developer but I LOVE good design – which is why I contract design/css/markup out to good front-end people. I spend my learning time on Rails, ASP.NET, database theory, design patterns, ORM tools, etc.

    My $0.02 grin

    - JP

    Posted at 04:00 PM on February 18, 2010

  • Ray Daly said…

    Design is as vague as template. That said, if a front-end designer came into a project with a Photoshop mock-up, I’d throw them out. If you can not do it in CSS/HTML/JS, then go back to the magazine.

    Let the server guys write api code, front-end write js/css/html. Let JSON be the glue.

    Then one morning a month do usability and make sure marketing gets their morning too.

    Posted at 09:54 PM on March 21, 2010

Post a Comment

  • Apologies to Number Five and the T-1000:
  • Place above word here: