Saturday, March 7, 2015

Scrum Framework

Scrum is an iterative and incremental framework to manage and develop a product. Scrum is one of the most heavily used agile techniques. It is not about programming, but it focuses on organization and project management methodologies. Scrum defines a set of iterative processes that is implemented based on the product backlogs and identified based on the priorities. Several tools in managing scrum are rally, agile project management, jira, salesforce agile accelerator, and target process etc. to track user stories and to make sure the team is following the Sprint planning.  



The approach to implement scrum may differ from organization to organization where teams can address complex issues in their own creative way and provide on time delivery to follow the baseline framework of scrum. The definition of delivery for every user story is decided by the team. Delivery to the business can be a deployment in the production, just an analysis, discovery, testing, uat etc. We will come back to define delivery with more examples later. 

Overview

Use Case:

SFDC123 Inc. has an IT team of 100 people, they have been following old sequential method of waterfall technology for software development projects and day to day activities like tickets, bugs, defects, enhancements, implementations, releases, upgrades etc. Management has decided to transition the entire IT team into scrum for speed and flexibility in product development.

SCRUM Team

The first step for our use case would be to divide the entire IT team of 100 folks into 10 “Scrum teams”.Each team would consist of SCRUM Master, Product owner, the development team, BSA’s and Admins.

SCRUM Master:

The Scrum master is the leader who conducts meetings and ensures that the entire team understands the Scrum practices and techniques. As a coordinator scrum master helps the team to manage their tasks and make progress to achieve the sprint target. Any issues or impediments are directly reported to him or her which is usually discussed in everyday stand-up meetings.


Product Owner

Product owner is also the subject matter expert who decides what needs to be build this sprint. He or she is responsible to draft the details of the user stories and prioritizes them in the product backlog. User story could be anything like building an internal or external application, tickets, bugs, documentation, discovery tasks, deployment, enhancements etc. What is defined as completed for each user story is also defined by the product owner. He or she becomes the first point of contact for the entire team to answer questions regarding the user stories assigned.

Development Team:

Development team is a cross functional team and its role differs from team to team, it mainly consists of bsa, admin, developers, architect, QA, web designer, technical specialist etc. Usually its members have collectively all the skills required to achieve the goal of the sprint. The team picks their own tasks and decides the amount of time required to move the task to complete.

 Scrum Structure


Sprint Cycle

Sprint is a work cycle decided by the team members and the Scrum Master. It can be either short sprints of two weeks or 30 day long. 


Product Backlog Grooming Session

Initial requirement discussions with the business and stakeholders are conducted by the product owner. He or she has the vision of the total amount of work that needs to be done. Product owner interacts with the team and decides the list of user stories that will be going in the current Sprint. A Sequence of work is listed according to the priority in the product backlog. It depends on the product owner of he or she wants to prioritize the items in product grooming session or want to prioritize them in the Sprint planning session. Items in the product backlog can be modified, added or deleted at any time as the business requirement changes. Another aspect of grooming session is assigning the story points.

Story Points

Story points are used to give an estimate about the user story in terms of difficulty level and the amount of time required to finish the task. User story is reviewed by the product owner with the entire team and then the voting begins. Few estimating methods are t-shirt size  XS,S,M,L,XL etc. , Fibonacci sequence 1,2,3,4,8 etc., Regular numbers like 1,2,3,4 etc. It is not necessary to assign hours to the estimates but if the team does than it is important to define the number of working hours in a day. 

For Example-

In SFDC 123 Inc. employees work from 8 AM to 5 PM. Lunch break timing is 12 PM to 1 PM. Miscellaneous activity = 1 hour, total amount of working hours in a day = 6 hrs.

Fibonacci Sequence
Days
Hours
1
Less than half day
3 hours
2
One day
6 hours
3
One and half day
9 hours
5
Three days
18 hours
8
Five Days
30 hours

Sprint Planning

In Sprint planning session the entire team- Scrum master, product owner and the development team decides to list the user stories which will be included in the upcoming sprint and what goal will be achieved. Product backlog may contain a lot of work which may not be achieved in a two weeks’ time line. In this session user stories are assigned to the development team followed by the task breakdown. Task breakdown can be done either by the product owner or the task owner. The story points assigned should match the task hours. If the Sprint duration is two weeks than each team member should have at least 60 hours of work given that the number of working hours in a day is 6. 



