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.

  1. Ask five questions before proposing anything. Write the requirement sentence.

  2. Compare the two conversations. What did the real person tell you that the LLM couldn’t? What did the LLM simulate well?