As complexity of the tasks increases, the central control system breaks down.
Scrum is built on 30 day learning cycle to prove a complete business cycle. Helps us learn rapidly. In one scrum cycle of 30 days, a software is built, tested, integrated and the most important of all, released to production.
Scrum is a process to manage complex projects. It does not describe what to do in every situation. It provides a framework and set of guiding principles, instead.
*** Common sense is a combination of experience, training, humility, wit and intelligence.
Software development is a complex process. The complexity and the issues that arise during development process can be resolved with hard work, intelligence and courage.
To take control of a complicated process, the empirical approach should be used.
How to implement a process using empirical process control mechanism?
1. Visibility - The aspects which affect the outcome must be visible to those who are controlling the process.
2. Inspection - To detect unacceptable variances in the process.
3. Adaptation - If after inspection it is found that some aspects of the products are not within acceptable limits, changes should be made.
Most significant aspects of software development - 1. Requirements 2. Technology 3. People
Heart of Scrum -
Product Backlog - Iteration - 24 hour inspection - Increment of functionality -- At the start of an iteration, the team reviews what it must do. It then selects which functionality it can convert into shippable product in one increment. Team, then starts working on the iteration. At the end of the iteration, team presents its output to the stakeholders. Stakeholders inspect the functionality and timely adaptations are made, based on that. This artifact is never complete, it evolves over time based on sprint progress and business requirements.
Scrum roles - Product Owner, Team, Scrum master
Product Owner - represents the stake holders, gets the funding, keeps the cashflow. PO uses Product Backlog (list of requirements), prioritizes it.
Team - It works on the product backlog on iterative basis. It is self-managing, self-organizing, independent and cross-functional.
ScrumMaster - teaches Scrum to the team members and product owner. facilitates the progress of the sprint.
Product Owner + Team + Scrum Master are people who are committed to the project. They have complete authority to take decisions to ensure success of the project.
Scrum flow -
It all starts with a vision. The Product Owner converts the vision into a list of functional and non functional requirements, called Product Backlog. PB(not Peanut Butter) is prioritized based on the value generating items coming on top. The top priority items are divided into proposed releases.
All work is done in Sprints. Each sprint is of 30 consecutive days. Each sprint starts with a sprint planning meeting, which can last maximum of 8 hours. In this meeting, the team and Product Owner decide on the items from the product backlog that can be completed in one sprint.
More about the Sprint planning meeting - First four hours - the team and PO decide the items to completed during the sprint.
Next four hours - the team plans the sprints based on the commitments made to the PO.
Daily Scrum - 15-min meeting every day, only for team members. Every team member answers three questions - 1. What have you done since the last meeting? 2. What are you planning to do till the next meeting? 3. Any blockers?
Sprint review - It is held at the end of the sprint, four-hour meeting with team, Product Owner and other stakeholders (if any). Team presents the functionality.
Sprint retrospective meeting - 3 hours - with team and Scrum Master. - to revise Scrum principles used during the meeting.
Burndown chart - It shows amount of work remaining across time.
Sprint backlog - it is an artifact prepared by the Team during second half of Sprint planning meeting. It consists of tasks, each task of 4 to 16 hours. It also consists of the person responsible for a particular task.
**At the end of every sprint, a potentially shippable functionality should be built. Hence the implementation should be well structured, well-written and properly tested.
Team handles its own management. ***
ScrumMaster is similar to Project Manager, he understands the process of Scrum, makes team follow the artifacts and framework of scrum.
Optimal team size for Scrum is 7 people.
*** Insanity - Doing the same thing over and over and expecting different results ***