SCRUM - DariaHalchenko/meetod GitHub Wiki

Scrum is a methodology for organizing a collaborative workflow based on step-by-step development and improvement of a product by a small team of specialists of different profiles.

Scrum refers to a family of flexible Agile methods. Often these two concepts are used as synonyms, but this is incorrect. Scrum is a specific example of the Agile approach. It represents a specific production methodology, while Agile is more of a philosophy or a set of values.

Features of Scrum are team approach and non-standard distribution of responsibilities in the team. Both company employees and business customers are involved in the process.

Why Scrum methodology is needed

The approach is flexible and allows for experimentation, so it is effective when you need to develop a new product quickly. Especially if there is no final vision of the result or market conditions change too often. Scrum helps to gradually move towards the goal and to monitor the effectiveness of the work done along the way.

Principles of Scrum team work

While working according to the Scrum methodology, fundamental principles should be followed:

  • Continuous Improvement. The product improves due to self-improvement of the whole team.
  • Autonomy. Each participant is responsible for his/her part of the work and for the overall result.
  • Cross-functionality. The presence of people with different skills in the team makes it self-sufficient.
Advantages Disadvantages
- The team works in small increments, where goals and ways to achieve them are defined at each stage, which increases the speed of work. - Scrum is not suitable for very large and complex projects, as coordination issues may arise.
- The team works on different tasks of the project simultaneously, achieving the desired goal faster. - A high level of trust within the team is necessary.
- Large tasks are broken into smaller ones, making it easy to make adjustments during the work process. - After an extended period of work, productivity dynamics drop, requiring the team to be restructured or dismantled.
- Rapid response to changes and error elimination minimizes financial risks. - The client must constantly communicate with the team and provide feedback.
- Each team member knows their responsibilities.
- Open information exchange makes the work as transparent as possible.
- Daily visibility of achievements maintains a high level of motivation.

Team Formation

A Scrum team is a cohesive unit, consisting of 6–10 specialists with different skill sets, working towards a common goal. The Scrum team typically includes:

  • Product Owner: The customer or their representative. They guide developers, communicate new product requirements, and ensure the work is aligned with the right direction. The Product Owner facilitates effective communication between the customer, developers, and users and understands business and market needs.

  • Scrum Master: A facilitator who ensures that Scrum principles are followed. Their role is not to manage developers but to guide the team, resolve issues, and remove obstacles hindering progress.

  • Developers: Individuals with varying expertise, forming a team tailored to each project. The team works from start to finish and should complement each other's skills. There is no formal leader, and the process is based on equality.

Short Cycle (Sprint) Planning

A Sprint is a period during which the team creates and refines a part of the product, ensuring readiness for changes and avoiding extensive revisions.

Each Sprint starts with a planning session. The entire team, including the Product Owner, Scrum Master, and developers, reviews the product backlog. Based on this, tasks for the current Sprint are defined, forming the Sprint backlog.

The team then evaluates the work and sets the Sprint duration (typically about two weeks).

Three possible outcomes:

  • The team doesn't meet the deadline: the client adjusts the schedule to achieve the goal.

  • The team meets the deadline: the client approves the result, and developers move to the next Sprint.

  • The team finishes early: developers tackle additional tasks within the remaining time.

Meeting deadlines organizes the workflow, sets the rhythm, and helps developers manage their time. A Sprint is considered complete when the team delivers a product that satisfies the client and is ready for use.

Scrum board

The team uses physical or software boards, the space of which is divided into parts reflecting the stages of work on the product. Their number can vary, but necessarily includes three components (from left to right):

  • planned tasks;
  • tasks in active work;
  • completed tasks.

The board is a visual representation of the workflow at different stages. With its help, each team member can control their work and keep track of the project.

Principles of Scrum team work

While working according to the Scrum methodology, fundamental principles should be followed:

  • Continuous Improvement. The product improves due to self-improvement of the whole team.
  • Autonomy. Each participant is responsible for his/her part of the work and for the overall result.
  • Cross-functionality. The presence of people with different skills in the team makes it self-sufficient.
