Created a TODO file
This commit is contained in:
parent
1d058d4371
commit
87345ff61e
280
TODO
Normal file
280
TODO
Normal file
@ -0,0 +1,280 @@
|
||||
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
|
Loading…
Reference in New Issue
Block a user