We have been gathering our requirements and doing our work breakdown structure (WBS) across Google Docs / Sheets and Word / Excel.
In most scenarios, the requirement is not finalized initially. It goes through multiple iterations. To track these changes needs document versioning. Although, there are ways to version both documents and spreadsheets there are either too technical (code version management system) or difficult to use (Google Docs etc.)
The same challenge exists for the WBS. Here, we can probably use Microsoft Project or something similar.
The question to all HNers -
For both requirement gathering and WBS, what I'm looking for -
1. Some organized way to gather information (preferably in some itemized form)
2. Automatic version management and an easy way to see how things have changed
A bonus would be to somehow link between the requirements and WBS.
This can be either a free, open-source, self-hosted or paid option.
Also, it would be useful to know if anybody is using software like Notion, Outline, OneNote for this purpose.
We structure the project and its related projects hierarchically along service design packages, similar to the “class-responsibility-collaboration” breakdown in object-oriented design.
All of our stream-aligned team collaborates continuously on this data as part of sprints, including analysts, managers, software and QA engineers. We recently started to collaborate with the enabling Risk & Compliance team on the same data, and started doing compliance audits using the generated, Git hash-versioned reports.
Our other teams use similar combinations of data, mostly centered around Confluence spaces which enable some form of traceability due to bi-directional linking.
JAMA is a great tool I demoed but couldn’t get the org to buy.
Doors is crap.
I recommend word/ excel if you have <60 requirements. If you have more than a tool like above helps, esp if you need to have traceability to testing.
We have developed almost 40 "templates" to do almost everything we need from Time Tracking, Mental Health, Job Posts, Project Docs, Daily Task Mgmt and Music, etc
The killer-feature for me is the clean design. If I look at your Excel sheet, it could take me a minute to start understanding what the doc is about. Notion makes so much easier on the eyes and easy to ingest.
I would advise that you avoid Rational DOORS at all costs.
DOORS is the kind of abomination that is so bad that I wish a meteorite would smite IBM.
I use Google Docs, with difficult-to-use version history if needed unexpectedly. If it's needed expectedly - e.g., because we planned to do something simple, it turned out we needed something more complicated, and we care about documenting for the future why the simple thing doesn't work - then I add a section to the current version of the doc explaining that. Or if implementation started and I need to catch up people who were familiar with the old requirements, then I add a section noting what the changes are.
These docs are generally prose, in the vague space of Amazon-style six-pagers, Architectural Decision Records, RFCs/enhancement proposals (Rust/Python/Kubernetes have great public examples of this), etc.
For extremely complicated requirements, the prose document includes an itemized list of stuff we need to get right, for easy reference, and then a prose explanation of why a particular approach will get them all right.
(In my experience, docs that just have lists are prone to having apparently-contradictory requirements and no explanation of how they're expected to be resolved.)
Easy navigation, built-in search, you can have variants (for versioning), less cluttered UI and (anecdotally) good overall performance on mobile and desktop.
Tried asana, dropbox, trello, notion, airtable, and settled with gitbook.
Unless your project is huge (multi billion), requirements gathering is mostly about the BA and others understanding how something will be used. So it's human brain work. Excel is a nice way to keep and monitor lists of requirements and link then together, add dates etc.
It's something everyone can operate (stakeholders to Devs, without a new license or needing to be taught it).
Ive seen a LOT of projects use shiney clever solutions and they always either fall back to people's brains or fall on their face because someone didn't complete the dependency matrix overview page in exactly the way the software needed etc.
Regarding 1): it has a structured framework where you define your product vision, then break it down into goals and initiatives, then break the initiatives into features. The dev team further breaks down the work into TFS tickets, and Aha integrates with TFS.
Regarding 2) It does change tracking on everything, so you can view the prior history of any ticket in the system.
- I created it when I received my usual 1000-page spec document in Word, in a waterfall project…
- So the software is excellent at numbering requirements (which addresses your first question about itemization), making links between places in the docs, managing dependencies, and letting people free to format their document on Confluence pages,
- We have excellent feedback from customers, but we are still lacking some enterprise features such as managing a million requirements, or inheritance (customers often have a core product and they derive a custom version for 10 or 50 customers).
What I love is that we’re at the articulation between free text and structured database: Customers want to write free text with images and widgets, and they still want structural queries, such as the completion % of their project, but based on the Jira story associated to each couple of requirements… I love what I’m doing!
—Adrien
For personal stuff, I use emacs org mode in a git repo. Org mode lets you define a hierarchical structure to the topic, hide the hierarchy that's not relevant to the part that you're focused on now, track what things you've done, and when relevant provide supporting information in spreadsheets embedded right there. Worth checking out.
It is service (startup) for making functional specifications for IT-products.
Strong workflow:
1. Features map - role 1: feature 1, feature 2 - role 2: feature 3, feature 4 2. User story for each feature: I can, I see... 3. Attaching design from Figma 4. Estimating resources 5. Attaching API: GraphQL, REST 6. Attaching tasks from GitLab, GitHub for tracking spend time 7. Generating tasks description 8. Terms knowledge base 9. Modules 10. Generating invoice & contract
2. Miro
3. Roam Research
Each has advantages and disadvantages used as knowledge systems. Slack is directly accessible for the whole team. You can create #thunderbong-stream, and under a thread link directly to message sources. That's directly readable for others, and you'll encourage discussion if you want.
Miro is better for hierarchical organization. Top-level requirements, (or objectives, outcomes if you will), then smaller pieces below.
It’s always interesting to go back 10 years to understand exactly why a decision was made and even see some of the alternatives.
Import and export with Excel allows everyone to participate, see https://sltoo.dev/workflow.html.
Traceability is a beta-feature at the moment.
1) I use XMind, which has floating topics. I quickly draft mentioned requirements as a floating topics and then break them down into sub-topics
2) After the requirement is clarified then it's a time for prioritisation and I use priority matrix for that.
3) Then you just unify everything under a central mind map topic and "connect the dots".
Traditionally, Systems Engineering views test as a method to verify requirements. Other verification methods include inspection, analysis, and demonstration. But, as tests become more readable, maybe at some point the tests become the requirements…
It’s basically a standalone system, but can connect to confluence to retrieve requirements, and/or Jira to turn requirements into tickets.
It allows you to group requirements into an arbitrary number of levels, and keeps track of any changes to the requirement. Major changes to the contents can be tagged as a new version, which can give you an idea of how many ‘breaking’ changes there are.
If you integrate with Jira, and the original ticket is already completed, then it’ll create a new one for the new version of the requirement.
Ideally it’ll have a planning component at some point (e.g. auto gantt chart), but not yet.
Organise your statements and requirements. Store them in git. Run a simple HTTP server to share with colleagues.
I’ve also seen things like JIRA and Trello used for small projects where you don’t need a formal requirements doc and you’re running it scrum or Kanban.
My experience is mostly in non-technology industries.