Why All Ning Designers Code

Posted by Yi on February 10, 2010 – 11:34 AM

You can’t have a great user experience without clean code.

…so says Andrew Mager, web ninja at Ning and all-around awesome guy.

At approximately 160 people, Ning is larger than most start-ups, but it still isn’t a Big Company. It’s never felt that way to me, even though I am embarrassingly bad at remembering names (but not as bad as one engineer who turned to me in the elevator on a random afternoon and said, “Who ARE you?”). I digress—the point, though, is that as with most start-ups, everyone wears a multitude of hats.

Design, when properly broken down, encompasses an extraordinary number of skills and roles: interaction design, user experience design, information architecture, user interface design, visual design, graphic design, illustration, and even more if you consider that many of these aforementioned areas can be further broken down.

The small but mighty Ning design team not only fills almost all of the “proper” design roles, but we also do front-end coding (HTML, CSS, JS, PHP). The design team doesn’t hire anyone who cannot code, and our interview process always contains relevant coding exercises and problems. This is not to say that we expect a visual designer to find a loop in a linked list, but we want them to be well-versed in the medium that they are working in.

There’s always the idea that a designer who is unfamiliar with web development will create fanciful and impossible designs. Less commonly, there’s also the suspicion that a designer who is familiar with web development will create something boring because they “obey wrongly perceived constraints” (Mathis).

To the first idea, I can confidently say that with 99% of the designs I’ve encountered, there’s some way to implement it for the web. Drop shadows and rounded corners are child’s play; animation and sound is trickier but doable. The exception to this, of course, are those delightful, viral Flash movies about lions and tigers, but perhaps HTML5 will rectify that. For that 1%, then, I would ask why the designer is creating something so unique and complex: Would the casual web user actually understand what’s going on? It seems like the 1% is in a sea of confusing or bad user experiences.

Then the real question, really, is not if it’s possible, but rather, if we should do it. Typekit is all the rage lately, but one of the reasons it’s not on Ning is due to performance. Steve Souders has a highly informative post (as are all his posts) about @font-face; the obvious conclusion for a platform that has over 40 million users is a big, resounding no.

Steve Souders from Google

There’s no chance of iteration here, either. What is the designer planning to propose? That we figure out some other way to have awesome typography? So, we’d have to go work for Microsoft, Mozilla, and Apple to change their browsers to handle typography another way, and then bug the W3C about “fixing” @font-face. Yeah…I’ll get right on that.

We need our designers to understand these issues, and I would actually argue that most (visual) designers do, given that they are web users like you or me. Find me a seasoned visual designer who hasn’t been told “no” by an engineer, and I’ll give you a cookie.

So now let’s tackle the second point—the super creative designer who is now constrained by the “HTML box” (Mathis). Again, I can speak confidently when I say that I have never felt unduly constrained by the limitations of front-end coding.

If anything, it allows me to be more creative—like MacGyver, but on the web (I have a 5″ string, an empty matchbox, and a parakeet…how do I escape this one?). One of my greatest joys, actually, is implementing something with HTML/CSS/JS that is typically only done in Flash.

There is no designer in the world who works without any constraints (and makes a living). Yes, I have to keep the code in mind. But there are also legal and business constraints. Sure, I’d love to not have to ask for birthdays from a user experience perspective, but we’re required by law.

I actually would argue that if a designer doesn’t code at all, they’re more likely to be constrained. If a previous unscrupulous engineer tells them no for something quite simple, doesn’t that discourage them from suggesting it again? And if said designer only has a little experience with code, the code they produce isn’t going to be up to production standards. Frank Lloyd Wright’s buildings are notoriously leaky, and he was an architect, not an engineer.

So we need designers who can code and code well. Yes, it’s harder to find candidates this way, but I think by being vertically integrated, it’s much more efficient the end. I only have myself to struggle with when it comes to implementation; I know when 5px is not enough padding, and I fix it myself.

In the end, it makes for a more rewarding result. It’s like baking a cake AND eating it!

Yi Posted by Yi, written on February 10, 2010 – 11:34 AM.
Yi is a user interface engineer on the Design team at Ning, and spends her days half designing and half developing.

Also from Ning Code…

 
  1. 7 Responses to “Why All Ning Designers Code”

  2. If you try to create developers from designers, it is likely that you’ll fail. Most of the designers does not understand what clean code means and have no idea about object oriented programming. On the other hand, if you try to create designers from developers, you’ll get static and aesthetically broken sites (not even mentioning usability).

    Find a designer, a developer and a user experience engineer/designer and make them a team who will work at least 18 months together. Let them collaborate and learn from each other…

    Each field has its own characteristics and don’t expect all the skills coming from one person.

    PS: Now I can understand why Ning looks like as it is…

    By Gercek on Feb 11, 2010

  3. Fantastic designers like Yi, who have a great eye for design and UX, but can also code, are a godsend for engineers and product folks alike. The “Code savvy designer” makes what we do at Ning possible. Great post!

    By John Quaresma on Feb 12, 2010

  4. True, every web designer should be able to create what he designed.

    :) And really it’s fun! :)

    By Lance on Feb 12, 2010

  5. I could not agree more with this post – What amazes me is how much of a debate this is. From my perspective, the point should not be weather or not a designer can or should code as well as more technical producer – but more importantly that they understand the possibilities & constraints of the medium that they supposedly are specialist in. The web is an interactive medium – one where I would argue that function and intuitive experience are a better gauge of success then the way it looks.

    By marc on Feb 12, 2010

  6. Agree with you, a designer needs to know front end code. Not knowing limits the site’s ‘web experience’.
    Still need the team, folks who specialize in their craft and keep up with new technology in their specialty. There is overlap, but that’s good. We can all learn from each other. plus A designer should be able to fix or edit some code.

    When I was a print designer, it made sense to understand how my job would run. I was not going to run the press, but it helped me design a piece so that it looked good and ran smoothly and quickly – helping to streamline the whole project and kept cost down.
    So too, for the web.

    By margo attaya on Mar 3, 2010

  1. 2 Trackback(s)

  2. Feb 11, 2010: uberVU - social comments
  3. Feb 14, 2010: Things out there in the wild | Voidnothings

Post a Comment

Comment moderation is enabled. Your comment will not appear until it has been approved. We look forward to hearing from you and encourage your comments, critiques, questions, and suggestions. We ask that you stay on topic, respect other people's opinions, and avoid profanity and offensive statements. For questions specific to your Ning Network, please drop us a note in the Ning Help Center.

Attend Tech Talks by Ning's Engineering & Ops teams at Ning HQ in downtown Palo Alto, CA!

Archives by Category

Search this Blog


RSS