What is Ultimate Scrum?
- Ultimate Scrum is a Bugzilla extension.
- Ultimate Scrum allows you to have a holistic view of items in Bugzilla. There are two types of viewpoints, release and team.
- The purpose of Ultimate Scrum is to support agile software development methods. While doing this, it also tries to give minimal support to product and feature management.
- It adds new tables into the Bugzilla database. The upgrade is done with the Bugzilla hook db_schema_abstract_schema.
What Ultimate Scrum is not
- Ultimate Scrum does not describe any particular agile method.
- The only descriptive functionality from the software process point of view is to limit the number of active scrums to one per team.
Technologies used
Ultimate Scrum builds on the same technology as Bugzilla. Additionally, it makes use of JQuery.
Background and history
Ultimate Scrum came to life after we received feedback from our developers, who were getting tired of using two or more different tools for their scrum related activities.
Context switching is harmful for many and a definite productivity killer.
We went down the iterative path, trying to inject the requested features into Bugzilla as seamlessly as possible.
We tried to remain as generic as possible and did our best to avoid the extension becoming tainted with particular agile dogmas.
It’s still very much a work in progress, and some aspects may seem complex even though user guide is available, but we hope you can make use of our work.
One thing to note is that integrating with the bugzilla templates isn’t really working out for us. Instead, we should overlay the functionality in the same fashion as Bugzilla Unified Dashboard does…
Real life example
Development teams can do agile software development using Bugzilla and Ultimate Scrum extension.
They can manage tasks, bugs and sprints inside their team with a single tool.
See it in action here:
Important note
A database upgrade is needed when installing Ultimate Scrum!
The Ultimate Scrum extension adds several new tables into the Bugzilla database. The upgrade is done with the Bugzilla extension hook db_schema_abstract_schema.
The upgrade is executed by running the checksetup.pl script.
The actual upgrade hook code resides in the extension.pm file under the scrums directory.
Notice! The Bugzilla platform does not contain a framework for removing database items.
Ultimate Scrum is a stand-alone extension and it can be easily switched off.
The database upgrade adds eight new tables into the Bugzilla database, but does not change any existing tables.
Ultimate Scrum schema
scrums_team
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| id | smallint | none | auto increment | the team id |
| name | varchar(50) | none | - | the team name |
| owner | mediumint | none | - | the owner (foreign key profiles.user_id) |
| scrum_master | mediumint | none | null | the scrum master (foreign key profiles.user_id) |
| weekly_velocity_value | decimal(7,2) | none | null | amount of reported hours |
| weekly_velocity_start | decimal(7,2) | none | null | velocity calculation span start date |
| weekly_velocity_end | decimal(7,2) | none | null | velocity calculation span end date |
indexes:
| Name | Fields | Properties | Remarks |
|---|---|---|---|
| PRIMARY | id | unique |
scrums_teammember
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| teamid | smallint | none | - | the team (foreign key scrums_team.id) |
| userid | mediumint | none | - | the member (foreign key profiles.user_id) |
indexes:
| Name | Fields | Properties | Remarks |
|---|---|---|---|
| scrums_teammember_value_unique_idx | teamid, userid | unique |
scrums_componentteam
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| component_id | mediumint | none | - | the component (foreign key components.id) |
| teamid | mediumint | none | - | the team (foreign key scrums_team.id) |
indexes:
| Name | Fields | Properties | Remarks |
|---|---|---|---|
| PRIMARY | component_id | unique |
scrums_sprints
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| id | smallint | none | auto increment | the sprint id |
| team_id | smallint | none | - | the team (foreign key scrums_team.id) |
| name | varchar(255) | none | - | the sprint name |
| nominal_schedule | date | none | - | used for sorting different sprints into cronological order |
| status | varchar(20) | none | - | current phase of sprint |
| is_active | boolean | true | - | 1 if sprint is active, 0 if sprint has been archived |
| description | varchar(255) | none | null | description of sprint |
| item_type | smallint | 1 | - | 1 if item is sprint, 2 if item is backlog list |
| start_date | date | none | null | start date of sprint execution |
| end_date | date | none | null | end date of sprint execution |
indexes:
| Name | Fields | Properties | Remarks |
|---|---|---|---|
| PRIMARY | id | unique |
scrums_sprint_bug_map
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| bug_id | mediumint | none | - | the bug (foreign key bugs.bug_id) |
| sprint_id | mediumint | none | - | the sprint (foreign key scrums_sprints.id) |
scrums_releases
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| id | smallint | none | auto increment | the release id |
| name | varchar(255) | none | - | the release name |
| target_milestone_begin | varchar(20) | none | null | target milestone span start |
| target_milestone_end | varchar(20) | none | null | target milestone span end |
| capacity_algorithm | varchar(255) | none | null | capacity calculation, future use |
| original_capacity | mediumint | none | null | capacity calculation, future use |
| remaining_capacity | mediumint | none | null | capacity calculation, future use |
scrums_flagtype_release_map
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| release_id | smallint | none | - | the release (foreign key scrums_releases.id) |
| flagtype_id | smallint | none | - | the flag type (foreign key flagtypes.id) |
scrums_bug_order
| Field | Type | Default | Properties | Remarks |
|---|---|---|---|---|
| bug_id | mediumint | none | - | the bug (foreign key bugs.bug_id) |
| team | smallint | none | null | order of bug in prioritized list of team |
| rlease | smallint | none | null | order of bug in prioritized list of release |
| program | smallint | none | null | future use |
indexes:
| Name | Fields | Properties | Remarks |
|---|---|---|---|
| PRIMARY | bug_id | unique |
Give your feedback and get involved!
We appreciate all contributions.
Feel free to report issues, propose new features or submit your code ![]()
License
Use, reuse but don’t abuse :p
Licensed under MPL 1.1 license.
In a Hurry?
Go Get the Goodies
We wouldn't be here without them. Support