The OMERO Development Process
As decided at the May meeting in Dundee, the OMERO team is going to test a new development process loosely based on Agile and XP methods. Stories, tasks, and defects (our ticket_types) will be entered into trac as necessary. These will be scheduled into cycles, each of which consists of six iterations (a two week period). After each bi-weekly period, we will schedule user-supplied stories, developer supplied tasks, and outstanding defects to the upcoming iteration during the review meeting.
A Task is a developer item (a "Todo") that will be scheduled by the developer for technical reasons. Stories and defects are scheduled jointly to a particular milestone (cycle & iteration) and will always be closed by a successful Test.
Tests should be of the Acceptance Test form. The ticket number for which a test is being written should be added in the testng annotations (@Test( groups = "ticket:60" )). This works at either the method level (see SetsAndLinksTest#L73) or the class level (see UniqueResultTest#L15).
If for any reason, a developer can't fulfill the assigned stories/tasks for an iteration, ... that's ok. It's two weeks, right? But by raising a flag, we can get a feeling for our planning strategy. During the next iteration, we should take that into account.
General Notes
- Review meetings are a learning process.
- Use views like {9} and {13} to get a feeling for what's going on.
- Broad items can be left scheduled to the cycle.
- Backlogged items are rescheduled.
- The articulation of stories is critical; not too big, not too little.
- Bigger stories can be left at the cycle level.
- But, usually a story should be a testable piece of functionality.
- Also, usually a stakeholder should write the story in order to push it forward.
Review Meetings How To
- Before Meeting
- Try to close everything, or explain why still open.
- Review unscheduled and upcoming (next iteration) tickets.
- Move unscheduled tickets to cycle where sensible.
- Move cycle-unscheduled tickets to next iteration where sensible.
- Scheduling
- Discuss what new came out of the closed tickets.
- Discuss why open tickets are open.
- Evaluate how well the previous iteration was planned.
- Move backlog (unfinished tickets) to next iteration or unschedule.
- Move other tickets to next iteration
- If next iteration is too full, prioritize and reschedule.
- After Meeting
- Place review notes at https://trac.openmicroscopy.org.uk/omero/milestone/<your-cycle-here>
Future directions
It's possible that we add time estimates to the trac tickets and beginning measuring our velocity. Currently, there is no way to do this in trac.
