It’s tiring and requires a bit of a thick-skinned approach, but finding out why something is needed is just as important as finding out how to solve it. That’s why we have a user story, after all.
We built a calculation into the system based on explicitly agreed specifications with the requestor. Everything worked – no bugs (or should I say, none yet), no miscalculations, but it was wrong.
How? Well it boiled down to miscommunication, but if I had found out more about why the feature was needed, I would have seen the discrepancy and raised it earlier.
Of course there are other nuggets in this lesson – the importance of communication, covering your back, early user testing, doing the important things even though it’s tiring etc. But that’s all for another day.