Md Asiful Haque

Full Stack Dev | ASP.Net, Laravel, AngularJs, Flutter

Scrum Methodology: Understanding the Process of Agile Software Development

Scrum is a framework for managing and completing complex projects. It is often used in software development, but can be applied to any project. The framework is based on an iterative, incremental approach to project management, and it includes specific roles, events, and artifacts.

A Scrum development cycle, also known as a sprint, typically lasts for 3 weeks. During each sprint, a cross-functional team works to deliver a potentially releasable product increment. The team meets regularly to review progress and plan the next steps.

The main roles in Scrum are the Product Owner, the Scrum Master, and the Development Team. The Product Owner is responsible for defining and prioritizing the product backlog (a list of features or requirements for the product). The Scrum Master acts as a facilitator, helping the team to follow the process and removing any obstacles that may arise. The Development Team is responsible for delivering the product increment.

Events

The main events in Scrum are the Sprint Planning Meeting, the Daily Scrum, the Sprint Review, and the Sprint Retrospective. The Sprint Planning Meeting is held at the beginning of each sprint to plan the work for the upcoming sprint. The Daily Scrum is a short, daily meeting where team members discuss progress and plan their work for the next 24 hours. The Sprint Review is held at the end of the sprint to review the work that was completed, and the Sprint Retrospective is held to discuss what went well and what could be improved in the next sprint.

Artifacts

The main artifacts are the Product Backlog, the Sprint Backlog, and the Increment. The Product Backlog is a list of features or requirements for the product, and it is managed by the Product Owner. The Sprint Backlog is a list of items that the team commits to completing during the sprint, and it is created during the Sprint Planning Meeting. The Increment is the sum of all the product backlog items that have been completed during a sprint, plus the value of the previous increments.

Scrum aims to deliver working software at the end of each sprint, with a focus on delivering the most valuable features first. It emphasizes flexibility and adaptability, and encourages regular communication and collaboration among team members.

Role of SRS

The SRS (Software Requirements Specification) document is typically created by the Product Owner, in collaboration with stakeholders such as the Development Team, the Scrum Master, and other members of the organization. The Product Owner is responsible for gathering, analyzing, and prioritizing the requirements for the product.

The review process of SRS is typically conducted by the Development Team, the Scrum Master, and other stakeholders. The Development Team is responsible for reviewing the SRS to ensure that the requirements are clearly defined, complete, and consistent. They also review the SRS to ensure that the requirements are realistic, achievable and align with the definition of done.

Yes, the Development Team is involved in reviewing the SRS. They are the ones who will be responsible for implementing the requirements in the SRS, so it is important that they have a clear understanding of the requirements and that they are able to provide feedback on the feasibility and implementation of the requirements.

The SRS document typically includes the following components:

  • Introduction: This section provides an overview of the product and the purpose of the SRS document.
  • Functional Requirements: This section describes the functionality that the product must provide, including the features and capabilities that the product must have.
  • Non-Functional Requirements: This section describes the quality attributes that the product must have, such as performance, security, usability, and maintainability.
  • Constraints: This section describes any constraints that the product must work within, such as technical or business constraints.
  • User Interface: This section describes the user interface that the product must have, including the layout, navigation, and functionality.
  • Acceptance Criteria: This section describes the criteria that must be met in order for the product to be considered complete and ready for release.

Sprint Planning

The Sprint Planning Meeting is conducted by the Development Team in collaboration with the Product Owner and the Scrum Master. The goal of the Sprint Planning Meeting is to plan the work for the upcoming sprint.

The Development Team is responsible for creating the Sprint plan and the sprint review. They are the one who will be executing the sprint plan and will be delivering the sprint review.

The Sprint Planning Meeting is conducted as follows:

  • The Product Owner presents the highest priority items from the Product Backlog.
  • The Development Team discusses the items and estimates the effort required to complete them.
  • The Development Team selects the items they can complete during the upcoming sprint.
  • The Development Team creates a plan for completing the selected items, including identifying the tasks that need to be done, who will do them, and how long they will take.

