How to start developing software product using Scrum
Scrum is a framework for solving a complex adaptive problem, and developing software products considered complex work. Software product development usually has high-level uncertainty in the requirement, and many a time, end users struggle to visualize what they are looking for in the product. Earlier, the product team used the prototyping method to capture the needs, but users often came back with a lot more changes when the actual product developed.
Now everyone is starting or has already begun with Scrum for agile software development. Scrum is an iterative and incremental framework based on empirical process control where sprints serve this purpose. So starting with Scrum means the team started sprinting. So, what’s needed to start sprinting?
We need a few things to start our first Sprint. I am putting them in two categories — essentials elements and acceptable practices.
Three essential elements are
Product Goal: A goal that describes the future state of a product. The product can be a solution, service, or product such as software product, hardware product, or firmware product such as payment wallet, a vacuum cleaner, a movie, or interior design.
Product Backlog: It consists of the work that helps in meeting the product goal. The Product Backlog is an emergent, ordered list of what is needed to improve the product. It is the single source of work undertaken by the Scrum Team. Product Backlog items that can be done by the Scrum Team within one Sprint are deemed ready for selection in a Sprint Planning event. The product backlog should be transparent to allow stakeholders to make decisions.
Scrum Team: The scrum team consists of three roles, a product owner, a developer, and a scrum master. A product owner maximizes the value of work done by a Scrum team, developers, or development team to develop a quality product. Scrum Master is accountable for the scrum team’s effectiveness. They all work in a timebox sprint to produce an increment of done work as per the definition of done.
Four acceptable practices are
Product backlog refinement session: Organize a few sessions to refine product backlog to keep it ready for 2–3 sprints. It also helps make decisions about design, architecture, decompose features in small stories, and prepare acceptance criteria. The team can come up with estimates to support the product owner in ordering product backlog items.
Definition of Done: A checklist to make increment transparent. Definition of Done may consist of all the work that team is planning to do to produce software such as UI design, writing services, performing integration testing, meeting acceptance criteria, and keeping it in a releasable state. Definition of done also consists of work that demonstrates commitment towards quality and development practices like TDD, BDD, DevOps, Refactoring and code quality, etc.
Team Agreement: The team is self-managed in Scrum, and self-management needs some rules to resolve internal conflicts, stay focused, and be committed towards the work. Scrum values become a great input to draft team agreement using courage, commitment, focus, respect, and openness. While preparing the team agreement, the team also learn about each other and expected behavior in self-management.
Sprint Duration: Sprint should not be more than a month, and better to keep it consistent. What should be the ideal duration? One week, two weeks, and four weeks? It depends on uncertainty or ambiguity in the requirement, complexity in doing the work. Better to go with a shorter cycle if there are high ambiguity and complexity to minimize the risk.
Please write your feedback below about this article so I can try to improve my work in future articles.