Scrum is a framework to implement Agile. Some people believe that agile and scrum are same but scrum is one of the framework to setup agile. There are other framework like Kanban are available to implement agile. Scrum is most popular in software industry, among all agile frameworks.Here I am explaining scrum and it’s benefits mainly for software development.
How Scrum works: In scrum we develop a software product in consecutive fixed length iterations (sprints). After each iterations scrum team delivery a usable and testable work product.
Roles in Scrum Framework: There are mainly three roles who are responsible for scrum success –
A. Product Owner – Product owner is a person who has all the knowledge about the product. He gets in touch with business to understand requirement according to market and engineering team to convey the requirement and priority of work to be done. A product owner typically –
- Create, manage and prioritize product backlog.
- Provide guidelines to team about product understanding, priority and what to deliver next.
- Work closely with business group to understand and also to keep them in a loop.
- Decides about final delivery.
B. Scrum Master – Scrum master is a facilitator during different scrum ceremonies like sprint planning, stand-up, sprint review, sprint retrospective (I will explain these further). He coach and guide the businesses, product owner and scrum team to enforce proper scrum process. Scrum master also facilitates required resources related to human or logistics. He remove any distractions or impediment from development team and insulate scrum team from external interference.
People think that scrum master is a project manager but it is not. In scrum framework there is no need of a project manager. We will read in scrum team that scrum team is self organized and self motivated team who plan their work themselves by creating sprint from product backlog. So no one need to enforce or assign work to scrum team.
A scrum master typically –
- Facilitate scrum ceremonies
- Facilitate resources
- Remove impediments and distractions
- Coach all stack holders
C. Scrum Team – Scrum team consist of 6-10 members preferably co located. Scrum team is self organised, motivated, cross functional. Team members with different skill sets help each other for a successful delivery. Motive of scrum team is to deliver sprint on time with quality work product. Team member to scrum planning meeting to plan work for next cycle. They pick work from product backlog as per priority set by product owner to plan next sprint. Scrum team should be 100% available as per sprint plan otherwise sprint will be effected. Again it is responsibility of scrum master to ensure 100% availability. Scrum team typically is –
- consist 6-10 members
- cross functional
- 100% available
- highly motivated
Scrum Ceremonies (Important Events) – As per scrum guidelines each sprint follows these four events(ceremonies) –
- Sprint planning: A team meeting to plan a sprint. It defines what features or functionality to complete in the upcoming sprint. Attendees are development team, scrum master, product owner. Focus area in this meeting is backlog grooming, priorities, create sprint of stories from backlog and discuss how we are going to complete. Sprint planning takes 1-3 days depend on project.
- Daily stand-up: It is also known as a daily scrum meeting. This is a 15-minute morning (or some fixed time in day) meeting for the software team to coordinate. Standup meeting attendees are scrum team and scrum master. Product owner may or may not attend daily stand up meeting.Goal of standup meeting is if we are still going to complete sprint. Discussion points are what is finished, what we are going to finish today and what are impediments.
- Sprint demo or Review: A sharing meeting where the team shows what they’ve shipped in that sprint. In this attendees are product owner, real customers and team. Any of the team member gives a demo of completed software as we know after every sprint team release a working software. Goal of this meeting is to get the feedback from customer and product owner.
- Sprint retrospective: This is a team meeting. A review of what did and didn’t go well with actions to make the next sprint better. In this meeting team discuss and make a note down good retrospective and bad retrospective. They prepare a plan about improvement or actions items for next sprint.
Other Terms – There re others terms related to scrum framework and agile which need to understand well.
- User Story – A user story is a software functionality written in product backlog. It is high level of definition of requirement for developer to understand what need to done. A developer can estimate work on the basis of user story. this is not the detail description of requirements. A typical user story format is – “As a user, I want functionality, so that I get business value ” . Example – “As an administrator, user should able to define different users type and their access, so that various users can login into system with different accessibility in the system” A good User story define Who What and Why. It should have good INVESTMENT mean Independent, Negotiable, Valuable, Estimable, Small, Testable. A user story can be divided into multiple tasks
- Product Backlog – Product backlog is a set of features require for software. It is in prioritized list form which defined by product owner. These features could be defined as user stories. This is in a form of pyramid highest priority feature on top.
- Sprint Backlog – From product backlog team create a sprint backlog in sprint planning meeting. Sprint is a small set of user stories or feature team deliver in one iteration. Sprint is a time bound entity. It should be planned for 2-4 week and it should not be longer then 4 week. If it is going beyond estimated time it then it should be closed and leftover work should shift to product backlog. A new sprint can be planned then.
- Agile Manifesto – Agile manifesto is set of 4 values and 12 principles of Agile(reference – www.agilealliance.org). It was written in 2001. 4 principles of manifesto are
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
You can read more about values and principles in agile Manifesto here – https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/
- Definition of Done – Definition of done is a formal definition set in an organization or group for task, story, release or complete product. for example a task is done if it is coded, unit tested, reviewed. A story could be said as Done if it is reviewed and approved by product owner. Release could be said as done when is is release and tested on staging testing. Different organizations have their own definition of done..
Agile vs. Traditional Software Development – Modern days software development life cycle is devided in two techniques. Agile and Traditional. Here are some of points which shows differences between these two –
- Structure – Traditional software development is sequential series of activities requirement specification, designing, coding, testing and deployment. Its focus is on visualize whole software and its functionality at start and then work linear to build it. While Agile approach incremental and iterative development. It does not treat software as a large entity but set of entities working together which are developed. Agile do a constant adaptability and compatibility test. .
- Cost – Agile is cost effective as it minimize rework. In agile problem can be identified and resolved in early stage while in traditional problem could identify only after development complete and then rework will be high. Rework will effect cost.
- Customer Involvement – In traditional process customer need to give all his requirement details in advance while in agile customer involves and review every phase. Customer can verify and suggest. So customer involvement is high in agile which helps to identify change on early stages.
- Team Size – In traditional team size is large while in agile team sizes are small and divides in multiple team for a big software project.
- Flexibility – Agile is more flexible in terms of accepting changes, customer involvement, schedule, team members.
- Documentation – Agile does not enforce much on documentation while traditional is very aggressive about documentation.
- Planning – Traditional believes too much in long term planning while agile believes in deliver more then planing.
Scrum Benefits –
- Quality – Due to continuous review and customer feedback, quality of software developed in scrum is very high.
- Efficiency – Scrum process is very effective in developing efficient software as per customer expectation. Its efficiency is in incorporation of customer feedback and changes on every stage without completion of product development.
- Reaction to change – In scrum changes are always welcomed in comparison to traditional as in traditional change comes only after completion of software.
- Predictability of delivery – Due to short iterations and estimation possibility of delay in delivery is low in scrum.
- Communication with others – All the stack holders are involved during development so communication is very open in scrum.
- Collaboration within team – Collaboration in team is good as team members educate, help each other in scrum to achieve sprint target. Team members are not exhaust or overload in scrum as they always have clear picture according to estimate.
- Customer satisfaction – Customer satisfaction chances are really high in scrum as he get return of investment very frequently. He can see a working software withing 15-30 days of project start even if it is a year long project.
Conclusion is that, Scrum is beneficial for all stack holders which includes development team, senior management, customer and any other.
I have written whatever I have learnt during my scrum master experience. Please give your suggestions at firstname.lastname@example.org . Thanks for reading!