Intro to Software Requirements
Presentation for Evergreen Cataloging Working Group, March 10th 2020
Andrea Buntz Neiman, Equinox
Outline
Beyond Bug Reports
Steps in a Development Project
Defining & Researching
Coding & Executing
Discuss
Revise
Refine
Iterate
What are requirements? Why do they matter?
Workflow experts needed
(to write Requirements, among other tasks)
Gathering requirements
IMPORTANT
A bit more on User Stories
USER STORY FORMAT:
As [a USER ROLE], I want [a THING/ACTION] so I can accomplish [a GOAL].
“As a cataloger, I want a paged chronological display of all edits, listing the user responsible and the timestamp of the edits, so I can see who was responsible for which record edits and when.”
The above example was taken from bug 1828279 (Wikipedia-style edit log for catalog records).
Atomically, this is actually 4 requirements - paged display, chronological display, user display, timestamp display - but all are CORRECT, TESTABLE, and UNAMBIGUOUS, and state WHAT you want to do and WHY.
Writing requirements
Process overview
2. Gather User Stories
1. Set Scope & �Big Picture
4. Extract Elements
3. Group Alike Stories
6. Write & Illustrate
5. Organize Workflows
Requirements: the Good, the Bad...
GOOD
(Bonus good items:)
BAD
...and the Ugly
Source: https://reqtest.com/requirements-blog/10-of-the-worst-requirements-i-have-ever-seen/
Conclusion
Creating good* requirements is an important part of any large dev project.
Good requirements = positive outcomes for all stakeholders.
...and non-crashing MARS landers**
*as defined in preceding slides
** this is a true story: https://www.wired.com/2010/11/1110mars-climate-observer-report/ - miscommunications about unit conversions + assumptions about said = crashed lander
Questions?
abneiman@equinoxinitiative.org
IRC: abneiman
Twitter: @andreabneiman