Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

133
Demystifying operational features for scrum masters and product owners Agile Cambridge – 1st October 2015 #AgileCam Rob Thatcher & Matthew Skelton

Transcript of Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Page 1: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Demystifying operational featuresfor scrum masters and product owners

Agile Cambridge – 1st October 2015#AgileCam

Rob Thatcher & Matthew Skelton

Page 2: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

“Operational Features”

how to develop and test

prioritisation techniques

Page 3: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

availability is the best feature

Page 4: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Operational Features

Page 5: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

“the properties of a system which make it work well in

Production”

Page 6: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Not PIMP MY RIDE

MORE

Greasy Mechanic

Page 7: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Not PIMP MY RIDE

MORE

Greasy Mechanic

Page 8: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Terminology

Page 9: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

what happened to NFRs?(non-functional requirements)

Page 10: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Non-Functional Functional

Page 11: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

language impact

Page 12: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

non-starternon compos mentis

non-compete

Page 13: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

nonsense !

Page 14: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 15: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

holistic product view

Page 16: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

How did we get to this?

Page 17: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

admission: IT folk have been guilty of making operational

features quite scary & mysterious

Page 18: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 19: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

long lists of requirementscrazy test plans

Page 20: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

poor explanation of needsfailure to engage stakeholders

gold-plating

Page 21: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 22: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

de-mystify operational features

Page 23: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

better approach

pragmatic and effective

rapid, safe, valuable

Page 24: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

“the properties of a system which make it work well in

Production”

Page 25: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Why value Operational Features?

Page 26: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 27: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

downtime:

$$$reputation

($$)

Page 28: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 29: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

non-linear increase in complexity and problems

Page 30: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Internet of Things

Page 31: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

we can no longer deal manually with the scale/volume

of potential problems

Page 32: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 33: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

agility and response to incidents

Page 34: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 35: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

remote car hacking:

security as an operational feature

Page 36: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

HA + DR + Backup + Metrics + Diagnostics + …

Page 37: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 38: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

think:"when it fails, how will we recover?“

it will fail

Page 39: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

How do we develop and test Operational Features?

Page 40: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

defined features

testable and measurable

Page 41: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 42: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

ahead lie the ‘ilities’...

Page 43: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

1. What2. How to test

Page 44: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Operational Hooks

Page 45: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 46: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Deployment Pipeline

Page 47: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 48: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Configurability

Page 49: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 50: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

re-read config (SIGHUP)

text files in version control

inject settings – no ‘black boxes’

Page 51: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 52: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

toggle features via config

“Postcode lookup unavailable”

better UX

Page 53: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Deployability

Page 54: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 55: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

immutable artefacts

concurrent releases (SxS)

symlinks

Page 56: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

rapid

scriptable

simple failure modes

Page 57: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Maintainability

Page 58: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 59: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

holding page as MVP!

Page 60: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

live system component diagrams

Page 61: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

modularity

ability to upgrade

version numbering (SemVer?)

Page 62: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

BasketItemAdded

grep BasketItem

Page 63: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

logging for insights

Page 64: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 65: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Testability

Page 66: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 67: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

every component has a /health endpoint

Page 68: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

stubbed/mocked/faked endpoints

test things individually

Page 69: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Recoverability

Page 70: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

asynchronous service start

expect services to be erroring

logs are not wiped (rotated: okay)

avoid flooding logs

Page 71: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 72: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

no nasty zombies after failures

MTTR more important than MTBF** for most kinds of F

Page 73: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Performance

Page 74: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 75: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

run key 'hotspot' areas early

use a deployment pipeline

‘critical path’

Page 76: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 77: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

early pipeline tests act as a barometer for later

performance problems

Page 78: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 79: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

derive transit time metrics

Page 80: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Monitorability

Page 81: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 82: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

stream of metrics

transaction tracing

Page 83: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Resilience

Page 84: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 85: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Saboteur for network failure testing

deployment pipeline

Page 86: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

assume missing or failing

Chaos Monkey

don’t crash on HTTP 503

Page 87: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Scalability

Page 88: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 89: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

concurrent workers

queues and bottlenecks

throttling is your friend

Page 90: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 91: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Security and ‘securability’

Page 92: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 93: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

securability by practice

SSL certs & HEARTBLEED

Page 94: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Gauntlt

deployment pipeline

Page 95: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

# nmap-simple.attack

Feature: simple nmap attack to check for open ports

Background:

Given "nmap" is installed

And the following profile:

| name | value |

| hostname | example.com |

Scenario: Check standard web ports

When I launch an "nmap" attack with:

"""

nmap -F <hostname>

"""

Then the output should match /80.tcp\s+open/

Then the output should not match:

"""

25\/tcp\s+open

"""

Page 96: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Availability

Page 97: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 98: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

“available but unusable"

synthetic transactions

Page 99: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

special HTTP header: trigger additional metrics/reporting

Page 100: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

How the organisation affects Operational Features

Page 101: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Budgets

Page 102: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

bonuses:

story points delivered

tickets closed

Page 103: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Capex vs Opextax breaks

Page 104: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

avoiding the Capex/Opex evil

Page 105: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Developers seen as more valuable than Ops people

3x hiring bonus for Devs (!)

Page 106: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

improved awareness in product teams

Page 107: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 108: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

share ownership and decision making

Page 109: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

features

end-user

operationalend-user

Page 110: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

single product backlog

Page 111: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 112: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Product Owner on call for incidents

Page 113: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

tricky!

high degree of maturity

honesty about the product

Page 114: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Product Owner and Tech Lead are both on the hook for

outages

Page 115: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

AVOID

Product Owner for ‘user features’ and Tech Lead for

‘operational features’

Page 116: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

How to evaluate Operational Features vs User Features

Page 117: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

treat Ops team folk as another user persona

Page 118: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 119: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

alternatives to User Stories?

Page 120: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

NOT:

"as a logging subsystem, I want..."

Page 121: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Metrics

Page 122: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Live: downtime, A/B for operational aspects (speed)

Pre-live: time spent re-deploying

Page 123: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Metrics for better conversations

Page 124: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

metric-ify your delivery and test infrastructure

99.99% uptime, but 20 redeployments every time

Page 125: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher
Page 126: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Heuristics for operational features

30% of total product budget

30% of dev team time

Page 127: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

holistic product view

Page 128: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

MVP: ‘service unavailable’ page

Page 129: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

test early for operational features

using a deployment pipeline

Page 130: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

single product backlog:

(user) features +

(operational) features

Page 131: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

availability is the best feature

Page 132: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

Books!

operabilitybook.comoperationalfeatures.com

Page 133: Demystifying Operational Features for Product Owners - AgileCam - SkeltonThatcher

thank you

http://skeltonthatcher.com/[email protected]

@SkeltonThatcher

+44 (0)20 8242 4103