-
Sprints
-
PO's role in Scrum Meetings
- ttend and actively participate in the Sprint Planning Meeting
-
PO comes to the Sprint Planning meeting with a Product Backlog that is well prepared
- with items at the upper part of the Product Backlog that are clearly thought through
- provide sufficient detail for the team to be able to make a commitment for the Sprint
-
Teach that the Daily Scrum Meeting is the development team’s meeting
- Teach that the Product Owner may attend the Daily Scrum Meeting only at the invitation of the team, and may not interfere
- not intended as an update for the Product Owner
-
Product Owner and Development Team collaborate during the Sprint
- PO should be fully available to answer questions and clarify details that the development team requires in order to deliver their commitment
- PO should not disrupt or interfere with the development team
- the Sprint Commitment does not change, and that the Product Owner should not attempt to introduce new or changed items during the Sprint
- in the event of a significant change in circumstances, the Product Owner may choose to terminate the Sprint and ask the Development Team to begin a new one
- if the Product Owner identifies new requirements during the Sprint, they should be placed on the Product Backlog to be worked on in a future Sprint
- Product Owner and development team should together decide the Sprint length
- once the Sprint begins, its duration is never extended
- Sprint commitment does not equal a guarantee
- Understand what team commitment means
- Understand why Sprints are timeboxed and protected
- Understand the concept of sustainable pace
-
Scrum Basics
-
Scrum Framework
- Roles: Scrum Master, PO, Team
-
Backlog
- List of product features
- Detailed appropriately
- Emergent
- Sized
- Prioritized
-
Sprint
- Four meetings
- Two inspect and adapt cycles
-
Outcome
- Potentially Shippable Product Increment
- Timeboxed
- Protected from any changes
- Max duration is a calendar month
- Mandatory, cannot be compromised
-
Definition of Done
-
Criteria the PSPI must fulfill at the end of a Sprint
- Thoroughly tested
- Free of defects
- Refactored
- Adequately documented
- "shippable"
-
Iterative-incremental software development principles
- Implemented in the form of vertical slices
- each "slice" provides value
- Each increment extends the previous increment
-
Empirical process control
- Transparency
- Inspect for cause
- Adapt to identify improvement measures
- Scrum does not prescribe HOW the team works
- Lack of sophisticated reporting as a consequence
-
Scrum Culture
- Collaboration
- Enjoy work
- Create software that benefits users and customers
-
Values
- Agile Manifesto
-
Scrum Values
- Commitment
- Focus
- Openness
- Respect
- Courage
-
Product Owner Role
-
Establish High Level Vision and Goals
- What the project will create
- For whom
- why
- Establish the budget for the development work
-
Creating the backlog
-
Prioritized
- Value
- Size
- Risk
- Other relevant considerations
-
Part of team
-
Provides team context/detail team requires to deliver features/functionality
- necessary for team to make commitment
- motivates team
- Provides whatever input/assistance the team requests
-
Engaged with the team throughout the Sorint
- Provides input/assistance as required
- but does not disrupt or interfere
-
inspects features/functionality each Sprint Review
- Identifies ways to improve business value
-
looks for insights about opportunities, constraints, risks...
- Evolves Product backlog from Sprint to Sprint
-
Decides when to release to the market/customer
-
Maintains clear release criteria
- Release Date
- and/or Release Scope
-
Communicates via Release Burndown
- Shared with stakeholders/team
-
Not permitted to disrupt team or change commitment
-
Except in event of major change in circumstances
- May terminate Sprint and plan new one
- Optimizes ROI of the product
- Manages stakeholders
- Individual, Not a committee
-
Role typically played by customer or customer representative
- such as Product Manager
-
Scrum Master Role
- Enable high performing teams
-
Change agent
- Remove Waste
- Product business value early and often
-
Teaches Scrum
- To the team
- PO
- Others in the organization
- Chief Impediment Remover
-
Enables team to deliver high-quality PSPI each Sprint
- Helps the team remove obstacles and impediments
- Protects the team from disruption
- Coaches team on their practices
-
Facilitates interactions as needed
- Team
- PO
-
Team
- 7 +/- 2
- 100% dedicated to the Sprint
- Should sit together
- Self-organized, empowered to decide how much work to pull into a Sprint
- Collectively responsible for achieving the Sprint Goal and meeting the commitment
-
Self-disciplined
- Responsible for working diligently to produce high-quality, potentially shippable functionality each Sprint
- Works without sacrificing a sustainable pace of work
- Works without sacrificing long-term quality of work delivered
- Scales by having multiple teams (organized of teams of teams) rather than large teams
- Teams include all the skills necessary to produce a high-quality increment of potentially shippable product
- Not constrained in work they may do by their prior role designation (coder, tester, etc)
-
No Project Manager and No Agile Product Manager
- Scrum addresses the prior responsibilities of the Project MAnager through the Roles of Product Owner, Scrum Master and Team
- A delegation of responsibilities (for example, from PO to PM or Agile Product Manager) will introduce risk, dysfunction, and waste
-
Vision
-
Importance of Vision
- Shared goal: product vision describes the common goal; it aligns the Scrum team members and stakeholders pulling everyone in the same direction.
- vision should state the customers and users of the software, the needs addressed, and the most important product attributes. It may also compare the product to existing ones and state the revenue model.
-
Desirable qualities of Vision
- Shared
- Broad and engaging
- Concise: captured on 1 or 2 flipcharts
-
How to shape a Vision
-
Techniques
- Vision box, elevator statement, press release, magazine review, one page data sheet, personas and scenarios, Kano Model
-
Just enough prep work
- The upfront work in Scrum to create a product vision should be minimized; just enough work to create a vision that gels the team and creates forward momentum
-
Potential dangers
- Rushing into the project without an overall goal
- procrastinating the project and being trapped in analysis- paralysis
- different products and domains require a different amount of prep work
- Avoid fallacy of trying to predict the future
-
Relationship between Vision and Product Roadmap
- As the product matures and incremental updates are released, the visioning effort usually declines. New product versions still need to have goals to align the Scrum team and stakeholders. Visioning now forms part of creating and updating the product roadmap.
- A product roadmap is a planning artifact that shows how the product is likely to evolve across releases and product versions, facilitating a dialogue between the Scrum team and the stakeholders.
-
Estimating (Sizing)
-
Different estimation levels
-
Product Backlog
- Story Points (or hours)
- ideal days
-
Tasks
- hours
-
Purpose of estimating
-
Product Backlog
- The product backlog estimates enable the product owner to prioritize work and the Scrum team to determine the effort remaining to deliver the release thereby tracking the progress and creating a release plan
-
Tasks
- task estimates help the team to pull the right number of product backlog items into the sprint allowing the team to make a realistic commitment.
-
Accuracy vs precision
- an accurate estimate may be useful even if its precision is less
than the product owner would like
- an inaccurate (but precise) estimate is of no use
- estimates in Scrum are team estimates and should not include any
assumptions abut who is going to implement a product backlog items or sign up for a task
-
Size vs duration
- the team should estimate the size of the effort and then velocity should be used to empirically determine the duration. Size and duration can independently
-
Impact of pressuring teams
- team members will provide low estimates when forced and won’t finish the work within that time
- excessive time pressure leads to cutting quality (which comes back to hurt the project later), low morale, and loss of creativity
-
Estimating vs committing
- estimate is a prediction of the future and always includes some amount of uncertainty
- a commitment is based on an estimate, which must be created first
- implications of equating estimating with committing
-
Product Backlog
-
What it is/is not
- The product backlog is a list of requirements and other deliverables necessary to turn the vision into a successful product. The product backlog must must be Detailed appropriately, Estimated, Emergent, and Prioritized (DEEP)
- not a substitute for a requirements specification
- evolves and changes constantly; many of its items are coarse-grained and sketchy to start with; they are then progressively decomposed and refined
- emphasis shifts from documentation to conversation, from specifying requirements to having an ongoing dialogue
-
product backlog can have different forms and shapes
- a collection of paper cards or be held electronically as a spreadsheet or in a specialized tool
- can be flat or structured employing several columns and grouping items into themes, for instance
-
can be augmented as appropriate with other artifacts
- Spreadsheet showing business rules
- Visio diagram showing a workflow
- user interface prototype or mockup
- only used when necessary and kept as light as possible
-
Product Backlog Refining (Grooming)
- Steps to groom the product backlog such as discovering new requirements, and updating or removing existing ones; prioritizing the backlog; preparing high-priority items for the next sprint planning meeting; estimating items.
- approaches to stocking the product backlog and determining the release scope such as deriving the contents from the product vision
- just-enough requirements are identified and described just in time according to their priority throughout the entire project
- grooming the product backlog is a collaborative effort shared by all Scrum team members
- the product owner leads the efforts
- members can spend up to 10% of their time on grooming
- often involves customers and users and other stakeholders including marketing and sales
- high-priority items to be worked on in the next sprint must be small enough to be fully transformed into a product increment. They should also be clear and testable.
- Share at least one technique suitable to capture product backlog items, for instance, user stories
- Share how non-functional requirements can be dealt with in the product backlog
-
Prioritizing
-
Importance/benefits of prioritizing the Product Backlog
- it is important to prioritize the backlog because the team is expected to work in approximately priority order
- because it is impossible to perfectly predict a schedule and the contents of a release, there is always the chance that a product will need to be shipped sooner than planned or with fewer features
- a prioritized product backlog enables the team to maximize the delivery of value to the customer over a given period of time
-
prioritizing a product backlog involves both determining what product backlog items will be planned to be in the upcoming release and the general sequence in which they will be built
- The sequence should be more approximate the further out in time the features are
-
Implications of saying everything is mandatory
- it is important to prioritize work even on a fixed-scope project for which all features are mandatory
-
since not all work can be done simultaneously, even a fixed-scope project will still benefit from prioritizing work at the start of each sprint
- even though all features may be considered mandatory, some features should be developed sooner so that they can be shown earlier to users for feedback
- even though a team plans and commits to deliver all features on a fixed-scope project, that does not always happen: Project schedules are sometimes shortened, teams make mistakes, and so on.
-
Who has input to prioritization decisions
- it is important for the product owner to incorporate the opinions of many diverse stakeholders
- opinions about priorities should be sought from users, customers and other business-side stakeholders, depending on the application
-
important to seek opinions about priorities from the developers
- Such developers are often in the best position to comment on risk and changes over time in the relative cost of product backlog items
-
Prioritization based on multiple factors
- desirability of the few features or capability
- amount of learning that will be created by working on the feature
- extent to which risk is reduced by developing the feature
- any changes in the relative cost of the feature over time
-
Formal approaches
-
Teach at three options
-
Non-financial
- Moscow
- Relative weighting
- theme screening
- Imact estimation
- theme scoring
-
Financial
- NPV
- ROI
- Discounted payback period
- economic value added
- Many techniques, there are limitations of formal approaches and specific approaches applied
-
Giving latitude to teams adjusting sequence of work
- team should generally be given some latitude in sequencing work into sprints
- many reasons for working slightly out of order
- An effective product owner is aware of these situations and works with the team to determine their appropriate application
-
Release Management
-
Understand the goals of Release Management
- Primary goal: is to bring the vision to life in the best possible way—to develop a product that benefits the customer/user and the organization creating it
- successful release management relies on an evolving and improving understanding of user or customer needs
-
release management consists of
- estimating product backlog items
- tracking the progress using release burndown charts
-
creating a release plan
- Release Plans are not a mandatory part of the Scrum Framework
-
Planning is Adaptive, iterative and collaborative
- planning takes place at different levels in Scrum: Product, release, sprint, and day
- release planning is spread throughout a project, not just early on
- Plans in Scrum are dynamic and change as more information about the customer needs and the product being developed becomes available
- release planning activities are carried out by the Scrum team often with the help of stakeholders
- product owner ensures that the necessary release management activities
-
Quality vs technical debt
- quality is defined in the definition of done. It is no longer a variable but fixed
- quality compromises lead to technical debt, the software becomes brittle and expensive to extend and maintain
- short release cycles and frequent software updates require high quality
-
software should be released early and frequently
- product increments should be released to target customers early and frequently instead of delivering the finished product in one go
- early and frequent releases allow incorporating feedback from customers and users, creating a product that meets the needs of its use
-
Velocity
- defined by the amount of effort earned by the team per sprint
- only items delivered according to the definition of done contribute to the velocity
-
best observed / measured empirically
- usually requires running at least 2-3 sprints unless the team has worked together on the previous product version
-
can help the team optimize its velocity
- by ensuring that high-priority product backlog items are clear, feasible and testable
- by jointly detailing high-priority items
- by answering questions in timely manner
-
Release Burndown/ burnup
-
simple report that creates transparency about the project progress relating time and the effort remaining in the product backlog
- allows the Scrum team and stakeholders to understand how the project is doing
-
release burndown chart looks at the past sprints and projects their velocity into the future
- allows the Scrum team to make informed decision about managing functionality, time and cost
- updated at the end of each sprint when the remaining effort in the product backlog and the velocity are known
- no substitute for attending the sprint review meeting to fully understand the project progress and for engaging in dialogue with the Scrum team.
-
Release Plan
- can help forecast the future
- release plan is a rough forecast, not a commitment and certainly no guarantee
- no substitute for a project plan; it contains less detail and is updated in each sprint
- A traditional project plan no longer exists in Scrum
-
What is it
- a release plan is based on the amount of work remaining in the product backlog and the velocity
-
It looks ahead into the future forecasting delivery date, cost and functionality by anticipating
- velocity of the remaining sprints
- dependencies to partners and suppliers
- any releases such as alpha and beta releases