Benefit Description
Predictability The fixed length of each Sprint helps teams estimate progress and plan ahead.
Frequent Feedback Sprint Reviews provide opportunities to gather feedback and adjust quickly.
Continuous Improvement Sprint Retrospectives help teams identify areas for improvement and optimize performance.
Focus The time-boxing aspect of Sprints helps the team stay focused on delivering high-value work.

How Planning Poker Works:

  1. Participants: All team members, typically the Development Team, participate in the estimation session.

  2. Cards: Each participant has a deck of cards with numbers (usually Fibonacci sequence numbers like 1, 2, 3, 5, 8, 13, 21, etc.). These numbers represent the relative effort or complexity of a task.

  3. Process:

    • Step 1: The Product Owner or Scrum Master presents a user story or task to the team.
    • Step 2: Team members discuss the story briefly to clarify requirements and details.
    • Step 3: Each team member privately selects a card that represents their estimate of the task's complexity or effort.
    • Step 4: Once all team members have selected a card, everyone reveals their chosen card at the same time.
    • Step 5: If there is a wide variation in estimates, the team discusses the reasoning behind the estimates, and another round of voting may occur until a consensus is reached.
  4. Consensus: The goal is to find a reasonable estimate, often through discussion and comparison of different perspectives, ensuring everyone understands the task’s complexity.

Scrum Artifacts

Scrum artifacts are objects that help the team and stakeholders track the product's state and the progress of work. The main artifacts include:

  • Product Backlog: A list of all tasks and requirements that need to be completed to create and improve the product. The backlog is dynamic and updated based on changes in business requirements or external conditions.

  • Sprint Backlog: A subset of tasks from the Product Backlog that the team needs to complete in the current sprint. This is the sprint plan.

  • Increment: The final result of the team's work for the sprint. This is the added value to the product, which should be ready for use.

Scrum Events

Scrum consists of various events that help organize the workflow and ensure regular checking and improvement. The main events are:

  • Sprint Planning: The process during which the team decides which tasks from the Product Backlog will be included in the Sprint Backlog.

  • Daily Scrum: A brief meeting (usually 15 minutes) where team members discuss what they've done, what they plan to do, and any issues they're facing.

  • Sprint Review: At the end of the sprint, the team presents the completed work to the customer or stakeholders and gathers feedback.

  • Sprint Retrospective: A meeting where the team discusses what went well, what could be improved, and what changes need to be made for the next sprint.

Challenges of Implementing Scrum

Implementing Scrum can face several challenges, especially in the early stages:

  • Inexperienced Team: Scrum requires experienced professionals who understand the core principles and practices.

  • Resistance to Change: Some teams may resist switching to Scrum, as it requires changes in culture and habits.

  • Lack of Management Involvement: For successful implementation, it is essential to have full involvement from management and stakeholders, especially in large organizations.

Aspect Scrum Kanban
Structure Based on Sprints, with a fixed duration and a limit on the number of tasks to complete per Sprint. No fixed durations (no Sprints). Tasks flow continuously, as they are ready to be worked on.
Work Process Work is divided into time-boxed iterations (Sprints), typically lasting 2-4 weeks. Work is continuous, tasks are pulled from the backlog as capacity allows.
Focus Focus on delivering a set of tasks within each Sprint. Focus on limiting the amount of work in progress (WIP) at any given time.
Flexibility Less flexibility during a Sprint; changes can only be made after the Sprint ends. More flexibility as work items can be added or changed at any time without the need for a Sprint.
Team Workflow Teams work in collaborative Sprints with regular reviews, retrospectives, and planning. Teams work on tasks as they come, with a focus on continuous flow and no regular time-boxed events.
Metrics Uses metrics like velocity and story points to measure progress and productivity. Uses metrics like cycle time and lead time to track the time it takes for tasks to be completed.
Suitability Best suited for projects with clearly defined goals and regular feedback cycles. Ideal for projects with a steady stream of work or for teams focusing on continuous delivery.