Telematriathe analyst’s handbook

Contents › Development

Developer questions about the spec: a question log, and where the answers go

“Quick question about the ticket” in a direct message. The analyst answers in a minute, the developer builds it, and a month later the tester files a defect against behaviour that is not in the spec. The answer existed — but it lived in a chat between two people.

03.2 Development · updated 2026-10-19

A developer’s question about the spec is not a nuisance and not a sign of poor analysis. It marks a place where the text gave no answer and someone needs to keep going. Every such question exposes a hole in the spec, and every answer is a requirement the spec did not have.

The break happens not when the question is asked, but when the answer stays where it was given: in a private chat, on a call, in a code comment.

Where answers get lost

Where it was answeredWho learns the answerWhat happens next
Direct messagesTwo peopleThe tester checks against the spec and files a defect on the correct behaviour
A callThe participants, differentlyA month later two of them remember the answer differently
A code commentThe next developer of that fileThe rule lives in code and is found only by reading code
The team chatWhoever read it that dayThe answer sinks under a hundred messages
The ticketEveryone who opens itThe answer is checked, covered by tests and found when a defect is analysed

One rule follows: you can answer anywhere, but the answer exists only once it is written in the ticket. A spoken question gets a spoken answer and one line in the ticket — that is enough.

The question log

It is easiest to keep questions and answers in the ticket itself, as a separate list. Not in comments mixed with discussion, but in one place that can be read in a minute.

QUESTIONS ON TASK-2071
Q-1  12.09  developer
     Close access immediately, or at the end of the paid day?
     answer      at the moment of expiry, to within an hour
     decided by  product owner
     reflected   acceptance criterion 2

Q-2  13.09  developer
     What does a user see if access is closed mid-session?
     answer      open — waiting for a mock-up from design by 16.09;
                 if it doesn’t arrive — the standard “access expired” page

Q-3  14.09  tester
     Renewal in the last hour — access must not flicker?
     answer      it must not; scenario 3a added
     reflected   scenario, acceptance criterion 4

The “reflected” line is the key one. It shows that the answer did not stay in the log but moved into the spec: into a criterion, a scenario, a rule. The log is an inbox, not a second place where requirements are kept.

Where the answer goes

Not every answer changes the spec. It helps to tell question types apart — the type decides who answers and where the answer goes.

Question typeExampleWho answers, and where it goes
Meaning of a phraseWho counts as an “active user”?Analyst → a definition in the spec or the data dictionary
A missing exceptionWhat if the external service does not respond?Process owner → the scenario and an acceptance criterion
Conflicting requirementsItems 3 and 7 cannot both holdProduct owner → a spec edit marked “was/now”
No data or accessWhere do we get the tariff reference table?Analyst finds out → until then it is a blocker on the board
A technical choiceKeep history in the same table or a separate one?Developer → not in the spec, unless it changes behaviour

The last row matters both ways. The analyst should not decide technical questions — and should not let through a technical answer that changes behaviour. “We only store the latest value” sounds like an implementation detail, but it means there will be no change history.

An answer that changes a requirement is a mid-flight change. If the answer to a question changes an acceptance criterion or the estimate, everything in the piece on changes during development applies: the old value is kept, and the tester learns about it from the ticket.

A question with no answer

The most dangerous questions are the open ones. A developer cannot wait a week and at some point does “whatever makes sense”. So that this does not happen silently, an open question needs two things: a date by which we expect an answer, and a default decision if none comes. A recorded default is an assumption — visible and open to challenge. A silent “whatever makes sense” is not.

Questions as a signal

The log is useful beyond a single ticket. Looking across several tickets shows two things:

  • Many questions on one ticket — it was taken before it was ready. A reason to revisit how readiness is checked at refinement, not to blame the author.
  • The same question on different tickets — the product lacks a shared definition or rule. “What counts as an active user” for the third time is a signal to write it down once in the dictionary.
The sign answers are getting lost: the tester asks the developer the same question the developer asked the analyst two weeks earlier.

A ten-minute check

Take a ticket currently in progress and ask the developer: what did you clarify on it verbally? Compare the answer with the ticket text. Everything missing from the text is a requirement the tester will not see.

What next

The question log catches what the developer noticed. What nobody noticed survives until acceptance. It can be caught earlier by showing the interim result to the people who will use it.