This question already has an answer here:
I'm working at my first software internship, and it's great so far. One problem I'm having, however, is getting clear requirements from my co-worker (we'll call him Person A) who assigns projects. Normally, I get requirements from a co-worker/manager, design/code/test my changes, and eventually commit them for integration in our product. The problem is that, fairly often, it is virtually impossible to get clear requirements from Person A. I will ask questions to better understand what problem is being solved, and one of the following often happens:
Person A will interrupt mid-sentence to think out loud, derailing the current conversation. Sometimes this is for good reason. Example:
Me: "So if there should be a table mapping Bazzes to Foos, what if there were-"
Person A: "Actually, I wonder if we actually need to add a BizzleContainer in this here."
[I wait a few minutes for A to think through their unrelated thought, and try to help solve it.]
This will repeat a few times, and by the time the conversation is done, I'm more confused than when we started and half an hour has gone by, so I don't want to waste the person's time any longer. Note that I wouldn't mind if the interruption was related to the current topic, but it seems that interrupting someone to take a conversation down a completely different path is poor form.
- Person A often barely understands the requirements.
These factors add up to wasting a lot of development time based on simple misunderstandings of what needs to be done.
Co-workers B and C are capable of clearly expressing what needs to be done, but they are often overrun with demands for their time. So rather than annoy B and C to get requirements clarifications, co-workers often go to A, and get less than satisfactory results.
How do you wring clear, correct requirements from someone who understands them but does not have the inclination to take the time/effort to explain what they actually are?