Agile Development from a Product Management Perspective Scott Cressman Technical Product Manager, Sophos
Agenda How Sophos Vancouver works The Retrospective Conclusion Q & A
How Sophos Vancouver Works
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
Dividing up the Product Management duties
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 Get everyone on board PRD & Project framework Frequent updates
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 Micro-managing Require accountability Provide direction Be reasonable
Iterations Communicating business events Gets team emotionally invested Subconscious prioritization, sense of urgency
Iterations Fixed-length iterations Base on story size Don’t be afraid to mix it up
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
Testing Automating tests Over 60% of tests are automated Makes releasing easier & faster
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 Estimation improvement Requires deliberate effort Accountability is key
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
Releasing Release criteria Know when you’re done Gut feel is still a valid metric!
The Retrospective Release Planning Iterations Acceptance Testing Communicating Externally Estimation Releasing [ Retrospectives ] Loose Ends
Retrospectives Weigh the importance of results Avoid navel gazing
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 Poster A.D.D Less is more! Make content useful and relevant Regular audits are necessary
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!
Conclusion
Q & A