“Why are we planning to work on this feature?”
It had seemed like an innocent enough question, but there was a moment of silence followed by “Umm, the objective owner thinks that it will help performance”
Another innocent question: “Will it?”
“Well, we’re not sure that it will. Maybe a little bit…”
We had recently made a similar change in another area of the code (where we knew that it would help the performance), and that change had been quite costly in terms of both development and testing time and had also introduced a limitation to that area. I brought up these points and also asked if there was any way we could answer the question of how helpful it would be to the performance without investing days or even weeks of work.
This led to a discussion of which profiling tools we had available. We pulled someone from outside the team into this discussion and found out that we had licenses to tools our team didn’t know about. Also, in the course of that discussion he was asking why we wanted profiling tools and the limitation we had introduced earlier came up. He then said that his team could make some changes to help support what we needed so that we could remove that limitation.
After 30 minutes of discussion the planned work looked very different that it had before I asked my innocent questions. Instead of going ahead with this change, we are instead going to be looking at cleaning up the previous limitation and profiling some parts of the finished code that are similar to the new code we would want to add, so that we can have a somewhat data driven answer to the question of how much this would help the performance.
One innocent question led to a lot of change. If you are a tester, asking questions is one of your superpowers. Don’t be afraid to speak up if something is confusing – you never know how one question might change things!