Back Burner
Low priority tasks like tickets, bugs, defects etc. are staged in the Back burner. Team members can assign the back burner tasks to themselves if they have finished the current Sprint work or the task that they are working on has a dependency and is paused. 

Implementation Phase

Once the Sprint planning session is done, the development team starts working on the tasks assigned to them. What is done will already be defined by the product owner in the user stories. Team members are responsible to update their tasks on daily basis. In the above example when the task owner begins the build in Dev environment the task should be moved to in progress section. Remaining number of hours should also be updated in each tasks and this depends on the available functions on the tool that you are using to track your activity. The above screenshot resembles the “Virtual wall” of Salesforce Agile accelerator which I will explain in detail in my next article.

If a user story has a task that needs to be done by someone else on your team it could be coding, testing etc., a task is created and assigned to new team member. More than one person can work on a user story given that the owners are clearly defined in the user story along with the hours matching the story points.

What is defined as completed or done?

During Sprint planning either the product owner or the scrum team with mutual discussion decides what will be defined as “DONE” for this user story. Depending on the experience and speed of the task owner “done” is defined.

Example:


Task
Task Owner
Subject Knowledge and Task Owner Comments
What is defined as "Done" for this user Story?
Build workflow rule
Admin
Excellent. I know the task very well.
Deploy to Prod
Complex issue on Sales side.






BSA
Not sure what the issue is, needs knowledge transfer from subject matter expert and some time for analysis.
Discovery
Build was done last sprint. Big Enhancement. Deployed to STG. Start UAT
QA
Excellent. Business would need two weeks’ time for testing.
Manage UAT
Code fix, needs analysis.
Developer
Average. Initial analysis and build can be done this sprint.
Build in DEV


Stand up Meetings:

Stand-up meetings are usually done in the first few hours of the working day.

The entire team updates the Scrum master which tasks were completed yesterday, what tasks are you planning to do today and are there any impediments. Scrum master notes down the road blocks and impediments reported by the team members and immediately works towards fixing them. In stand-up meetings team members usually discuss impediments like- business is not responding, my task has dependency on external team member, I am facing issues in build and I have exceeded the time allotted to me for this task, I need help from the team etc. Daily stand-up meetings promote collaboration, smooth functioning of the sprint, team members.

Highlights of the Daily Stand-up Meeting
  • Promotes Collaboration
  • Team Effort
  • Helps in smooth functioning of the Sprint
  • The entire team stays updated with what's going on.
  • Road blocks are addressed immediately
  • Sprint status, backlog items are communicated to the team
  • Team velocity is monitored
  • Number of hours remaining for the team members is tracked




Sprint Review Meetings

Sprint review meetings are conducted to review the delivered products or “done” items with the stakeholders, customers, end users, interested members of other teams and the scrum team. The Scrum team decides which features will be reviewed with the stakeholders. With this meeting all the participants get clear visibility of what has been built till now and are there are any changes required. Stakeholders and team members discuss collaborate and provide feedback on the delivered product which results in increased credibility of the team effort. The discussion helps for the continuation and expansion of the program/product.

 Sprint Retrospective Meeting

In this meeting the Scrum team (Scrum master, product owner and the development team) come together to discuss the following
  • What went well in our last sprint?
  • What are the areas that can be improved?
  • Recognition to a team member for an outstanding job.
  • What did not go well in our last sprint?

Team members are encouraged to draft their thoughts on sticky notes or they can  jot down the points on a board and then discuss them one by one. The goal of the meeting is to come up with the action items and scope of improving the next sprint.  This is the last step in a Sprint cycle. Once the retrospective session is completed Scrum master documents the discussion and updates the team with the notes.

Conclusion:

Hope this article gives you some basic idea about Scrum framework.There are some great tools available in the market that can help in a focused overview of scrum roles, scrum artifacts, and the sprint cycle. In my next blog, I will cover the basics of Salesforce.com Agile Accelerator. 







11 comments:

  1. Are you using scrum at your work? If yes, can you give some practical information on how you all are using it? Maybe some pictures and explanations etc. Thanks.

    ReplyDelete

  2. Hello Ranjit,

    Thank you for visiting my blog. Yes, we are using scrum at our work.
    While, I am still working on drafting my next article on salesforce.com agile accelerator, please take a minute and go through the scrum framework article that I posted today. Let me know if you have any questions.

    Thanks,
    Komal

    ReplyDelete