How do you know when something is actually finished? In digital product development, this has become increasingly difficult
When an item that comes from the Product Backlog eventually gets moved to “Done” - what does this mean?
The definition of done tries to make sure that everyone in the team has a shared understanding of what “Done” means, improve transparency and to enable the team to decide if work has actually been completed.
The definition of done will evolve or expand depending on how mature the team is and the team improving their criteria to improve the quality of the product.
Examples of what items may make up the definition of done could include
The code has been peer-reviewed
The code has been deployed to test environment
The feature has been tested against acceptance criteria
The feature has passed regression testing
The feature has passed smoke testing
If required, documentation has been done
The feature has been checked by the UX designer
The PO is happy with what has been developed and demoed
Essentially, if a product backlog item does not pass the definition of done, it should not be in the done column
Some teams who run more of a hypothesis development backlog may even add items to their definition of done including
Is the feature doing what we predicted with live users
Is the data we are recording from users backing up our hypothesis
If the feature on the production environment is not doing performing as predicted, the team may consider it not done and there for more work has to be done to get the desired results.
This is a simple framework to structure the sprint planning session and allows for the team to tailor based on their implemented techniques
Essential Items
The Product Development Team
The PO
The SM
Snacks
Tea / Hot Chocolate
Sometimes you might need to have other members for a particular issue e.g. interacting with another team. For this case, you can invite them to the start of the planning and discuss their tickets first.
Structure
PO Update
Definition of Done (D.O.D)
Velocity
Proposed Sprint Backlog
Sprint Goal
PO Update
This is the kickoff for the meeting and starts with the PO setting the scene.
10 mins max
Feedback from stakeholders - e.g. How the product is doing, discussions with them, support issues
Updates on the roadmap if anything has changed or how we are doing
Whishes and desires for this sprint - This is a big hint and useful to give ideas about the sprint goal
Allow members of the product development team to ask any questions around the bigger picture or the product, vision etc
Definition of Done (D.O.D)
This section is used to clarify with the team exactly what they consider done to be. It is important to discuss what done means as if it changes it might affect how much work the team can bring into the sprint. I normally do this by asking each team member what items are on the D.O.D list until they agree all items have been listed.
The result is the whole team (Product Owner, Product Development Team and Scrum Master) all agree on what done is so when tickets are moved to the done column, everyone knows what this means.
Velocity
The goal of this section is to agree roughly on how much the team can commit to and normally follows this format
Close the current sprint in front of the team so they see items completed and leftovers and the burndown.
If there are a lot of issues left over or the burndown didn't get close to 0, you can spend a couple of mins talking about this - It can be a sign that the velocity the team committed to in the previous sprint was too much.
Open up the velocity chart so the whole team can see the teams velocity
Calculate an average from the last few sprints - 3 is normally enough
Check for holidays, training or other events that may take members away from the sprint as a result, the velocity needs to be adjusted
Agree on an estimated number of story points to aim for the sprint being currently planned
The number to aim for is just a guide and can be used as a reference when considering the proposed sprint backlog.
The outcome of this section is to have a rough number for looking at the proposed sprint backlog.
Proposed Sprint Backlog
The first part of this section involves
Identifying the leftovers from the last sprint
The PO and the team deciding if the leftover item should be added into the next sprint and if so,
Estimating again the amount of effort and adding the issue into the sprint by dragging the item from the backlog into the proposed sprint backlog
After all the leftovers have been discussed, the next section is to look at the top of the backlog that is ready for planning and for each
PO read the story out loud to other members of the team
Any assumptions?
Any dependencies?
Check the acceptance criteria, if there is none, write it there and then with the team.
Allow the product development team to discuss how to implement the item
Discuss the issue
Ask the question “Does everyone understand the issue, does anyone have any questions”
If the issue has not been estimated - estimate the issue
If the issue has already been estimated, estimate again if there has been substantial discussion around how the implementation will work or confirm the team are happy with the current estimate.
After the issue has been discussed, the PO can drag the issue into the proposed sprint backlog. This process will carry on until the number of story points roughly matches the amount discussed during the velocity section.
Commitment (Now called Forcast)
When the proposed sprint backlog is full, the team and the PO need to take a moment to consider what has been added. If the PO wants to add more then they need to negotiate with the team either by removing some items already added or if the team feel comfortable to take on more.
During this time its useful to
Make sure the highest priorities are at the top of the sprint backlog
Encourage the team to think about their plan of attack for the sprint and allow them to discuss it.
Make this visual so the entire team is looking and viewing the proposed sprint backlog
Allow them to focus in silence if need be, ask prompting questions “How do you feel about this” - challenges are ok!
Once agreed, the final thing left is the Sprint Goal
Sprint Goal
The idea of the sprint goal is to provide focus to the team during the sprint and act as a constant reminder about what they are working towards.
The initial idea of a sprint goal comes from the PO update however the sprint goal should come from the team itself using a consensus-driven approach.
Once a goal has been decided by the team, to double check if the goal is realistic, the team can vote on how they feel about it by simply raising a hand and
Thumbs up for its a good and achievable sprint goal
Thumbs halfway - not sure or a bit nervous that the goal is more of a stretched goal
Thumbs down - Sprint goal is too difficult or ridiculous - in this case, the team should revisit the sprint goal and then vote again.
Print the goal, stick it on the wall, GO GO GO!
Remember, Scrum is just one many frameworks under the Agile umbrella
Key Facts / Findings
A quick summary of a few findings from the report
Reasons For Adopting Agile
Accelerated software delivery
Enhanced ability to manage changing priorities
Increase productivity
Benefits of Agile
Ability to manage changing priorities
Project visibility
Business / IT Alignment
Agile Methodologies Used
56% Scrum
14% “Hybrid”
1% XP
Agile Techniques
Daily Scrum
Iteration planning
Retrospectives
Engineering Practices
Unit testing
Coding Stadnards
CI
Refactoring
How Success is Measured
Customer satisfaction / User Satisfaction
Business value delivered
Velocity
Challenges Adopting and Scaling
Organisational culture
Organisational resistance to change
Lack of management support and sponsorship
A pretty good self-training series covering the Scrum ceremonies and backlog refinement with a few quizzes
Start of Sprint |
End of Sprint |
Tech Sharing |
Monday | Tuesday | Wednesday | Thursday | Friday | |
---|---|---|---|---|---|
Week 1 | 9:30 - 9:45 am Daily Scrum | 10:00 - 11:30 am Sprint Review 2:00 - 3:30 pm Sprint Retrospective | 10:00 am - 2:00 pm Sprint Planning | 9:30 - 9:45 am Daily Scrum | 9:30 - 9:45 am Daily Scrum |
Week 2 | 9:30 - 9:45 am Daily Scrum | 9:30 - 9:45 am Daily Scrum 10:00 - 12:00 pm Backlog Refinement | 9:30 - 9:45 am Daily Scrum | 9:30 - 9:45 am Daily Scrum 2:00 - 3:00 pm Tech Sharing | 9:30 - 9:45 am Daily Scrum |
Week 3 | 9:30 - 9:45 am Daily Scrum | 10:00 - 11:30 am Sprint Review 2:00 - 3:30 pm Sprint Retrospective | 10:00 am - 2:00 pm Sprint Planning | ||
Week 4 | 9:30 - 9:45 am Daily Scrum | 9:30 - 9:45 am Daily Scrum 10:00 - 12:00 pm Backlog Refinement | 9:30 - 9:45 am Daily Scrum | 9:30 - 9:45 am Daily Scrum 2:00 - 3:00 pm Tech Sharing | 9:30 - 9:45 am Daily Scrum |
Advantages
Avoids bank holidays
Avoids common work from home days e.g. Mondays and Fridays
Time after sprint review for POs to adjust backlog
Time after sprint review and retrospective for the product development team to tidy up loose ends before planning
Stakeholders want to know when something will be done!
Despite a moment towards thinking of software as an experiment, running hypothesis based experiments and having a position of humility when developing software, many organisations, stakeholders, teams and project managers still fall into traditional predictive approaches and as a result, they want to know the date of when something will be delivered.
Traditional vs Agile
In traditional project management approaches, the scope is fixed with a lot of planning up front and then resource management is used to try and deliver the scope within the time set.
There is lot’s of evidence this does not work e.g. Brooks law and that planning up front doesn't deliver value, soon enough hence the rise of Agile frameworks and that when working with knowledge work, big upfront planning is very hard to do.
So in Agile framework, the traditional triangle of constraints is turned upside down so that the scope is flexible but the resources and time are fixed which we can see through agile promoting small, stable and dedicated teams which are funded for longer periods.
Empirical Process Control
Scrum and other agile frameworks are built on empirical process control, basically, we look at what has happened in the past to predict the future and one of the ways Scrum uses empirical process control is a teams velocity.
Velocity
Most teams use relative estimation, for more details see: Relative Estimation using story points.
After sprint planning, the product development team have a sprint forecast or commitment which is the number of story points they think that they can deliver during the sprint.
Velocity will naturally fluctuate for various reasons such as holidays, sick leave, tasks more difficult than expected etc.
At the end of the sprint and after the review, items that are not done are returned to the top of the backlog for consideration for the next sprint.
In the diagram below you can see
Committed Story Points - the number of story points the team thought they could do for the sprint
Complete Story Points - the actual number of story points the team manage to get delivered.
So how does this work in predicting when something will be delivered?
Predicting the date
In order to predict “when something will be done” we need to know the following
Average sprint velocity - normally last 3 or 4 sprints
Estimates from the product backlog
Scope / Date
Average Velocity
To get the average velocity, most teams look at the last 3 sprints. From the diagram above we can see that the team did
Sprint 12: 175 SP
Sprint 13: 50 SP
Sprint 14: 15
So for the teams average velocity its 175 + 50 +15 / 3 = 80 SP
Some teams will look at more than 3 sprints or even seasonal variations when working out the average velocity for planning
Product Back Log (PBL)
Let’s presume that the team have already done some story mapping and created all the user stories required for a feature and we want to know when that feature is likely to go into production.
In the example below, we have created all the stories required for the new feature: Search Interface. We can see in the PBL below that there are a lot of stories for the feature with the total of 115 story points required to deliver the feature.
Two Planning Scenarios
There are 2 scenarios for planning
Fixed Date - here the only compromise is with scope
Fixed Scope - A date is predicted based on the product backlog estimates and teams velocity
Fixed Date
In this scanerio, we know
The date that something has to go live
The number of SP Required to deliver the new feature: Search Interface
The stakeholders have decided that the new search interface feature must go live on X date.
So we know that
The Search Interface feature requires 115 story points in total
The average velocity of the team is 80 story points in a 2-week sprint
In order to complete the work, we need at least 2 sprints
Luckily, the date given by stakeholders is after 3 sprints, so the team will probably be able to deliver the feature in time
However, what happens if the date given by stakeholders doesn't allow the team enough time based on the velocity and estimations given.
In the scenario, our estimates and team velocity mean we will not be able to deliver everything in the scope required in time.
Traditional Teams with a resource pool approach often try and add more people to the team if they end up in this scenario. This has been proven not to work and actually deliver the project or feature later. For more information look at Brooks Law
We know from the Agile triangle of constraints, that in a fixed date scenario, the only option here is to reduce the scope in order to try and deliver some of the features on time.
It has been proven from various Chaos Reports and studies that actually most features in software are not required or not used so a minimum viable product might be the solution here.
A Product Owner would have to go back to their backlog and work out what to prioritise based on what is not providing enough value and reduce the scope of the feature to deliver it based on the fixed date
Fixed Scope
In this scenario, we know
The number of SP Required to deliver the new feature: Search Interface
The stakeholders would like to know when this will go live
So we know that
The Search Interface feature requires 115 story points in total
The average velocity of the team is 80 story points in a 2-week sprint
In order to complete the work, we need at least 2 sprints
In this case, the Product Owner can communicate to stakeholders that it's estimated the team can deliver the Search Interface feature at the end of sprint 2.
Be careful about emerging requirements - often teams will estimate tasks initially and then when more refinement or planning is done, more requirements emerge which may mean the feature actually takes longer to deliver than initial thoughts. In the example above, a date in sprint 3 would allow some “wiggle” room
Some teams will fall into a nasty habit of trying to plan everything up front to try and predict the date successfully, however, this is very difficult and also considered a waste.
Industrial > Knowledge > Creative Work
Key Points
For Innovation
Autonomy
Mastery
Purpose
Management and Organisational Structure
Out of date
Organisation structure not suitable for the creative economy
3 useful Lean Concepts
Workers decide how to do the work
Focus on continuous improvement
View value from the customers perspective
Scrum
Lean + Complexity science
Builds on and incorporates Lean concepts
Small, high performing cross-functional teams
Incremental product development
Severt leadership role
Future
Lean Startup
LeanUX
Anti-fragile organisation structures
Evolutionary purpose
Wholeness
XP is another Agile Framework that focuses on producing higher quality software
Applicable
Don Wells defines XP as appropriate for use when
Working with dynamically changing software
There are risks with new technology
Working with small, co-located development teams
Technology being used supports automated unit and functional tests
XP Framework
The XP Framework has
Values
Practices
Roles
Lifecycle
Values
5 Values of XP
Communication - between one team member to everyone else, face to face discussions with the aid of a whiteboard
Simplicity - whats the simplest thing that will work to avoid waste
Feedback - Constant feedback helps identify areas for improvements, revise practices and helps with simple design
Courage - Courage to raise organisational issues, stop doing something that doesn't work and try something new, accept and act on feedback even if difficult to accept. Also applies to the XP practice of pair programming
Respect - required to communicate with each other, accept feedback and work together to identify simple design and solutions
Practices
The following are the original practices of XP
The Planning Game
Small Releases
Metaphor
Simple Design
Testing
Refactoring
Pair Programming
Collective Ownership
Continuous Integration
40-hour week
On-site Customer
Coding Standard
Second Edition Practices
Sit Together
Face to face communication, team sit together, remove barriers, osmotic communication
Whole Team
Functional group with all the skills for a product in a single team
Informative Workspace
Support face to face communication and allow people to have privacy
Energised Work
Knowledge work requires focus and no distractions. Physically and mentally able to focus.
Pair Programming
Software development when two people sitting at the same machine. Two brains and four eyes are better than one brain and two eyes and there is a continuous code review which reduces the feedback time.
Proven to
improve quality
Solve problems quicker
Creates less code to acomplish the same solution
Doesn't take twice as long
Stories
Describe what the product should do in terms meaningful for customers and users.
Weekly Cycle
A week-long software interation. The team meet on the first day and reflect on what has been done and plan for what to do for the next week with the goal of running tested features that realise the stories selected.
Quarterly Cycle
Similar to release planning. The customer provides the plan for the features desired in a quarter to provide the team with “a view of the forest whilst they are in the trees”
Slack
Adding of low priority tasks and stories into weekly and quarterly cycles that can be dropped if a team falls behind on more important tasks.
10 Minute Build
Automatically build the whole system and run all of the tests in less than 10 minutes. Encourages teams to automate the build process to run all tests. This is supported by continuous integration and test first development.
Continuous Integration
Code changes are immediately tested when added to a larger code base with the benefit of catching any integration issues sooner.
Most teams take the approach “If it hurts, avoid it as long as possible”. Practitioners of XP suggest “if it hurts, do it more often”.
Test-First Programming
Normal Path: develop code -> write tests -> run tests
Test-First Programming Path: Write failing automated test -> Run failing test -> develop code to make test pass -> run test -> repeat
Incremental Design
Do a little bit of work upfront to understand the wider breadth and go into specifics of the design when you deliver specific features. Refactoring has been integrated into the principle.
Roles
Customer
What should the system do - features
How do we know when the system is done - acceptance criteria
How much do we have to spend - funding and business case
What to do next - order to deliver features
Assumed to be a single person, however, in reality, this is often a group of individuals that are required to give the team all the business related information they require.
Developer
Everyone on the team except other defined roles is classed as a developer. A developer is responsible for realising the stories identified by the customer.
The Tracker
Some teams may have a tracker or it is a developer who fills this role. The role is to keep track of relevant metrics defined by the team as important to identify areas of improvement e.g velocity and changes to velocity
The Coach
Help apply, coach and mentor teams on XP.
Lifecycle
XP has a weekly and quarterly cycle.
First - the desired results of the project are described by having customers define a set of stories and for each story that's created, the team estimates the size of each story.
This size estimate, along with relative benefit as estimated by the customer can provide an indication of relative value which the customer can use to determine priority of the stories.
If the team identifies some stories that they are unable to estimate because they don’t understand all of the technical considerations involved, they can introduce a spike to do some focused research on that particular story or a common aspect of multiple stories. Spikes are short, time-boxed time frames set aside for the purposes of doing research on a particular aspect of the project. Spikes can occur before regular iterations start or alongside ongoing iterations.
Next, the entire team gets together to create a release plan that everyone feels is reasonable. This release plan is a first pass at what stories will be delivered in a particular quarter, or release. The stories delivered should be based on what value they provide and considerations about how various stories support each other.
Then the team launches into a series of weekly cycles. At the beginning of each weekly cycle, the team (including the customer) gets together to decide which stories will be realized during that week. The team then breaks those stories into tasks to be completed within that week.
At the end of the week, the team and customer review progress to date and the customer can decide whether the project should continue, or if sufficient value has been delivered.
Not using absolute units or time
Comparison or by grouping items of equivalent difficulty
Establish baselines from the product backlog
A way to explain agile planning and/or adoption
For Planning
Product Owners operating mainly from strategy down to iteration
Scrum Masters more in the day to day and iteration planning but supporting all layers
Product development team supporting all layers but mainly on the release, iteration and day.
Layers
Product, Portfolio, and Strategic planning
Product Owners looking further ahead than release planning to the evolution of the product
Portfolio Planning - selection of products that will best implement the vision decided by strategic planning
Roadmap
Where the product is going
Can be hypothesis driven or for validated learning
Can be used to gain consensus / facilitate stakeholders
Owned by the Product Owner
Few more details here https://hee-tis.atlassian.net/wiki/spaces/PS/blog/2019/01/18/1019248683/Roadmapping
Release
Consider new user stories or release of the product or system
Try and work out scope, schedule, resource
Normally there is a release plan, updated inline with the roadmap
CI/CD challenging this idea
Iteration Planning
Start of each iteration
Sprint planning
Product owner identify high priority work
Planning with the Product Development Team
Daily Planning
Inspect and adapt on a daily bassis
Often done with a daily Scrum
More complex Version
Simpler Version
Agile Mind Set
Basics of a roadmap
Owned by the Product Owner
Themes
Kept up to date
Simple
Actively collaborate with stakeholders
Based on product vision
Tools
A few of well-known road mapping tools
Prodpad
Roadmaps
Ideas
Customer feedback
Portfolio management
Jira integration
Unlimited viewer accounts
Export to PDF
Simple 3 column structure
99$ per month - 3 Admins
Roadmunk
Views / swimlanes
Jira integration
Planning view
Collaboration
Export to HTML, URL, PNG
Supports dates/details
Basic plan - $19 per month - limited to 1 user
Sharing only supported by the buiness plan - $49 per user per month
Jira - Next Gen Projects
Creates Epics in Jira
Doesn't really support themes
More like a Ghant chart
Able to filter by status
Able to share by link - would need to give users access?
Only available in next-gen Jira projects - limited workflows and scrum reporting
Trello
Free
Can do a 3 collum approach similar to prodpad
Permissions - Trello Business class - 9.99$ a month per user
Trell Business supports observer role - still can view comment and vote on cards but cannot move, edit or change settings
Exporting / sharing - Screenshot?
There are add ons e.g. https://elegantt.com/ #DeathToGanttCharts
Trello uses Trello for their own roadmap: