I've seen developers spend more than 50% of their time doing design, resenting it. And product managers don't realize it happens, and the harm it does to the product.
But what do I mean, developers designing? When does it happen?
When your developers design
The 4 most common situations where developers have to make product design decisions.
Edge cases are missing
Developers received a beautiful looking UI. Screen after screen, describing the best case scenario of an application. But how will it work when:
- A user opens the app for the first time, and the database is empty
- The connection is slow and the data is loading
- There are too few or too many items
- The user hasn't uploaded an avatar yet or has a long name
- An error happens
And those are not the edge cases. Most users will run into them. Getting those details right and seamless is what makes the user experience delightful. It’s what makes a product great.
But, often, those missing cases are only noticed on the first tests. And then, it’s the developer who needs to fix them.
Specs don't target the platform
This one hits us, Android fans, right in the chest. Someone decided it's enough to design just for their favorite platform, iOS usually. But they want an Android app built as well.
Or maybe the desire to stand out is so strong, the interface has to be like nothing you have ever seen before, on any platform. Every detail is brand new.
The developers try to bend the platform to achieve the impossible UI/UX wanted. And finish half-way, due to lack of time, with custom and native components glued together.
Another version of this issue is when a spec is skipped altogether. Instead, developers are asked to copy the behaviour of another app. Although it sounds like a good idea at the start, copying UX between apps is not a linear task. Each application has its own requirements. Adaptations are required to make it fit, again a job for developers.
Specs are not responsive
Modern UIs are a continuum of screen sizes. Mobile is a great example. You can't count on a specific screen size because you never know what phone the user might have. And current design tools don't help to communicate this.
If developers only get a 4'' and a 12'' screens spec, and have to build everything in the middle, they'll make a lot of design decisions.
Assets are not provided
You might be surprised to hear this but: developers don't master tools like Photoshop, Illustrator or Sketch. If they only get a Photoshop file, they will struggle to generate the assets they need. And they won't notice common mistakes like:
- Platforms recommend specific sizes and paddings for certain icons
- Similar icons should fit in the same grid, to be evenly spaced
- Vectors can get unrecognizable at lower resolutions
- Certain images need to align
This part of the process needs a designer, even if it’s just for quality assurance.
Consequences of developers designing
Developers, of course, have fewer skills and experience designing. And they didn't take part in the research process. They will struggle to make design decisions, and they won't have the information needed.
Decisions will take longer. And every time they context switch from writing code, the more time they take to resume. Plus, developers, when faced with decisions they don't like to make, cut corners. The end result won't be coherent or tested with users. Thus, the product will take longer to build and still end-up worse.
Plus, there’s an important collateral victim: team morale. Developers, and the rest of the team, will notice things aren’t going as planned. Responsibility and blame will be thrown around, when the real issue lies elsewhere, in the development process itself.
How can we avoid this?
Important Note: this is not a rant against designers.
Designing a product is hard, it takes research, collaboration and validation. The points above only highlight the time and effort needed. It’s up to product managers to fix things.
Hire more designers. No, one designer for 3 front-end developers is not enough. And it's delaying your product. But that alone isn’t enough. Product managers need to fix the process as well.
Designers need developers when they're designing, to know the platform limitations and the implementation effort. Prototypes can be implemented to test hypotheses. Decisions are made together.
Developers need designers when they're developing. No UI/UX specification covers everything. Developers need help from designers figuring out the in-betweens. And designers need to ensure quality throughout the development.
Teaching your developers about design is a good idea, and should be encouraged. But it won't change the fact that you are not investing enough in designing your product.
So, for the sake of your product, don't let developers unwillingly design it. It's costing you time, money and quality. It’s wearing out your team. Fix your product development process.