Designers design. Developers develop. Everyone wins.

Any project / product, whether it be a website, or a mobile application, or a widget, needs to be designed and developed. I realize this is a truism, but bear with me.
The following is my articulation of how I think this process should work:
  1. Product Manager(PM) communicates the vision to the lead designer (translating what was communicated to the PM from ownership/leadership/stakeholders).
  2. PM and designer do a couple of instant iterations, then the PM leaves it to the designer to work his/her magic.
  3. Designer provides 1 (maybe 2) options. (I prefer only seeing the one the designer feels is best, as I’m not really interested in spending my time evaluating the #2 option.)
  4. Sometimes the PM makes suggestions. Sometimes the PM gives the designer brilliant ideas. Sometimes the PM just says “That looks amazing. Let’s use it as it is.”
  5. Designs are handed off to development:
    1. Development’s job is to figure out how long it will take to turn the designs into reality.
    2. It IS NOT development’s job to re-design the designs.
    3. Development is supposed to give a risk assessment and a breakdown of what time the implementation will take.
    4. It is development’s job to make suggestions to the designer(s) that will make the designs easier for end-users and easier for development.
    5. It IS NOT the designer(s) job to tell development how to develop.
    6. It IS NOT development’s job to “pick and choose” what’s to be implemented.
    7. It is development’s job to go through 1 iteration with design, where designer(s) make the final decisions for what everything is going to look like and work like, based on the recommendations from development.
When this process is working properly there is one person (the PM) who makes final decisions in the event of a conflict between design & development. If you have the right people on both sides of the fence, there are no “final decisions” that need to be made, because development is implementing what design designs, based on the limitations articulated by development. The feedback-loop, when dealing with professional adults, is extremely productive. (a.k.a. Agile)

In my experience, this process works amazingly well, provided:

  • The development side does not act as if they are better designers than the people responsible for the design;
  • The designer(s) don’t act as if they are better developers than the developers.

The process breaks down under 3 very obvious circumstances:

  1. Timelines and/or requirements are changed without proper respect for the process.
  2. Development does not implement what has been designed and approved.
  3. Design insists on things that are to complex.