50
Agile Development from a Product Management Perspective Scott Cressman Technical Product Manager, Sophos

Agile Development from a Product Management Perspective Scott Cressman Technical Product Manager, Sophos

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Agile Development from a Product Management Perspective

Scott CressmanTechnical 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

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

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