It makes me sad when a PO presents a new story and the first thing out of a developer’s mouth is “It can’t be done!”*. A story is meant to be the basis of a discussion – “It can’t be done!” is harmful to this discussion.
As long as there is no timeframe attached to the story, “It can’t be done!” is rarely true.
Just like “I don’t have time for that!” is code for “It’s not a priority”, “It can’t be done!” is usually code for something along the lines of:
- We’d have to do a major rewrite. It would take months!
- That code is chaos. No one knows how it works. I don’t want to touch it. I’m afraid to break something.
- I can’t think of a way to achieve it. (In this very moment.)
- I don’t want to do it.
- I think that feature’s stupid but you won’t listen to me, so it’s easier if I declare it impossible.
- I could do it, but you’ll just change your mind in a week’s time and I’ll have to throw that code away.
- We can’t afford the expensive thingamabob, we’d need to achieve that.
There aren’t many things that truly “can’t be done”. I tried to come up with something impossible and my first pick was “touching my nose with my elbow”. But wait, that’s not really impossible! There are at least two solutions: broken or severed arm. Gross and very painful but possible. Would I ever pick such a “solution”? No, because I understand the “investment” I would have to make.
So, if you’re a developer I beseech you to talk about the implications of doing something rather than just a binary “It can’t be done!”
Ask about intent: explore the “so that”-part of user stories. What’s the underlying goal?
Maybe the nose is itching and your product owner thought the elbow would be the right part of the system to do the scratching. Together you pinpoint the finger as a much better suited and painfree scratching device.
Save “It can’t be done!” for those requests that truly are impossible, like “resurrect the dead” or “make X do Y in <impossibly short time>“. An unrealistic timeframe can really make things impossible. But once again, you can inform your product owner about tradeoffs, ask about the goal of the story and the reason for the deadline. Give effect mapping a try to find a faster / cheaper way to reach the goal.
* The original German phrase I’m referring to is “Das geht nicht!”. There is no literal translation. Alternative translations apart from “It can’t be done!”, are “It won’t work!” or “That’s impossible!”.