openscrum/TODO
2012-04-13 19:18:01 +00:00

281 lines
12 KiB
Plaintext

What is OpenScrum?
OpenScrum is a tool for agile development. It is a web based tool to manage
your project development. The stakeholder adds a project, gathers a team, they
both add their ideas to the project, and they are ready to go!
Add your ideas, approve the ones uploaded by the team, and they can start
developing them.
What OpenScrum is not?
OpenScrum is not an issue tracker. Although the product backlog can be seen as
one, issues should be tracked in a separate software. The OpenScrum team uses
Bugzilla for this purpose.
OpenScrum is not a project planner. Although the product and sprint backlogs
can be seen as one, it doesn't (and won't) provide all features of a project
planner.
How does it work?
First of all, a stakeholder and a developer must register on the site. Then,
the stakeholder must create a new project, and within the project, a team.
Then, the team must be filled with members. For this, the stakeholder may put
on some advertisement, so developers can contact him for details. Then the
stakeholder invites the chosen developers to his project's team.
Then the idea pool is filled (of course, this can be started while inviting the
developers). When added, both parties need to add a positive vote on it to put
it in the product backlog.
If the project is an already working one, it may have a bug tracker from which
you can import bugs as user stories. Be warned however, that bugs added this
way will only be fixed at the end of the sprint, so a better approach to this
would be to fix critical bugs between two sprints, or to dedicate a developer
who will not work in the next sprint, but fix bugs instead.
The product backlog is priorized by the stake holder, and their development
time is estimated by the team. If the estimated time is larger than the sprint
length, the poster of the story is notified to break it down into smaller
stories. If he doesn't do it, the story remains in the backlog with the long
estimated time. Otherwise, the story is removed from the backlog, and the
poster can break it down into smaller parts.
According to the sprint length, the user story estimations and priorities, the
team and the stakeholder create the backlog of the next sprint. The team will
use this backlog during the sprint.
During the sprint, the team and the stakeholder should reduce communication to
a minimum level. However, sometimes it is required to discuss something. This
can be done within the specific user story using a chat function. The sprint
backlog can not be changed during a sprint, as it would change the sprint's
length. Instead, in the discussion, the development of the story can be halted.
This, of course will mean that tha story will not be finished at the end of the
sprint and will appear as unfinished in the review.
OpenScrum also provides some help during the Daily Scrum. It provides a chat
interface on which Team members can discuss the last and next day. If the Team
holds the Daily Scrum in person instead, the Scrum Master should upload a brief
extract of the Daily Scrum for documenting purposes. These documents are unseen
by the Product Owner unless otherwise stated by the Scrum Master.
During the development Team members can login anytime to see or update the
status of user stories. Some parts of these updates are published to the
Product Owner, so they can monitor the development's status.
When the Sprint is finished, OpenScrum may come in handy for the Sprint Review,
either.
Do I have to use this page?
The projects you upload on OpenScrum.org can be seen by you and the development
team you assig to it. However, if you want to hide it even from our selected
few database administrators, you can buy the OpenScrum.org code to run it on
your intranet server.
If you buy it, you get a one year read access to our Git repository, so you
will get all the patches and new features during that period.
Terms
=====
Product
-------
Idea
----
User story sources:
Idea pool
• virtually anyone can add stuff
• team may define difficulty level
• customer must create a user story from it or decline it
Customer requirements
• customer can add stuff
• team must define difficulty level
Optional bug tracking system import
• import bugs and feature requests from different tracking systems, these items
become special user stories
• these entries always get into the product backlog, without customer approval,
as high business value items
Product backlogs:
• customer can priorize user stories by business value
• customer must refine the user story, with the aid of the team if necessary
• teams can vote for actual story difficulty. Only those stories make into the
product backlog, which is approved by both the customer and the team:
customer simply approves (yes/no), team assigns difficulty as approval
(with a successful vote)
Sprint backlogs:
• product owner must define the title of each sprint
• the team must break down the user stories into tasks
• the team must set time requirement for the tasks
• the tasks must have a title, a brief and long description and a time frame
• chicken access to sprint backlog and task status may be disabled
Help for the daily scrum:
• display the task states
• display the product burndown charts
• the team can do the daily scrum via XMPP-based chat, integrated into the site
• tasks can be moved at any given time, all charts and reports are updated real
time
Sprint review:
• at the end of a sprint, the customer can accept or decline user stories,
depending on their readiness
• after closing the stories, the sprint itself is closed automatically
Sprint retrospective board:
• this is only a small blackboard, on which team members can discuss everything
about the current sprint. This is only a tool to aid the scrum master
during the retrospective.
Users and roles:
• each user can be a chicken or a pig
• any pig can be assigned to the special role "scrum master"
• the scrum master cannot be a product owner for any products
Products:
• each product must have exactly one product owner
• all products must have a product description and may have customer
information
Teams:
• all team must have at least one member to be considered as active
• product owners and the scrum master can be the member of any team
Sprints:
• every sprint mst have a goal
• at most one sprint must exist for each product at any given time
DATABASE PLANNING
======================
User:
id: integer, unique
username: string, unique
password: string, hashed or crypted
role: enum of pig and chicken
scrumMaster: boolean, only one scrum master can exist
Team:
id: integer, unique
name: string, unique
members: array of user ids, only pigs can be team members, one pig can be
the part of multiple teams
Product:
id: integer, unique
name: string, unique
contact: text, may be omitted
productOwner: integer, unique, id of a user, must not be the scrum master
teams: array of team ids working on this product
productBacklog:
id: integer, unique
productId: integer
storyName: string, unique
storyDescription: text
difficulty: integer, must be null during the difficulty vote, counts as an
accepted story otherwise
businessValue: integer
ideaPool:
id: integer, unique
productId: integer
storyName: string, unique
storyDescription: text
difficulty: integer, optional
difficultyVotes:
storyId: integer
userId: integer
difficulty: integer
reason: text, optional
Sprint:
id: integer, unique
productId: integer
started: timestamp
title: string, must be unique among the same product's sprints
sprintBacklog:
id: integer, unique
storyId: integer
teamId: integer
title: string
briefDescription: text
longDescription: text
hourRequirement: integer
OpenScrum.org user stories
==========================
• as the site owner, I want unregistered users to access the information pages
and public Products only
• as the site owner, I can decide if I want to allow anyone to register
• as a possible later Product Owner, I can register my company providing a
contact e-mail address, and optionally uploading a brief description of it
• as a possible Product Owner or Team member I can register myself by choosing
a username and password, providing a contact e-mail address, and optionally
uploding my CV with references and some details about myself
• as a registered user, I am able to log in to the site using my chosen
username and password
• as a Product Owner I can create a new Product on behalf of my company
• as a Product Owner I can create advertisement about my product to find
developers for my Team
• as a Product Owner I can invite developers to my Team
• as a Product Owner I can choose a possible Scrum Master from my Team
• as a Team member I can vote with a plus or minus on the chosen Scrum Master
• as a Product Owner I can set who can add items to my Product's Idea Pool: me,
the Team, or anyone
• as a Product Owner, Team member or a normal registered user I can add items
to the Product's Idea Pool depending on the Product's settings
• as a Product Owner or Team member I can vote with a plus or a minus on the
Idea Pool items depending on the Product's settings
• as a Team member I can estimate the difficulty or required time for each item
in the Idea Pool
• as a Product Owner, I can see the difficulty or development time estimated by
the Team
• as a Product Owner, I can promote one of the Team members to Scrum Master
• as a Team member, I can put a positive or negative vote on the promoted Scrum
Master. If enough positive votes are gathered, the promoted member will
become the Scrum Master. If enough negtive votes are gathered, the selected
person will automatically be demoted, and the Product Owner has to promote
again
• as a Product Owner or a Team member (or optionally, as a regular user, if the
Product is public), I can add my ideas to a Product's Idea Pool
• as a chicken, I can see if my product has an active sprint
• as a product owner, I can enable or disable chicken access to sprint details
• as a team member, I can see the backlog of each products, and can vote for
the difficulty of each story
• as a product owner or customer, I can see the idea pool, and can accept or
decline the ideas in them. If I accept them, they automatically get into
the product backlog
• as a product owner or customer, I can define a business value for each item
in the product backlog, thus accepting them from my side
• as a team member, I can vote for the difficulty of each user story in the
product backlog or the idea pool with an optional reason, thus accepting
them from my side
• as a product owner, I can import tickets from ticketing systems. Bugs get
into the product backlog, feature requests go to the idea pool
• as a product owner, I can start a new sprint for my product
• as a team member, I can help the product owner in creating a new speint, by
dividing the user stories into tasks, predicting an hour requirements for
each one
• as a product owner or customer, I can edit user stories with high difficulty,
so it breaks into smaller tasks, or I clear some things
• as a team, we can agree on how we will solve a task, and we can add and
modify these details to an open task anytime
• as the scrum master, product owner, and optionally as the customer, I can see
statistics and charts about my ongoing sprint