Scrum is a framework of iterative and incremental agile software development methodology for managing product development.[cited from Wikipedia]
There are 3 roles in scrum:
- Product Owner: a person as an interface between the team and other involved parties (stakeholders), the one who is responsible for the requirement.
- Development Team: individual of experts who are committed to deliver product increment.
- Scrum Master: a facilitator for the Product Owner and the team, who is also responsible to remove impediments to the ability of the team to deliver the product goals and deliverables, and also the one who is responsible to make sure the execution of scrum methodology.
Scrum is divided to basic unit of iteration called Sprint.
There are main events within each sprint:
- Sprint Planning: a meeting to communicate the scope to be done within sprint (selecting product backlog items).
- Daily Stand-up also called Daily Scrum: a regular feedback meeting bet about what have been done on the previous day, what to be done for the day, and whether there are impediments to solve.
- Sprint Review: a meeting to show the implementation to Product Owner (and also could be to Stakeholders) to showing the progress and getting continuous feedback
- Sprint Retrospective: a meeting to continuously reflect the scrum process, also to plan for improvement, steps to take, also a place to improve Definition of Done.
To optimize Sprint Planning we can also do Backlog grooming. Backlog Grooming is a meeting to groom / break down to big stories to more precise estimable stories and also a meeting to estimate stories.
Artifacts in scrum include:
- Product Backlog: living requirement in scrum represented as prioritized stories and epics
- Sprint Backlog: assigned product backlog items to current sprint including plan (including sprint goal) for the actual sprint. It use normally a so called scrum board
- Product Increment: changelog, documentation of what’s new in the latest sprint and also the accumulated implementation documentation
Promises between Scrum Roles (Acceptance Criteria)
To optimize control risk between scrum roles acceptance criteria are defined in the requirement and implementation process:
- Definition of Done: acceptance criteria of implementation to declare a story as done. It serves product owner by scrum team as a promise of implementation acceptance criteria
- Definition of Ready: acceptance criteria of requirement to declare a story as ready to implement. It serves scrum team by product owner as a promise that a requirement is stable enough / ready to implement
Stories and Epics
A Story or User Story is a part of requirement described as a description consisting of one or more sentences that captures what a user (end user or user of a system) does or needs to do as part of his or her job function.
User story can formulated to:
As a <user role> I <needs / predicate to achieved> so that <purposes>.
Background of the formulation:
- User role describes who is the subject or affected to or by the requirement
- Needs / predicate to achieved described what the user needs / wishes to have / should have as a part of requirement
- Purposes described the requirement is needed
- It uses 1st person view (I) to describe the requirement so that whoever reads the user story could be more empathic, putting themselves in the user’s shoes / situation.
If a user story is too big and is to broken down that it does not fit to be implemented within a sprint, it can be declared as an Epic. An epic can be seen as a grouper of stories which are grouped together.
Incremental means that the process can be added continuously until the definition of done or ready is reached.
Iterative means that the process is divided to phases. Each phase can contain repeatable elements (e.g. Meetings).
- Responsive to change
It does not mean that the requirement should change all the time, but the methodology is designed so that whenever a change occurs in the requirement, the process is responsive and more easier to adapt than the classic waterfall methodology. For example: classic waterfall methodology demands that requirement should be finish first before development can begin. In contrast, in scrum we can start development even the requirement is not finish. Incomplete requirement can be added incrementally based on priorities.
It means that each planned activity in scrum has time limit / time frame, e.g each Sprint phase should not be longer than 4 weeks, each stand-up meetings should not longer than 15 minutes.
Self-organized means that each team member knows how to manage themselves and they work together to achieve project success.