Project Management (SCRUM)

(Please click on the hexagons for more information)


]project-open[ contains everything that is necessary in order to run projects via SCRUM or other agile methodologies.  This article describes how to use and configure the ]project-open[system in order to support SCRUM, Kanban and other agile project management methodologies without interfering with reporting and other functionality of ]po[.

Mapping SCRUM to ]project-open[


The SCRUM Main Project
A SCRUM project is represented in ]po[ as a normal project of type “Consulting” or any of its sub-types. Consulting projects are containers for Tasks.

The SCRUM Sprint


Tasks and User Stories
By default, SCRUM Users stories are represented in ]po[ as sub-projects, while SCRUM tasks are represented as ]po[ timesheet tasks. Tasks already contain the “estimated hours” field for specifying the duration of a task. Please see further below about how to add a “Story Points” field to user stories.
As an alternative, you could also use Tickets to represent tasks. In order to do so, please add a “Service Level Agreement” (SLA) sub-project to your SCRUM main project. A SLA project serves as a container for tickets. Using tickets allows customers and other stakeholders to create tasks user stories themselves. Advanced configurations can use the ]po[ workflow handle user story approval, priorization and quoting.




Num Name Status
2012_0004 SCRUM Development Project Open
      2012_0008       Sprint 2 Open
      2012_0007       Sprint 1 Open
      2012_0006       User Story: User Autentication Open
      2012_0005       User Story: Reporting Open
A sample structure of a SCRUM project with two sprints
and two users stories. The SCRUM project and the user
stories are projects of type "Consulting", while the sprints
are of type "Release Project".

Product Backlog
The backlog consists of the list of timesheet tasks and tickets in the main project.


Sprints
A SCRUM sprint is represented in ]po[ as a project of type "Software Release". The software release process is very similar to SCRUM, so we can use the same package for both processes. Further below we explain how to rename "Software Release" into "SCRUM Sprint" for example. The “Software Release” sub-project contains a portlet with a list of “Release Items”, which we will use to contain "tasks".

Adding User Stories to a Sprint
There is a “Add Release Items” link that leads you to a page showing you potential “Release Items”. Please note that you can theoretically include a single Release Item in more then one Sprint. In order to remove the timesheet task from the list of potential Release Items, please set the status to “closed”.

 
0 - Developing 1 - Ready for Review 2 - Ready for Integration
Department permissions on Companies

Department permissions on Projects

Report Programs - Financial

Report Customers - Technical

A task board diagram visualizes the current status of the SCRUM tasks
and allows to move them graphically.


Task Board
]po[ V4.0 already contains a simple task board portlet. We will also add a burndown chart in the close future. The task is designed to be displayed full-screen, so that you could setup for example a big monitor in the developer’s room instead of a white board with post-its.

Hour Logging
Hours can be logged on the timesheet tasks of the main project just like in any other ]po[ project. The Product Owner and the Scrum Master may also log hours on the Sprint sub-projects for preparing the sprints etc. So you can work with SCRUM in ]po[ without affecting the rest of the system. So there shouldn’t be a reason for your superiors to criticize SCRUM on that ground.

Product Owner
Members of this role should usually be the project manager of the SCRUM main project. This way they will be able to control all aspects of the project.

Team Leader and Development Team
You can add the team leader or even the entire development team as “project administrators” to the Sprint sub-project (go to the main SCRUM project -> Project Hierarchy portlet -> click on the Sprint sub-project -> Add member -> select multiple(!) team members and select “Project Manager”). Even though the project administrators have full control of the Sprint sub-project, they have only read permissions on the main project. Also, any status change of user stories and tasks is audited, so that you can track who made changes at what time.

]project-open[ Configuration

This screenshot shows the category page after Task has
been made "is-a" a Software Release Item.

Configuring Release Items
You can configure which objects should be eligible as the tasks for a SCRUM sprint: timesheet tasks, tickets or (main-) projects. By default only timesheet tasks are release items. In this scenario, please go to Admin -> Categories -> Intranet Project Type -> Task (100) and select “Release Item” in the “Parent Categories” list box. This way the type tasks “is-a” release item. Optionally you can make also Tickets release items.

Changing Text, Titles and Names
In order to change “Release Item” into “SCRUM Task” and similar replacements, please go to Admin -> Localization Home and click on the “Toggle translator mode: ON”. Then go back to your SCRUM project and click on the green “handles” of the texts you want to modify.
The default configuration of the Release Management
states. Please replace with your favourites states or mark
the states as En=f to disable.

Configuring SCRUM States
You can adapt the default states for release items easily to SCRUM states. Please go to Admin -> Categories -> Intranet Release Status and rename the states to “0 – Story”, “1 – To Do”, “2 – In Process”, “3 – To Verify”, “4 – Tested” and “5 – Done” of whatever states you want.

Adding a “Story Points” field to User Stories
SCRUM frequently talks about “story points” in order to measure the complexity of a user story. You can add a new “Story Points” field to ]po[ projects by going to Admin -> DynField -> Object Types -> Timesheet Task -> Add a completely new attribute -> Attribute Name = “story_points”, Table Name = “intranet-timesheet-tasks”, Pretty Name = “Story Points”, Required = “no”, Widget = “integer”, “Also Hard Coded” = “no”, Pos-Y = “10”.

Patching the Add Release Items Page
The page packages/intranet-release-mgmt/www/add-items.tcl by default shows all release items in the system across projects. This behavior is useful for release projects, but not for SCRUM sprints. In order to fix this behaviour please patch the file and add the following text in line 162 (as a separate line just before the $where_clause line):

and tree_root_key(p.tree_sortkey) = (select tree_root_key(tree_sortkey) from im_projects where project_id = :release_project_id)

Questions or Comments?

Please visit the "Open Discussions" forum at www.sourceforge.net/projects/project-open/  for discussion topics including "SCRUM".

  Contact Us
  Project Open Business Solutions S.L.

Calle Aprestadora 19, 12o-2a

08902 Hospitalet de Llobregat (Barcelona)

Spain

 Tel Europe: +34 609 953 751
 Tel US: +1 415 200 2465
 Mail: info@project-open.com