Project Planning Module
Requirements
- Implementation of an iteration (grouping of stories)
- Implementation of a story (grouping of tickets)
- Easy to use planning page for defining iterations, stories, and tickets
Implementation Proposal
Primary use of the project planning module will take place inside the "project space" (inside trac). The entry point for the planning will be a top-level navigation tab (where things like wiki, new ticket, etc currently are) with the title, "Planning".
Concepts
Iterations
An iteration will be the logical grouping of stories with proposed start and end dates. An iteration by itself will have no estimate. But typically when viewed, an iteration will display an estimate based on the total of all grouped story estimates. With reference to Trac, a Trac milestone will always map to the end of an iteration and the UI should always reflect this automatically.
Stories
A story will be the logical grouping of tasks (in Trac, tickets) with an estimate of it's own based in man days. The primary use for a story will be to have a high-level functional description of work to be performed.
Tasks
A task will be a concrete unit of work. In Trac, this will have a direct relationship to one ticket (maybe just be a ticket). A task will probably have more metadata associated with it than just a simple Trac ticket. One important piece of extra information will be a well-thought-through estimate in hours.
User Interface
Implementation Note: This screen should make strong use of AJAX functionality.
The Planning tab in the top-level navigation will take the application user to a view of the current overall plan. This plan will first display iterations with indication of which ones have been completed, which ones are pending, and which one is currently active. Each iteration displayed will have an iteration description as well as the totaled estimates and possibly already booked hours displayed. There will be a link of some sort that will expand the iteration to show stories that belong to that iteration. For a user with Manager access, there will be "New Iteration" button(s) at the top or bottom. This button should pop up a in-browser window using javascript asking for new iteration information and preferably use AJAX to refresh the iteration listing.
Inside each iteration "box" will be the listing of stories. If the user has Manager access he will see a "new story" button to create new stories. This "new story" button will pop up an in-browser window that functions the same as the previous "New Iteration" button. For all users, the story will have some sort of expand button which when clicked will display all tickets.
Beneath each story will be the task listing (if expanded). Each task will correspond with a Trac ticket (probably just another view of a ticket). Again there should be a "New Task" button for Manager users.
Iteration/release planning: unscheduled issues/stories can be moved in bulk to an iteration or release from the backlog.
