Agile Development from a Product Management Perspective Scott Cressman Technical Product Manager, Sophos
Dec 22, 2015
Agile Development from a Product Management Perspective
Scott CressmanTechnical Product Manager, Sophos
History
Converted to eXtreme Programming in 2005
Senior-level champion was important
Disruptive, but turned things around
Continuously evolving processes
Today
Relatively mature processes
Still different among teams
Affected by project & program
management requirements
Still evolving…
XP Processes
Release planning
Iterations
Stand-ups
Pair programming
Retrospectives
Test driven development
Story test driven development
Project Framework
Translation layer
High-level Project Management
XP happens underneath on the day-to-day level
The Retrospective
[ Release Planning ]
Iterations
Acceptance
Testing
Communicating Externally
Estimation
Releasing
Retrospectives
Loose Ends
Release Planning
Management tests
Not “SMART” enough
Business-related goals
often out of team’s control
Release Planning
Release planning without the entire
team
Everyone not on board
Different levels of understanding
Release Planning
Customer doing QA’s job
Overloads the customer
Turns QA into robots
Behaviour driven development
Release Planning
Thorough story preparation
Spirit of a story
Mockups
Consideration of a story in the context of the
release
Release Planning
Internal releases
Communicates progress
Communicates quality
Gather feedback with time to
react
Release Planning
Re-release planning
Use yesterday’s weather
Do at least once in a project
Do when the landscape
changes
The Retrospective
Release Planning
[ Iterations ]
Acceptance
Testing
Communicating Externally
Estimation
Releasing
Retrospectives
Loose Ends
Iterations
“Linear” Development
Ideal, but not realistic
You can’t know what
you don’t know
Communicate well
instead
Iterations
Communicating business events
Gets team emotionally invested
Subconscious prioritization,
sense of urgency
The Retrospective
Release Planning
Iterations
[ Acceptance ]
Testing
Communicating Externally
Estimation
Releasing
Retrospectives
Loose Ends
Acceptance
Strict acceptance expectations
Collective agreement on
requirements
Be consistent
Be firm!
Acceptance
Spend time accepting test cases
Story expectation transfer
Test brainstorming
Decreases subsequent “thrash”
The Retrospective
Release Planning
Iterations
Acceptance
[ Testing ]
Communicating Externally
Estimation
Releasing
Retrospectives
Loose Ends
Testing
Dev & QA Pairing
Breaks down the fence
Decreases “thrash”
Whole greater than the sum
of its parts
Testing
Keeping nightly “A8N” green
Infrastructure is fragile
Sloppy check-ins
Changed the definition of
“green” to be 95% passing
The Retrospective
Release Planning
Iterations
Acceptance
Testing
[ Communicating Externally ]
Estimation
Releasing
Retrospectives
Loose Ends
Communicating externally
Translating to the rest of the
organization
Completely agile
organizations do not exist
Translate to non-agile
departments
Communicating externally
Constant & honest
communication
Frequent updates
Honesty – they will find out
the truth eventually!
The Retrospective
Release Planning
Iterations
Acceptance
Testing
Communicating Externally
[ Estimation ]
Releasing
Retrospectives
Loose Ends
Estimation
“NUTs” (AKA story points)
Standardize definition of a
story point
Decrease chance of
misunderstandings
The Retrospective
Release Planning
Iterations
Acceptance
Testing
Communicating Externally
Estimation
[ Releasing ]
Retrospectives
Loose Ends
The Retrospective
Release Planning
Iterations
Acceptance
Testing
Communicating Externally
Estimation
Releasing
[ Retrospectives ]
Loose Ends
The Retrospective
Release Planning
Iterations
Acceptance
Testing
Communicating Externally
Estimation
Releasing
Retrospectives
[ Loose Ends ]
Loose ends
Standardization across teams
Teams naturally tend to
grow apart
Deliberate communication
can offset this
Loose ends
Lack of domain knowledge on
team
Ignorance not OK just because
you have a domain expert
Should keep up on industry
Team needs to take an interest!
Loose ends
Implementing strong process
Agile ≠ no process!
Promote positive
behaviours
Change when appropriate
Loose ends
Addressing tech debt
Happens, but isn’t generally
planned
Continue to build up tech
debt
Hasn’t hurt us…yet
Loose ends
Managing by metrics
Ensure metrics will promote
desired behaviours
Ensure they are actionable
Loose ends
Tools to support agile process
No tools have done exactly
what we wanted
Should provide complete
visibility
Any suggestions?
Loose ends
Remove disruptive team members
Get the wrong people off the bus
Tough, but necessary
Don’t be afraid!