To avoid pitfalls during the sprint planning, it is important to:

  • Make sure that the Product Backlog is well-groomed and the items are clearly defined and understood.
  • Set realistic expectations for what can be completed during the sprint.
  • Encourage active participation from all team members during the planning process.
  • Avoid overcommitting and be willing to adjust the plan as needed.
  • Ensure that the Definition of Done is clearly understood by the team.

Product Owner and Sprint Planning

The overall project planning is done by the Product Owner in collaboration with the Team, which includes the Development Team, the Scrum Master, and stakeholders. The Product Owner is responsible for creating and maintaining the Product Backlog, which is a prioritized list of features or requirements for the product.

Sprint Planning is related to project planning in that it is a way to plan and organize the work that needs to be done in order to achieve the project goals. The Sprint Planning Meeting is focused on planning the work for the upcoming sprint, while the overall project planning is focused on identifying and prioritizing the features and requirements for the entire project.

Sprint Review

In Sprint Review, the Development Team presents the increment, which is the sum of all the product backlog items that have been completed during the sprint, plus the value of the previous increments. They also discuss what went well, what could be improved, and what questions stakeholders have. The goal of the Sprint Review is to get feedback on the increment and to make sure that the Development Team is building the right product.

Setting Backlog priority

The Product Owner is responsible for setting the priority of the items in the Product Backlog. The Product Owner is the person responsible for maximizing the value of the product and the work of the Development Team. They are the one who has the authority to make decisions about the product’s features and requirements.

The Product Owner is responsible for maintaining the Product Backlog, which is a prioritized list of features or requirements for the product. They are responsible for identifying the most important items and ensuring that the Development Team is working on the highest priority items first.

Daily Scrum

In a software development context, the Daily Scrum is a daily meeting where the development team members come together to discuss progress and plan their work for the next 24 hours. The meeting is typically held at the same time and place every day, and it is usually time-boxed to 15 minutes or less.

During the Daily Scrum, each team member answers three questions:

  1. What did you do yesterday to help the team meet its sprint goal?
  2. What will you do today to help the team meet its sprint goal?
  3. Are there any obstacles in your way that prevent you from achieving your goal?

It’s not a status update meeting, but a meeting where team members coordinate their work and help each other to achieve the sprint goal. The focus is on identifying and solving problems, and making sure that everyone is on the same page.

The ideal team size for the Daily Scrum is around 7, plus or minus 2, as per the scrum guide. The team size should be small enough that everyone can participate in the meeting and share their work and challenges, but large enough to have the necessary skills and expertise to complete the sprint goal.

The Daily Scrum is a meeting for the Development Team. The Development Team is a cross-functional group of individuals who are responsible for delivering the product increment. Therefore, the Daily Scrum is typically attended by the developers, testers, designers, and any other team members who are directly involved in creating the product. The Product Owner and the Scrum Master may also choose to attend, but they are not required to do so.

Status Update meeting

The Daily Scrum is different from a status update meeting in that it is not a meeting for reporting progress or providing status updates to stakeholders. The Daily Scrum is a meeting for the Development Team to coordinate their work and help each other to achieve the sprint goal. It is a time for team members to identify and solve problems, and to make sure that everyone is on the same page.

If stakeholders, such as the Product Owner or management, need a status update on the project, a separate meeting can be scheduled for that purpose. This meeting is called Sprint Review. Sprint Review is held at the end of each sprint and it is an informal meeting where the Development Team demonstrates the work that was completed during the sprint, and receives feedback from stakeholders.

Who is scrum master?

The role of the Scrum Master is to facilitate the Scrum process and to remove any obstacles that may arise. They are responsible for ensuring that the Development Team is fully functional and productive, and that the framework is being followed. They act as a coach and mentor for the Development Team, helping them to understand and use Scrum effectively. The Scrum Master also acts as a liaison between the Development Team and the stakeholders, including the Product Owner and management.

The Scrum Master should be someone who has a deep understanding of the Scrum framework and has experience working in Scrum teams. They should be a good communicator and a problem-solver, with the ability to understand and address the needs of the team and the stakeholders.

