Chapter 10 – Make Developers’ Lives Easier
The most fundamental problem in software development is complexity.
There is only one basic way of dealing with complexity: divide and conquer.
~Bjarne Stroustrup
With the rise of “Design Thinking” and “Design is the how the thing works” concepts, designers can be forgiven for thinking that developers are serving them. They are the ones who must accept your work and make it so because you know best. You understand the requirements, and you understand the user; therefore, it’s by your guiding hand the team will arrive at success! However, your projects and your career can be greatly enhanced by flipping this thinking: you should serve the developers.
Yes, the users are the most important. But if nothing gets built, then they will never be helped! If things are not built in an efficient, fast, and responsive manner, then the users will not be well served. If delivering for your users is the most important thing, then developers are the only vehicle to do so and must be thought of accordingly.
The same strain we endure as designers to empathize with the end user must be extended to empathize with the developer. Understand their struggles, their requirements, and their desire to build amazing things.
Imagine a work scenario where serving the developers produces efficient code; it gets built faster and iterated on sooner; and it adheres to standards that allow things to scale. Imagine you understanding their trials and mitigating any issue you can within your control to contribute to the team. Imagine the developers coming to appreciate the effort you put in to help them. As a result, they want to repay that kindness by putting in the extra effort on your important causes.
This is the scenario that unfolds when you make the developers’ lives easier. By focusing your care and empathy toward the team that will build the vision, you’ll cement your reputation, build better designs, create better software for your users, and help boost your career.
Achieving this does not need to be drudgery or foolish “yes sir” activities. Rather, it’s focusing on the items within your circle of influence that can serve the developers, the team, and everyone’s goals.
How Can You Reduce Their Work?
This isn’t to say you compromise the user’s experience or throw away necessary requirements. But perhaps if you removed this floating element, or had this card show up here, you could save three weeks of development time at the start. If a user interaction that you feel is important gets pushed to the next sprint, perhaps you’ll help deployment go out smoothly, for example.
Work with developers to find compromises that will get better work done in a quicker timeframe.
Ensure They Have All the Designs, Assets, and User Flows Available in an Easy-to-Understand Format
You could navigate your designs in your sleep, but that doesn’t mean everyone can. Much like you’d think through the experience of your end user, think through the consumption of your designs by your team.
Is every state, screen, asset, and explanation readily available for them to begin? Are designs linked up to stories or feature lists to get a visual understanding of the end point? Are images output and prepared in the format the team uses? Can you implement anything in code (SVG, CSS, or otherwise) that will assist them?
Go the extra mile on delivering for your team so they are set up for success.
Help with Testing
Don’t submit your layout and slam your laptop closed. If the design work is done, roll up your sleeves and help with whatever else you can. You as the designer are particularly well suited to help with testing software as you so thoroughly understand the end user’s perspective.
You are also removed from the code and do not know how it was strung together. This separation is incredibly valuable as your fresh eyes will not avoid traps or pitfalls of the output. You’ll press everything in creative orders and uncover untold bugs that would not be found by those building it.
Plus, with your intimate understanding of what it is supposed to look like, the feelings the assignment is meant to evoke, and who it was built for, you’ll approach the testing with a vigor unavailable to those who built it. Testing is never a joyous task, but it’s one you can gain a lot of credibility in helping with and provide profound value.
Stay Until the Deployment Is Done
See chapter 9, Stay Late with Developers, for the full concept, but it’s important enough to cover again here.
There has never been an instance when staying with the developers as they fight through a deployment is not appreciated.
Often, a designer will move the last pixel, output the last PNG, then pack up and leave for the night. Only when they arrive fresh the next morning do they find out how the deployment of the latest version went.
If you are ever working in a situation where you’re familiar with the team building and deploying a solution, stay with them until it’s done and live.
There may be absolutely nothing you can do, but the moral support goes a long way. You are the one who crafted the layouts and experience, the “idea” the team is fighting to make a reality. The least you could do is be by their side and provide whatever you can to the effort. It goes a long way for them to see you understand their struggle and know that you are not going to abandon them. Here, all the other points come in handy: reducing their work (is there a late-night change you can make to help the deploy?), ensuring they have everything they need, making sure that the instructions are perfectly clear, and, of course, helping with testing.
Beyond it being the right thing to do, it’s worth mentioning again that this may be one of the greatest things you can do to endear yourself to your team and help your career (as to why that’s so important, see chapter 11, Developers Will Get You More Jobs Than Designers).
They are your teammates and your vehicle to deliver the best possible design to your users. Make developers’ lives easier.
What I’m Not Saying
- You are to bend to every developer’s whim.
- You should serve the developers above all else.
- Developers will dictate what you can or cannot do.
- Always choose a developer over a user.
- You have to always stay late and be a full-time tester.
What I Am Saying
- Developers are key to getting your designs delivered.
- They are your equal teammates, all striving for the same success.
- You should serve developers as you would a client.
- You should put in the effort to ensure everything you output is clear, available, and reasonable within technology and deadlines.
- Developers are important to your career (see next chapter).