Requirements
Managing Research Software Projects
Greg Wilson
2026
Learning Objectives
- Distinguish between a feature request and an underlying need.
- Explain how to prioritize a backlog of work.
- Describe strategies for saying “no” without alienating
contributors.
Digging Deeper
- Users describe what they want in terms of their current
workflow.
- The product manager’s job is to surface the real requirement by
asking about:
- problems, not solutions;
- frequency and severity; and
- the downstream decision: who sees the result and what they do with
it.
- Record what people actually say, not what you think they should have
said.
Domain-Specific Questions
- Research software has constraints commercial products rarely face.
- What units and uncertainty does your discipline report?
- What data formats do your journals mandate?
- What does your IRB or data-use agreement require?
Prioritizing the Backlog
- Place each feature on a 2x2 grid of impact and effort.
- Quick wins: high impact, low effort, do first.
- Strategic investments: high impact, high effort, plan
carefully.
- Fill-ins: low impact, low effort, do during slack time.
- Money pits: low impact, high effort, just do not do them.
How to Say No
- Don’t say “yes” unless you can follow through.
- “This is on our roadmap for milestone X”, and track how often you
miss it.
- “This is out of scope because reason”, and keep a public to-don’t
list.
- “We would accept a pull request if condition.”
- Write your answer in the issue for future reference.
- An open issue is an implicit promise.
- Close, park, or assign issues untouched for twelve months.
What about AI?
-
LLMs can cluster GitHub issues by topic to find patterns
-
LLMs can generate user stories, but they reflect generic assumptions
-
LLM backlog prioritization sounds authoritative but ignores your team’s
constraints
LLM Requirements Conversation (8 min)
Prompt the LLM like this:
Play the role of a postdoc in ecology who uses [project name] for
their data analysis. You want to be able to [feature request from your
real backlog]. Answer my questions about your needs in character. Don’t
reveal your real requirements immediately: let me ask the right
questions.”
Ask at least five questions before proposing anything. Stop when you
can write a one-sentence requirement in the form: “When [situation],
[user type] needs to [action] so that [outcome].”
Human Requirements Conversation (10 min)
Switch to a real partner. Pick a different feature request from your
backlog. One person is the user, the other is the product manager.
Ask five questions before proposing anything. Write the
requirement sentence.
Compare the two conversations. What did the real person tell you
that the LLM couldn’t? What did the LLM simulate well?