maemo.org sprints

(Planning meeting: Cleanup, clarification, and expansion)
(Sprints)
 
(33 intermediate revisions not shown)
Line 1: Line 1:
{{lowercase}}
{{lowercase}}
-
maemo.org development is handled through a [http://en.wikipedia.org/wiki/SCRUM scrum] process with a monthly planning meeting held on [[IRC]] in [irc://chat.freenode.net/maemo-meeting #maemo-meeting], and daily status reporting and task-specific progress reporting on that Sprint's wiki page.
+
A sprint is the culmination of a month of development. maemo.org development is handled through a [[:wikipedia:SCRUM|scrum]] process (scrum is a development process which utilizes month-long development periods that have a set of tasks to be completed by the end of the sprint) with a planning meeting held on [[IRC]] in [irc://chat.freenode.net/maemo-meeting #maemo-meeting], and daily status reporting and task-specific progress reporting on that Sprint's wiki page.
-
Anyone interested in following the maemo.org development process should review the [[maemo.org Sprints/November 08|current month's]] Sprint page and consider attending the [[IRC]] meeting.
+
Anyone interested in following the maemo.org development process should review the [[Maemo.org Sprints/April 10|current month's]] Sprint page and consider attending the [[IRC]] meeting.
== Process ==
== Process ==
-
The sprint process is adaptable and simple, with a large part of its appeal being the ease with which newcomers can pick up the process.
+
The scrum process is adaptable, simple, and ease for newcomers to pick up. Development is broken up into month-long periods (sprints). A number of tasks are committed to each month-long sprint to be completed by the end of the month. A planning and review meeting is held at the beginning of each month where progress is reviewed and new tasks (and, often, incomplete tasks from the last sprint) are committed to the next sprint. Daily progress reports are also posted to that month's wiki page.
 +
 
 +
Each task is assigned a [[:wikipedia:MoSCoW_Method|MoSCoW]] prioritisation:
 +
 
 +
* MUST
 +
* SHOULD
 +
* COULD
 +
* (WONT)
=== Sprints ===
=== Sprints ===
-
<small>''Note: The first 5 Sprints were under the [[100Days]]. Sprint 1 was handled internally.''</small>
+
<small>''Note: Sprint 1 of the [[100Days]] was handled internally.''</small>
Development is broken down into monthly sprints with an [[IRC]] review and planning meeting at the beginning of the month of each sprint.
Development is broken down into monthly sprints with an [[IRC]] review and planning meeting at the beginning of the month of each sprint.
Line 15: Line 22:
These are all of the previous Sprints:
These are all of the previous Sprints:
 +
{|
 +
|-valign="top"
 +
|
 +
* [[Maemo.org Sprints/May 10|May 10]]
 +
* [[Maemo.org Sprints/April 10|April 10]]
 +
* [[Maemo.org Sprints/March 10|March 10]]
 +
* [[Maemo.org Sprints/February 10|February 10]]
 +
* [[Maemo.org Sprints/January 10|January 10]]
 +
* [[Maemo.org Sprints/December 09|December 09]]
 +
* [[Maemo.org Sprints/November 09|November 09]]
 +
|
 +
* [[Maemo.org Sprints/October 09|October 09]]
 +
* [[Maemo.org Sprints/September 09|September 09]]
 +
* [[Maemo.org Sprints/August 09|August 09]]
 +
* [[Maemo.org Sprints/July 09|July 09]]
 +
* [[Maemo.org Sprints/June 09|June 09]]
 +
* [[Maemo.org Sprints/May 09|May 09]]
 +
* [[Maemo.org Sprints/April 09|April 09]]
 +
|
 +
* [[Maemo.org Sprints/March 09|March 09]]
 +
* [[Maemo.org Sprints/February 09|February 09]]
 +
* [[Maemo.org Sprints/January 09|January 09]]
 +
* [[maemo.org Sprints/December 08|December 08]]
* [[maemo.org Sprints/November 08|November 08]]
* [[maemo.org Sprints/November 08|November 08]]
* [[maemo.org Sprints/October 08|October 08]]
* [[maemo.org Sprints/October 08|October 08]]
* [[100Days/Sprint5|Sprint 5]]
* [[100Days/Sprint5|Sprint 5]]
 +
|
* [[100Days/Sprint4|Sprint 4]]
* [[100Days/Sprint4|Sprint 4]]
* [[100Days/Sprint3|Sprint 3]]
* [[100Days/Sprint3|Sprint 3]]
Line 25: Line 56:
* [https://garage.maemo.org/plugins/wiki/index.php?April2008Sprint&id=106&type=g April 08]
* [https://garage.maemo.org/plugins/wiki/index.php?April2008Sprint&id=106&type=g April 08]
* [https://garage.maemo.org/plugins/wiki/index.php?Sprint3Tasks&id=106&type=g February & March 08]
* [https://garage.maemo.org/plugins/wiki/index.php?Sprint3Tasks&id=106&type=g February & March 08]
 +
|}
=== Tasks ===
=== Tasks ===
 +
''<small>For more information about bug tracking and priorities, please see [http://www.bugzilla.org/docs/2.18/html/bug_page.html Anatomy of a Bug] and [http://www.bugzilla.org/docs/2.18/html/lifecycle.html Life Cycle of a Bug].</small>''
A written description of every proposed and committed task for maemo.org will be provided in a wikipage for that task. The task page should outline the plan for that task and centralize any relevant information for that task. This ensures that everybody agrees on the same plan for the task, and provides a centralized place to track the specifics of the development of that task.
A written description of every proposed and committed task for maemo.org will be provided in a wikipage for that task. The task page should outline the plan for that task and centralize any relevant information for that task. This ensures that everybody agrees on the same plan for the task, and provides a centralized place to track the specifics of the development of that task.
Line 32: Line 65:
All tasks willing to be commited in a maemo.org sprint should have either:
All tasks willing to be commited in a maemo.org sprint should have either:
* [[:Category:Proposed|A proposal]] in a wiki page starting with "Task:" using the [[Template:Task]] by adding <nowiki>{{task|proposed}}</nowiki> to the top of the task's page.
* [[:Category:Proposed|A proposal]] in a wiki page starting with "Task:" using the [[Template:Task]] by adding <nowiki>{{task|proposed}}</nowiki> to the top of the task's page.
-
* Or a bug report in the maemo.org Website classification with [https://bugs.maemo.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Website&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&priority=Medium&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=  Medium priority].
+
:''<small>(i.e., if you want to put together a task for documenting the maemo.org Sprint procedure, you might create a new page titled [[Task:Document the maemo.org Sprint procedure]] and add <nowiki>{{task|proposed}}</nowiki> to top of the page.)</small>
 +
* Or a bug report in the maemo.org Website classification with [https://bugs.maemo.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=Website&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&priority=Medium&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailqa_contact2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=  MEDIUM priority].
Only tasks with wiki pages can be committed for a Sprint.
Only tasks with wiki pages can be committed for a Sprint.
Line 40: Line 74:
=== Planning meeting ===
=== Planning meeting ===
-
The planning and review meeting is typically held at the beginning of each month, and is usually scheduled after some discussion on the [https://lists.maemo.org/mailman/listinfo/maemo-community maemo-community] mailing list. Reviews typically last between 2 and 4 hours, so attendance may not be possible for everybody, but [http://maemo.org/maemo-meeting/ logs are posted to the website] usually by the next day.
+
The planning and review meeting is held on the first Tuesday of the month at 13:30 UTC. It will be announced on the [https://lists.maemo.org/mailman/listinfo/maemo-community maemo-community] mailing list. The meetings typically last between 1.5 and 2 hours. If you are unable to attend, [http://maemo.org/maemo-meeting/ logs are posted to the website] usually by the next day.
The channel is unmoderated for the duration of the meeting, but extraneous and off-topic comments and conversation must be kept to an absolute minimum (#maemo can be used for chatter). There is a lot of information being exchanged between a lot of different people, and chatter slows us down and confuses the meeting.
The channel is unmoderated for the duration of the meeting, but extraneous and off-topic comments and conversation must be kept to an absolute minimum (#maemo can be used for chatter). There is a lot of information being exchanged between a lot of different people, and chatter slows us down and confuses the meeting.
Line 55: Line 89:
** Update the status banner of the wiki task page (<nowiki>{{task|ongoing}}</nowiki> or <nowiki>{{task|completed}}</nowiki>).
** Update the status banner of the wiki task page (<nowiki>{{task|ongoing}}</nowiki> or <nowiki>{{task|completed}}</nowiki>).
* Facilitator moves all the incomplete tasks to the table of the new sprint.
* Facilitator moves all the incomplete tasks to the table of the new sprint.
-
* Anybody willing to propose a new task needs to list it in the [[https://wiki.maemo.org/Maemo.org_proposals|Proposals]] page.
+
* Anybody willing to propose a new task needs to list it in the [[Maemo.org proposals|Proposals]] page.
* Anybody willing to push a bug needs to get it to MEDIUM priority (request it in the bug itself if you don't have permissions).
* Anybody willing to push a bug needs to get it to MEDIUM priority (request it in the bug itself if you don't have permissions).
Line 61: Line 95:
# Progress of the past sprint:
# Progress of the past sprint:
## Only general/exceptional comments, since the progress as such is left in the table and daily reports.
## Only general/exceptional comments, since the progress as such is left in the table and daily reports.
-
## Any objects to a task being marked "DONE"?
+
## Any objections to a task being marked "DONE"?
# Planning of the next sprint:
# Planning of the next sprint:
## Any task moved from the previous sprint considered not appropriate for the new sprint e.g. better moved back to the backlog or dropped?
## Any task moved from the previous sprint considered not appropriate for the new sprint e.g. better moved back to the backlog or dropped?
Line 78: Line 112:
=== Daily reporting ===
=== Daily reporting ===
-
Having daily standup scrum meetings when working online is difficult, so, Instead, developers involved in the Sprint will report their daily progress (assuming they're working on anything Maemo-related) on the month's wiki page in 3 sentences:
+
Having daily standup scrum meetings when working online is difficult, so, Instead, developers involved in the Sprint will report their daily progress (assuming they're working on anything Maemo-related) in a workstream.
-
# '''What have I done since my last report.''' This is useful for others to see what is the progress.
+
 
-
# '''What are the obstacles I'm facing.''' This is useful to highlight problems (e.g. non-evident dependencies) where others can help.
+
The preferred way to report day-to-day activity progress is through the [http://www.qaiku.com/channels/show/maemork/ Qaiku #maemork channel] (see [http://bergie.iki.fi/blog/maemo-org_is_testing_workstreaming_with_qaiku/ Bergie's blog entry]). Alternatively, a thread (per-task) on [http://talk.maemo.org/forumdisplay.php?f=16 tmo].
-
# '''What is my plan today.''' This helps you to get organized and provides an orientation to others working in related tasks.
+
 
 +
All updates should include either the task ID (of the form <year>-<month>-<id>) or "BAU" (Business As Usual).
 +
 
 +
The reports should be reasonably short and clear [http://webworkerdaily.com/2007/03/03/workstreaming-the-new-face-time/ workstreaming] entries, containing things like:
 +
 
 +
* '''What have I done since my last report.''' This is useful for others to see what is the progress.
 +
* '''What are the obstacles I'm facing.''' This is useful to highlight problems (e.g. non-evident dependencies) where others can help.
 +
* '''What is my plan today.''' This helps you to get organized and provides an orientation to others working in related tasks.
The reports are necessary for other developers and interested community members to be able to follow the Sprint's progress, so reporting is ''highly'' recommended for paid contributors, and suggested for volunteers.
The reports are necessary for other developers and interested community members to be able to follow the Sprint's progress, so reporting is ''highly'' recommended for paid contributors, and suggested for volunteers.

Latest revision as of 12:57, 4 May 2010

A sprint is the culmination of a month of development. maemo.org development is handled through a scrum process (scrum is a development process which utilizes month-long development periods that have a set of tasks to be completed by the end of the sprint) with a planning meeting held on IRC in #maemo-meeting, and daily status reporting and task-specific progress reporting on that Sprint's wiki page.

Anyone interested in following the maemo.org development process should review the current month's Sprint page and consider attending the IRC meeting.

Contents

[edit] Process

The scrum process is adaptable, simple, and ease for newcomers to pick up. Development is broken up into month-long periods (sprints). A number of tasks are committed to each month-long sprint to be completed by the end of the month. A planning and review meeting is held at the beginning of each month where progress is reviewed and new tasks (and, often, incomplete tasks from the last sprint) are committed to the next sprint. Daily progress reports are also posted to that month's wiki page.

Each task is assigned a MoSCoW prioritisation:

  • MUST
  • SHOULD
  • COULD
  • (WONT)

[edit] Sprints

Note: Sprint 1 of the 100Days was handled internally.

Development is broken down into monthly sprints with an IRC review and planning meeting at the beginning of the month of each sprint.

These are all of the previous Sprints:

[edit] Tasks

For more information about bug tracking and priorities, please see Anatomy of a Bug and Life Cycle of a Bug.

A written description of every proposed and committed task for maemo.org will be provided in a wikipage for that task. The task page should outline the plan for that task and centralize any relevant information for that task. This ensures that everybody agrees on the same plan for the task, and provides a centralized place to track the specifics of the development of that task.

All tasks willing to be commited in a maemo.org sprint should have either:

  • A proposal in a wiki page starting with "Task:" using the Template:Task by adding {{task|proposed}} to the top of the task's page.
(i.e., if you want to put together a task for documenting the maemo.org Sprint procedure, you might create a new page titled Task:Document the maemo.org Sprint procedure and add {{task|proposed}} to top of the page.)
  • Or a bug report in the maemo.org Website classification with MEDIUM priority.

Only tasks with wiki pages can be committed for a Sprint.

Once the task is committed for a sprint, the task template should be changed to {{task|accepted}} and then {{task|ongoing}} once work begins. As work on the task progresses, the wiki page should be updated to reflect the current progress. Once work on the task is completed, the task template should be changed to {{task|completed}}.

[edit] Planning meeting

The planning and review meeting is held on the first Tuesday of the month at 13:30 UTC. It will be announced on the maemo-community mailing list. The meetings typically last between 1.5 and 2 hours. If you are unable to attend, logs are posted to the website usually by the next day.

The channel is unmoderated for the duration of the meeting, but extraneous and off-topic comments and conversation must be kept to an absolute minimum (#maemo can be used for chatter). There is a lot of information being exchanged between a lot of different people, and chatter slows us down and confuses the meeting.

[edit] Outline

Direction of the meeting is typically handled by either Nokia's community representative or one of the Community Council members (depending on who is available).

To save time, some preparation work should be completed before the start of the meeting:

  • The meeting facilitator creates a new sprint page and links it to the sprint meeting announcement.
  • Task owners leave the final status of their tasks in the sprint:
    • Task should be marked as DONE (green background) or, if not DONE, % of completion (with a red background).
    • Comment for posterity summarizing what was done/left.
    • Update the status banner of the wiki task page ({{task|ongoing}} or {{task|completed}}).
  • Facilitator moves all the incomplete tasks to the table of the new sprint.
  • Anybody willing to propose a new task needs to list it in the Proposals page.
  • Anybody willing to push a bug needs to get it to MEDIUM priority (request it in the bug itself if you don't have permissions).

Meeting agenda:

  1. Progress of the past sprint:
    1. Only general/exceptional comments, since the progress as such is left in the table and daily reports.
    2. Any objections to a task being marked "DONE"?
  2. Planning of the next sprint:
    1. Any task moved from the previous sprint considered not appropriate for the new sprint e.g. better moved back to the backlog or dropped?
    2. Tasks from the backlog to be committed.
    3. Tasks from the Proposals page to be committed, to the backlog or sent back for improvement.
    4. Any pending HIGH bugs to be dropped to MEDIUM, LOW, or WONTFIX?
    5. Any MEDIUM bugs promoted to HIGH and committed to the sprint?

Just to clarify: no new tasks and no LOW bugs taken if they were not proposed/promoted before the meeting. They don't have to be committed to be worked on. You can always work on them out of the official sprint.

Actions to be taken after the meeting:

  • Update the tasks and bugs tables according to the meeting agreements.
  • Upload meeting log and link it from the new sprint page.
  • Review old and new committed task pages, making sure they have the correct status banner.

[edit] Daily reporting

Having daily standup scrum meetings when working online is difficult, so, Instead, developers involved in the Sprint will report their daily progress (assuming they're working on anything Maemo-related) in a workstream.

The preferred way to report day-to-day activity progress is through the Qaiku #maemork channel (see Bergie's blog entry). Alternatively, a thread (per-task) on tmo.

All updates should include either the task ID (of the form <year>-<month>-<id>) or "BAU" (Business As Usual).

The reports should be reasonably short and clear workstreaming entries, containing things like:

  • What have I done since my last report. This is useful for others to see what is the progress.
  • What are the obstacles I'm facing. This is useful to highlight problems (e.g. non-evident dependencies) where others can help.
  • What is my plan today. This helps you to get organized and provides an orientation to others working in related tasks.

The reports are necessary for other developers and interested community members to be able to follow the Sprint's progress, so reporting is highly recommended for paid contributors, and suggested for volunteers.

[edit] Task progress table

A simple table is used to provide a quick, color-coded overview of the current progress of the committed tasks for the Sprint. Task owners will updated the color-status, percent completed and comments as they work on their tasks.

Committed Task Owner  % Highlights
2008-06-24 Task D Miguel DONE LightGreen = Completed
2008-03-21 Task B Micaela 50% LightBlue = Good progress
2008-02-20 Task A Mika 50% Default = Just standing
2008-04-22 Task C Michael 50% Orange = Some help needed!
2008-05-23 Task D Michelle 50% Tomato = Really stuck/delayed