By: Victor, Co-Founder at Axure
One of the toughest conversations to have with a product manager or UX designer is pointing out that they’re losing the respect of the developers. It’s tough because frequently it comes as a surprise. Meetings aren’t that combative. Frustrations are written off as typical of software projects. And at the end of the day, code is still getting shipped that improves the product.
The consequences of a strained relationship between those deciding what to build and those building it tend to manifest themselves over time. This includes favoring small, incremental changes and avoiding more innovative improvements, increasing delays due to rework, and the one I consider most painful: developer turnover.
The irony is that loss of respect for the PM or UX designer is caused by developers feeling that they are not respected or at least that their time and efforts aren’t. Code this… oh I don’t like that… code that… oh I forgot something… code something else… you’re right that won’t work… try coding this. On the design side, this type of iteration is productive and leads to better outcomes which is core to the value that design brings.
In production, constant rework demonstrates a lack of respect for the value that developers bring. Changes to the code require considering several ways a change can be implemented, understanding the impacts of each change, some experimentation to see where things may fail, and testing for and resolving bugs and edge cases after implementation. Doing these things well separates senior developers from junior developers. I don’t think I’ve ever heard a developer proudly say anything like, “I was able to rework a change ten times this week!”
No one expects a perfect spec that won’t require any changes after development starts, but developers do expect, or at least hope, that you’ve thought through a change and put in your best efforts to find problems before asking for code. Make prototypes, gather feedback, and include developers in the process. You’ll find that more ambitious goals become possible, projects are less frustrating, and the developers are a lot happier.