If a developer becomes a Scrum Master, they will need to balance their responsibilities as both a developer and a Scrum Master. One way to manage this is to prioritize their Scrum Master duties during the Scrum events, such as the Sprint Planning Meeting, the Daily Scrum, the Sprint Review, and the Sprint Retrospective. During these meetings, they should focus on facilitating the process and removing any obstacles that may arise.

The rest of the time, they can focus on their development work. It is important to note that they not responsible for doing the work of the Development Team, they should instead help the team to work effectively and efficiently.

Selecting a Scrum Master

The Scrum Master should ideally be selected from within the Development Team. They should have a deep understanding of the framework and have experience working in Scrum teams. They should also have a good understanding of the work of the Development Team and the challenges they face.

By selecting a Scrum Master from within the Development Team, the team members will have more trust and confidence in the Scrum Master’s ability to understand and address their needs. Additionally, a Scrum Master from within the Development Team will have a good understanding of the technical aspects of the work, which will help them to better facilitate the process and remove obstacles.

However, it is important to note that the Scrum Master should be someone who can take on the role of a facilitator, rather than a developer. While the Scrum Master should have a good understanding of the technical aspects of the work, they should not be doing the work of the Development Team. Instead, they should help the team to work effectively and efficiently.

In some cases, the organization may not have an internal candidate that fulfills the criteria to be a Scrum Master, in that case, they can consider hiring an external Scrum Master or train one of the team members to become a Scrum Master.

Scrum Master Rotation and Activities

The framework does not prescribe a specific time period for rotating the Scrum Master role. Whether or not to rotate the Scrum Master role should be based on the specific needs and circumstances of the organization and the Development Team.

Rotating the Scrum Master role can be beneficial in certain cases, such as:

  • Giving different team members the opportunity to develop their leadership skills.
  • Bringing fresh perspective and new ideas to the team.
  • Preventing burnout who are in the role for an extended period of time.

However, rotating the Scrum Master role can also have some drawbacks, such as:

  • The team may have difficulty building trust and rapport with a new Scrum Master.
  • The team may lose continuity and momentum if the Scrum Master role is constantly changing.
  • The new Scrum Master may need time to learn the team dynamics and the specific challenges they face.

The day-to-day activities of a Scrum Master can vary depending on the specific needs and circumstances of the team. Some of the key activities that a Scrum Master may perform include:

  • Facilitating the events, such as the Sprint Planning Meeting, the Daily Scrum, the Sprint Review, and the Sprint Retrospective.
  • Removing obstacles that may prevent the team from achieving the sprint goal.
  • Act as a coach and mentor for the Development Team, helping them to understand and use Scrum effectively.
  • Act as a liaison between the Development Team and the stakeholders, including the Product Owner and management.
  • Helping the team to identify and improve their processes and practices.
  • Ensuring that the framework is being followed.
  • Helping the Development Team to work effectively and efficiently.

Ensuring that the Scrum framework

Scrum Master is responsible for making sure that the team is adhering to the rules, roles, and ceremonies defined in the Scrum framework.

The Scrum framework is a set of guidelines and best practices that help teams to work in an Agile way. By ensuring that the framework is being followed, the Scrum Master is helping the team to stay on track, and to work in a consistent and predictable way.

This includes making sure that the team is following the Scrum events, such as the Sprint Planning Meeting, the Daily Scrum, the Sprint Review, and the Sprint Retrospective, and that these events are held in a timely and consistent manner. It also includes making sure that the team is following the Scrum roles, such as the Product Owner, the Development Team, and the Scrum Master, and that these roles are clearly defined and understood.

The Scrum Master is also responsible for making sure that the team is following the artifacts, such as the Product Backlog, the Sprint Backlog, and the Increment, and that these artifacts are being used in a consistent and effective way.

Ways to Enforce Scrum Rules

