It is a communication tool.
I have spent my entire professional career sweating the intricacies of Photoshop, practicing and perfecting my workflow in order to produce the ‘ultimate’ presentation of design, for myself and the people I work with.
A badge of honor I wore proudly. No longer was there a need for tutorials, user manuals, walkthroughs or advice. I became the master craftsman I always wanted to be. Quality focused, efficient and prolific. Known amongst friends as “the guy you go to for Photoshop help”.
However, I never felt satisfied or secure with the output. It seemed incomplete, static, fragile. I knew this delicate image would have to compete with uncertainty and questioning from the team. Hours spent in conversation leading to many perceived compromises to get the design built.
I would come away from these reviews, more often than not, feeling defeated. Mentally drained, frustrated and bewildered. Why have I spent so many hours, weeks or months on a design for it to just be talked about.
I fought the realization for a long time. Years of my life dedicated to designing when in reality it was just perfecting the presentation of pixels.
The harsh reality is that anything you ‘design’ in Photoshop is throw-away. A talking point. A reference for discussion. A platform to build from. It is never a definitive piece.
Design realized comes from a collaboration of skills. A collective effort. It takes time to make the implicit explicit, erase the uncertainty and find that common goal to aim for.
We do the design but more often than not it isn’t in Photoshop. It is being done in the implicit boundaries where people collaborated. Conversations, sketches, documentation, diagrams, and feedback. Finally, understanding the limitations of Photoshop as a design tool highlighted its strengths as a communication tool.
The importance of Photoshop diminished for me. I yearned for the design to live. I encouraged, no forced the hand, to get it in code quicker. You can’t illustrate the nuances of animation, real-time feedback and ‘feel’ in photoshop. You can try but it usually comes in the form of a storyboard quickly flicked through in an image preview—trust me I have done it!
The next step was moving more towards code. I can code front-end but choose not to. I just don’t enjoy it. The gap between the text editor and the visual feedback is too wide for me. I needed something quicker with less abstraction. Quartz Composer offered that glimmer of hope, it communicated the human-computer interaction much better than Photoshop ever could. However, it would only do prototypes and the rumors of it being discontinued only reinforced what I feared.
Designers are impotent in a code-based world
We spend all this time sharing ideas, potential solutions and presenting pixels but we still need the skills or the teams to make our design a reality.
Bret Victor spent years hanging around various design groups at Apple, he bemoaned,
“…these brilliant designers could not make real things. They could only suggest. They would draw mockups in Photoshop… the designers could not produce anything that they could ship as-is. Instead, they were dependent on engineers to translate their ideas into lines of text. Even at Apple, a designer aristocracy like no other, there was always a subtle undercurrent of helplessness, and the timidity and hesitation that comes from not being self-reliant. It’s fashionable to rationalize this helplessness with talk of “complementary skill-sets” and other such bullshit. But the truth is: An author can write a book. A musician can compose a song, a [sic] animator can compose a short, a painter can compose a painting. But most [UI designers] cannot realize their own creations, and this breaks my heart.”
To rectify this gap “Designers should code” is often proclaimed as the answer throughout the blogosphere. Yet, having sat with and talked to many developers in my time I came to an understanding that coding isn’t the solution either. It rots, with each new line it accrues complexity debt. The more and more code added equates to more time refactoring, more bugs and a longer on-boarding process for any newcomer. Ultimately, leading to the inevitable Spaghetti code—to be eaten with chopsticks.
So what is the real problem, it isn’t a case of lack of knowledge, understanding or skills—it is a lack of collaborative environments. Tools that can accommodate the complexity of software development through to design and provide a single platform for production. It isn’t about design vs code, it is about design and code, together.