If you look up the basics of Agile Scrum you'll get something like the 3 pillars of "transparency, inspection and adaption". Even more useful, the 5 core values are commitment, focus, openness, respect, and courage. The six principles of Empirical Process Control, Self-Organization, Time-Boxing, Value-Based Prioritization, Iterative Development, and Collaboration.
Courage? What? Got it? Are we reading a self-help book? It honestly sounds like a pile of abstract fluff. Rather than read empty words, let's discuss real concrete, foundational concepts that will determine the your grasp of Agile Scrum and the success of your project management process.
The foundational concepts include:
- Single Source of Truth
- Product-based Organization
- Cross-functional Teams
- Incremental Delivery
- Definition of Done
- Backlog Refinement
Single Source of Truth
The Product Backlog serves as the single source of truth for all the work that needs to be done on the product. It is a dynamic list maintained by the Product Owner, ensuring that all team members and stakeholders have a clear and unified understanding of priorities, requirements, and upcoming tasks. Each and every issue should have it's own sub-set of requirements to specially satisfy for that issue to be complete.
- Product Backlog: The Product Backlog is regularly refined and updated to reflect the latest requirements, feedback, and priorities. All team members refer to this single source to understand what needs to be done and in what order.
- JIRA/Confluence: Tools like JIRA and Confluence can serve as centralized repositories where all documentation, user stories, and project artifacts are stored and accessed by the team.
Product-Based Development
Product-based development focuses on delivering value through a clear product vision and roadmap. The product is the center of the universe that all work is organized around where the product backlog becomes the "single source of truth" for the team and product. The Product Owner ensures that the development efforts are aligned with the product goals and market needs, emphasizing the continuous delivery of valuable increments to the product.
- Product Roadmap: A clear product roadmap is created and maintained, outlining the high-level goals, features, and timeline for the product’s development.
- Incremental Delivery: Each Sprint aims to deliver a potentially shippable product increment, ensuring that value is continuously added to the product.
Cross-Functional Teams
Cross-functional teams are composed of members with diverse skills and expertise necessary to complete the work. In Scrum, the Development Team is cross-functional, meaning they have all the skills needed to deliver a potentially releasable Increment at the end of each Sprint. This promotes collaboration, flexibility, and faster problem-solving. In practice, cross-functional teams demonstrate:
- Skill Diversity: Teams are composed of members with different skills such as developers, testers, designers, and business analysts, allowing them to handle all aspects of the work within the team.
- Collaborative Work: Team members collaborate closely, often working in pairs or small groups to tackle complex tasks and share knowledge, which enhances team capability and flexibility.
Incremental Delivery
Incremental delivery focuses on delivering small, usable pieces of the product regularly. Each Sprint produces a potentially shippable Increment, ensuring continuous delivery of value to the customer and allowing for regular feedback and adjustment. In practice, incremental delivery happens through:
- Sprint Increments: At the end of each Sprint, the team delivers a potentially shippable Increment, which is a complete and usable piece of the product.
- Feedback Loops: Regular delivery of increments allows for frequent feedback from stakeholders and users, enabling the team to make necessary adjustments and improve the product continuously.
- Risk Mitigation: By delivering in increments, the team can identify and address issues early, reducing the risk of major failures and ensuring steady progress.
Definition of Done (DoD)
The Definition of Done is a shared understanding of what it means for work to be considered complete. This includes specific criteria that ensure quality and completeness, such as coding standards, testing, documentation, and acceptance criteria. The DoD ensures that every Increment is potentially shippable and meets the team's quality standards. In practice, the "definition of done" is enforced through:
- Agreed Criteria: The team defines the DoD criteria collaboratively, ensuring everyone understands and agrees on what constitutes completion. This includes passing all tests, meeting coding standards, and completing documentation.
- Checklist for Completion: A checklist or set of acceptance criteria is used for each user story or task to ensure all aspects of the DoD are met before marking it as done.
- Consistency and Quality: The DoD is applied consistently across all work items, ensuring that every Increment delivered is of high quality and ready for release.
Backlog Refinement (Grooming)
Backlog Refinement (formerly known as Grooming) is an ongoing process where the Product Owner and the Development Team collaborate to ensure that the Product Backlog is up-to-date and ready for Sprint Planning. This includes breaking down large items, estimating, and prioritizing. In practice, refinement happens through:
- Regular Meetings: The Product Owner and Development Team hold regular backlog refinement sessions to discuss and update the Product Backlog. These sessions can happen once or twice a week.
- Breaking Down Large Items: Larger user stories or epics are broken down into smaller, manageable tasks that can be completed within a Sprint.
- Estimating: The team discusses and estimates the effort required for each item using techniques like Planning Poker to ensure a shared understanding of the work involved.
- Prioritizing: The Product Owner prioritizes backlog items based on business value, feedback, and team input to ensure the most valuable items are worked on first.
These concepts are fundamental to ensuring that Agile Scrum teams can efficiently manage their work, stay aligned with product goals, leverage diverse skills, deliver high-quality products incrementally, maintain consistent quality through a clear Definition of Done, and keep the Product Backlog well-refined and ready for upcoming Sprints.