There are a few ways that a Scrum Master can ensure that the team is following the artifacts and using them in a consistent and effective way:

  1. Hold regular meetings: The Scrum Master should hold regular meetings with the Product Owner and the Development Team to review and update the Product Backlog, Sprint Backlog, and Increment.
  2. Provide training and guidance: The Scrum Master should provide training and guidance to the team on how to use the artifacts effectively. They should ensure that the team understands the purpose and value of each artifact and how to use them to support the process.
  3. Monitor and inspect progress: The Scrum Master should monitor and inspect the progress of the team regularly. They should check that the team is making progress on the items in the Sprint Backlog and that the Increment is of high quality. They should also check that the team is following the Definition of Done and that the product backlog is properly groomed.
  4. Address any issues: The Scrum Master should address any issues that arise with the use of the Scrum artifacts. If the team is struggling to use the artifacts effectively, the Scrum Master should work with the team to identify the problem and come up with a solution.
  5. Facilitate communication: The Scrum Master should facilitate communication between the Development Team and the Product Owner. This will help to ensure that the Product Backlog is up-to-date, relevant, and correctly prioritized.
  6. Empower the team: Lastly, the Scrum Master should empower the Development Team to take ownership of the Scrum artifacts. They should encourage the team to take initiative and make decisions, while providing guidance and support as needed.

Some Other Scrum Rules

Some of the other Scrum framework and rules that need to be followed include:

  1. Time-boxed iterations: Scrum uses time-boxed iterations called Sprints, typically 2-4 weeks, in which the Development Team delivers a potentially releasable product increment.
  2. Empirical process control: Scrum relies on an empirical process control, meaning the process is inspected and adapted based on experience. This includes regularly reviewing the progress of the project and making adjustments as necessary.
  3. Self-organizing teams: The Development Team is self-organizing, meaning that the team is responsible for organizing and managing its own work. The Scrum Master helps the Development Team to work effectively and efficiently.
  4. Incremental delivery: The Development Team delivers a potentially releasable product increment at the end of each sprint. This allows the team to get feedback and make adjustments as necessary.
  5. Prioritized backlog: The Product Backlog is a prioritized list of features or requirements for the product. The Development Team works on the highest priority items first.
  6. Definition of Done: The Development Team should have a shared understanding of what it means for a product backlog item to be “done” and should ensure that all items meet the Definition of Done before they are considered complete.
  7. Continuous improvement: The Scrum framework encourages continuous improvement through regular retrospectives, where the team reflects on its performance and identifies areas for improvement.
  8. Transparency: Scrum requires transparency in all aspects of the process, including the work being done, the progress being made, and the challenges being faced.

Success/Failure Criteria of Scrum master

The success and failure criteria for a Scrum Master can vary depending on the specific context and goals of the project. Some common success criteria for a Scrum Master include:

  • The Development Team is consistently delivering a potentially releasable product increment at the end of each sprint.
  • The Development Team is following the Scrum framework and adhering to the Scrum events, roles, and artifacts.
  • The Development Team is working effectively and efficiently, with high levels of collaboration and communication.
  • The Development Team is continuously improving their processes and practices through regular retrospectives.
  • The Development Team is meeting or exceeding the project’s goals and delivering a product that meets the stakeholders’ needs.

Some common failure criteria for a Scrum Master include:

  • The Development Team is consistently failing to deliver a potentially releasable product increment at the end of each sprint.
  • The Development Team is not following the Scrum framework or is not adhering to the Scrum events, roles, and artifacts.
  • The Development Team is not working effectively or efficiently, with low levels of collaboration and communication.
  • The Development Team is not continuously improving their processes and practices through regular retrospectives.
  • The Development Team is not meeting the project’s goals and is delivering a product that does not meet the stakeholders’ needs.

Summary

In Agile development, the Sprint Planning Meeting is conducted by the Development Team in collaboration with the Product Owner and the Scrum Master. The goal of the meeting is to plan the work for the upcoming sprint. The Development Team is responsible for creating the sprint plan and the sprint review. The Product Owner is responsible for setting the priority of the items in the Product Backlog. The SRS document is typically created by the Product Owner, in collaboration with stakeholders such as the Development Team, the Scrum Master, and other members of the organization.

Leave a Comment