We are hearing a lot of noise about Agile project development techniques and more often Scrum-based development these days. Here I will try to answer some of the basic project management questions related to Scrum.
What is Agile?
Agile, if we look at the word only, it means fast. With the competition and fast-paced advancements in technology, it is important for software products to release features as fast as possible to the market.
With that aim in mind, the following core principles were finalized.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
What is a project charter?
A project charter is a short document which gives you an outline of the project. It normally has the following details.
Project Objectives – What is the trigger for this project.
Stakeholders- Who all are affected by and involved in this project
Constraints- Dependencies on outside factors.
Risks- Any Risks foreseen for the project and if they have been mitigated or accepted.
Definition of Done – When can the project be considered as done
What are the basic roles in Scrum?
Product Owner- manages and prioritizes the product backlog. Should have complete knowledge of the product. It helps if he also has technical knowledge.
Scrum Master – The job includes facilitating the scrum, organizing meetings, communicating with stakeholders, product owners, and team to make sure everyone is on the same page. Usually, this is not a standalone job. Normally a Project Manager will assume the role of Scrum master who might ave additional responsibility of managing resources and keeps a check on project overall health. At times a business analyst can also take a role of Scrum Master, who has an understanding of business and can take up some responsibility from product owner if the later is not available full time.
Development Team- A typical scrum development team can have following team members
Developer
Business Analysts
Tester
Technical Writer
Architect
Support or DevOps people
How the work is managed in Scrum?
Work is managed in the form of backlogs. There are a product backlog and a sprint backlog, which contains work items in the form of stories.
Product Backlog: The product backlog has all the work related to project. The product owner works with stakeholder to come up with the product backlog, which is then prioritized and mostly all the work is delivered in the form of multiple releases.
Sprint Backlog: A spring is usually a 2-3 week time period. Product owner normally prioritizes work for each sprint, which is then added in form of Sprint backlog.
What is the Scrum process?
The product owner creates product backlog with the help of stakeholders. This usually has all the work which has to be taken up during the course of the project. Work is done and delivered in the form of Sprints. A sprint is usually a 2-3 week time period, in which a small but complete chunk of work is picked up by the team and completed.
The process starts with spring planning where tasks to be delivered for the current sprint are finalized. Daily scrum meetings are conducted where ever team member provides the status of work done. At the end of Scrum, a review and a retrospective meeting take place to showcase the progress and evaluate process improvements respectively.
What is Sprint Planning?
In the sprint planning meeting, the Product backlog is reviewed by the team. The product owner prioritizes the stories to be taken up for the sprint. Team reviews, discusses and refines the stories. Finally, Team commits to a set of stories, which then is treated as sprint backlog.
One should Avoid long discussion on requirements and design in planning meetings. If things are not clear, the story should be dropped and re-reviewed by the product owner or architects / senior devs separately. Ideally, there should be a pre-planning meeting among senior devs, product owners and scrum master to save the time of the team.
Pick stories which make logical sense in delivering an incremental update.
What is Planning Poker?
During the sprint planning meeting, the complexity of all the stories being considered for the sprint is decided. Based on which the final sprint backlog is decided, considering how many stories can be taken up during the sprint. Knowledge from previous sprints is used to understand how much complexity can be handled during the sprint.
Planning poker is a process to involve all team members in evaluating the complexity of a story. A base story with a base complexity, called story point is used for comparison. Every team member gives complexity or story point (normally in Fibonacci series) to each story. Outliers are discussed and the team comes on a consensus for story points.
It helps everyone understand the story and make sure everyone is one same page. Every voice is understand.
What is Daily Scrum?
A daily standup meeting where each team member talks about the following three items
What was done yesterday?
What will be done today?
Any blockers
Advantage of daily scrum meeting is that everyone knows what is happening through the project, and team members can help each other or call out dependencies on other’s work.
Usually, a Kanban board or Scrumban board is used to track stories and tasks. This helps in making sure that only a fixed set of stories will be taken up at a point. There can be 3 or more states for a story or a task i.e. New->In Progress-> Done.
What is the Sprint Review?
At the end of a sprint, the team showcases the progress to the Product Owner and other stakeholders. The progress is shown in the form of a working product or demos. One should make sure that there is representation from all stakeholder parties so that everyone agrees to the product being built.
What is the Sprint Retrospective meeting?
This meeting is among team members at the end of a sprint where everyone is supposed to discuss on following items for the last sprint.
What went well?
What can be improved?
How can we improve it?
A plan is created for improvements and tracked.
What goes into a sprint?
Sprint Backlog
What is the outcome of a sprint?
A Potentially shippable iteration of the product. That means designed, developed, tested, unit tested, integrated, acceptance tested piece of code.
What is a user story?
A user story is usually the smallest yet complete work item which can be delivered in entirety. The story can be further divided into tasks. A story has the following components – Value statement, Assumptions and Acceptance Criteria.
A value statement is normally stated in the form of
As a [Who]
I want to [What]
In order to [Why]
For example, “As an Admin, I want to access the settings page, in order to update language option.
Assumptions are any additional information about the story implementation as if it is dependent on another story or other stories are dependent on this, how these will affect each other.
For example, “Assuming external service is ready or takes {set of input} params.”
Acceptance Criteria is testing criteria of the story. This also covers any nonfunctional requirements like performance or security needs. Acceptance Criteria removes ambiguity and provides the sort of a checklist for completion of the story.
In addition, a story will also be associated with Definition of Done, which is defined at the product level. This can include –
Reviews by stakeholders
Documentation
Design and compliance reviews