2016 Draft updated prioritization & testing process and groups
Max = orange
CFitz = Pinkish? Puce?
Sally = Green
Related call notes:
- Re: Separating Prioritization and Testing: Discussion notes
- 2015-12-14 TAC/UAC Coordinating Committee
Implementation notes
Jan 2016 - wrap up of 1.5 release
tbd - early Jan setup meeting of Prioritization Team (weekly check-ins?)
late Jan - process in place and schedules and meeting invitations in place for 2016 releases
late Jan - first Prioritization working meeting (grooming)
Jan 29 - backlog prioritization finished - 1mo worth of stories
sometime in Jan - Testing team meets
Feb 2016 - implement new development process
Feb 1 - Sprint planning meeting
Feb 19 - end of development and concurrent testing
Feb 22 - 26 QA testing
Week of Feb 22 - second Prioritization working meeting (grooming)
Feb 26 - COB ETD end of sprint
Draft Schedule
One release per every four months, three per year
Three sprints per each release, each a month long in duration
Development and concurrent testing occurs during the first three weeks of each sprint; concurrent testing is supported by nightly builds
Q/A testing for the sprint occurs during the fourth week of each sprint
Community testing of a release candidate occurs for three weeks prior to each scheduled release
Maintenance releases necessary to address critical bugs may occur independent of this schedule.
Draft Process / Cycle
Note - this is a general outline. Further changes and refinements may be made over time as groups are get underway with new cycle and ideas as improvement are raised.
1.Submission
Who: Users
Process step description: Submit a feature request or report a bug in the ArchivesSpace Support JIRA
When: rolling basis
2. Initial evaluation of tickets.
Who: ArchivesSpace Program Team (Brad, Christine, Chris & Brian)
Process step description: reviews stories in Support JIRA, request additional information if needed and/or respond to submitter if they think an issue / function is already part of the application; whether it’s a bug that’s already been reported; whether it’s functionality that’s institution-specific.
It would be good for some group to consider improvements to steps 1 - 3 to in particular bug tracking and reporting as we could probably make some improvements. Currently support requests also come via a number of channels and this causes problem for everyone involved in the process. Need to encourage users to log tickets in support JIRA.
Yes, I agree with the bug reporting. It's compounded by the fact the support JIRA doesn't allow users to follow tickets and that people have to add an email. IMO, the support JIRA hasn't really worked out. Would it be best to just encourage people to record bugs in either 1) Github issues or 2) the mailing list. We add those in JIRA ( since I use completed JIRA tickets to generate the change log )? I think this would eliminate one channel ( the JIRA support ). Users adding their own tickets to the general AR JIRA project often means they just get lost...
Chris - your suggestions sound like good ones that should be discussed / examined further after the new development process is underway. It would be great to have a group (Program Team? one the Documentation sub-teams?) look at the current submission process think through the pros & cons of moving to the 2 alternates you suggest - as well as thinking through any set-up / transition work involved in changing how this is done.
When: rolling basis
3. Move accepted tickets from Support to Dev JIRA.
Who: ArchivesSpace Program Team (Brad, Christine, Chris & Brian)
Process step description: moves sufficiently detailed feature (and non-duplicative) requests and bugs into Development JIRA and categorize with a label, e.g. Epic e.g. 'EAD export'.
When: rolling basis
4. Prioritization / Grooming meeting.
Who: Development Prioritization team
Process step description: meets and reviews and prioritizes all stories related to a particular Epic / label. See charge of prioritization group (below) for additional info. After prioritization meeting, group sure to share information with both documentation groups - TAC and UAC so that updates can be done during the release cycle.
When: Before start of each monthly sprint and/or once before start of a 4-month release cycle
5. Sprint Planning meeting.
Here's a draft overview of the meeting I made
Who: Chris Fitzpatrick, Brian Hoffman, Julie Patton Prioritization Group liaison (co-Product Owner?), Brad Westbrook - Product Owner, Testing Lead (and/or individual testers), other contributors, (heads of documentation teams may be interested in joining?)
Process step description: meet to look at prioritized set of stories and assess what is possible within sprint & assign stories. Sprint Planning meeting as handoff - devs would point stories, etc. This will also be an open call for the community to listen in on if interested. Testing team lead to identify testers at beginning of each sprint (before, during or after sprint planning meeting?).
When: Beginning of sprint cycle
6. Development & testing per sprint.
Who: Project Team
Process step description: Project team to work on code and documentation and testers to test functionality as stories are delivered.
Testers added as watchers to tickets so will be automatically notified when a feature is ready to be tested.
When: weeks 1 - 3 of each sprint
7. Q/A testing
Who: Program team ( + others?)
Process step description: Test deliverables of the sprint during and indicate which stories are accepted for the scheduled release and which are rejected. Rejected stories may be resolved during the last week of the sprint, deferred to the next sprint, or placed into the backlog for a future release
When: last (4th) week of the sprint
8. Release
Who: Release Manager, Community Support Manager
Process step description: The designated Release Manager prepares a Release Candidate three-weeks in advance of the release schedule.
The ASpace Community Support Manager notifies the community of the presence of the release candidate, indicates new features and bug fixes in the release, and invites the community to test those additions as well as other areas of the application
Problems reported are cycled back to the Q/A team for resolution. Problems may be resolved prior to the release and included in it, or removed from the release and targeted for a later release.
The designated Release Manager prepares the release, after the community testing period is over and all resolutions made.
The Community Support Manager announces the distribution of the release, indicating the new features and bug fixes that made it into the release, as well as those that ultimately "fell out".
When: three-weeks in advance of the release schedule - release date
Groups involved:
Development Prioritization
Task: On the basis of feature requests and bug reports filed in the development catalog, this team prioritizes development work for each schedule features release (1 per every four months) in advance of the first sprint for each features release.
Leader: Julie Patton
Members: Chris Prom, Daniel Weddington, Kari Smith, Jason Loeffler, Brad Westbrook (Program liaison), Gordon Daines (UAC liaison), Sally Vermaaten (TAC liaison)
Responsibilities:
Select prioritized features and bugs for releases and sprints within releases
Continual grooming of icebox and backlog (reviewing, verifying, de-duping)
Provide clarification / specification - secure from original reporters or provide details [note that going forward a decreasing number of stories should require additional specification as it may possible to request clarification at the stage of original submission and evaluation]
Leader Responsibilities:
Schedule and facilitate meetings of Prioritization Group
Represent Prioritization Group in Sprint Planning meetings as scheduled by Scrummaster (Chris)
Report targets for each release to Scrummaster prior to each Sprint Planning meeting
Report to Community Support Manager prior to each Sprint Planning meeting
Prioritization criteria (starting point - to be refined by group):
What's in voted queue (early 2016)
Voting for epics (if process is enacted by Prioritization group)
Theme / epic targeted per release
Sufficient specification. (Hydra Project has a good document about what constitutes a well-documented story )
Developer responsibility
Anecdotal evidence (listserv discussion, email reports)
Meetings: Monthly (1st month -target features and bugs for release and suggest first sprint; 2nd month - suggest targets for second sprint and groom icebox; 3rd month - suggest targets for third sprint and groom icebox; 4th - start preparation for next sprint)
I changed this from "Agile Team" to "Project team" just because "Agile" feels a bit loaded. Project might be too generic?
Project team (code, testing, and documentation contributors):
Task: Implement features and bug fixes and documentation additions according to prioritization determined by Prioritization team. Will organize prioritized work into three consecutive month-long sprints.
Leader/ Scrummaster: Chris Fitzpatrick
Members: Chris Fitzpatrick, Brian Hoffman, (Julie Patton Prioritization Group liaison (co-Product Owner?) , Brad Westbrook - Product Owner, Testing Lead (and/or individual testers), other contributors, (heads of documentation teams may be interested in joining?)
Responsibilities:
for code contributions, unit tests should be included
[Brad to write up notes on overall testing strategy]
Meetings: Sprint planning meetings, 30min standups 3 times / week (M, W, F)
Testing:
Task: Testing features and bug fixes, during the first three weeks of a sprint.
Leader: Miloche Kottman
Members: Ed Busch, Noah Huffman, Scott Hanrath, Max Eckard, Robert Lay
Meetings: Scrum meetings, (additional meetings??)
As a new TAC member who just completed my first testing assignment, I think it would be useful to come up with guidelines on exactly what is expected here, where the outcome should be reported, etc. Maybe this is unique to a particular functionality and gets worked out during the Sprint Planning Meeting?
Quality assurance:
Task: Testing features and reviewing prepared documentation during the last week of a sprint to ensure all work necessary for a sprint has been completed or deferred to the following sprint.
Leader: Brad W.
Members: Members of the program team (developers, program manager, community manager)
Meetings: