forget methodology. focus on what matters

142
forget methodology focus on what matters Jack Humphrey Keep Austin Agile March 21, 2014

Upload: jack-humphrey

Post on 28-May-2015

931 views

Category:

Technology


3 download

DESCRIPTION

Presentation given by Jack Humphrey (Engineering Director, Indeed) at Keep Austin Agile 2014. http://keepaustinagile2014.sched.org/event/7faaa9add53a23a59185a595bca50230#.UzCTx61dVt0 For more presentations from Keep Austin Agile 2014, see: http://2014conf.agileaustin.org/?q=presentations For more presentations from Indeed, see http://engineering.indeed.com/talks.

TRANSCRIPT

Page 1: Forget methodology. Focus on what matters

forget methodologyfocus on what matters

Jack HumphreyKeep Austin AgileMarch 21, 2014

Page 2: Forget methodology. Focus on what matters

JACKHUMPHREY

Page 3: Forget methodology. Focus on what matters

About Me

● I’ve been…● a software developer for 19 years,● a manager for 10 of those years,● at companies including:

○ Trilogy (3 years)○ Coremetrics (3 years)○ Google (5 years)○ Indeed (5 years and counting)

Page 4: Forget methodology. Focus on what matters

About Me

● I’ve worked on products like:○ a web content management system,○ enterprise software development frameworks,○ a large online data collection platform,○ features for online advertisers, and○ a few large-scale consumer web applications

Page 5: Forget methodology. Focus on what matters

I help people get jobs.

Page 6: Forget methodology. Focus on what matters

About IndeedMore job searches worldwide than any other employment website● Over 100 million unique users ● Over 3 billion searches/month● Over 24 million jobs● 50+ countries, 28 languages

Jun-07 Jun-08 Jun-09 Jun-10 Jun-11 Jun-12 Jun-13

Unique Visitors / Month

Page 7: Forget methodology. Focus on what matters

focus on what matters…

Page 8: Forget methodology. Focus on what matters

focus on what matters…SUCCESS

Page 9: Forget methodology. Focus on what matters

successfor software products

Page 10: Forget methodology. Focus on what matters

build a solution

Page 11: Forget methodology. Focus on what matters

build a solutionto a real problem

Page 12: Forget methodology. Focus on what matters

build a solutionto a real problem

that people want to use

Page 13: Forget methodology. Focus on what matters

build a solutionto a real problem

that (enough) people want to use

Page 14: Forget methodology. Focus on what matters

● Planning (what to do)● Process (how you do it)

Build a solution to a real problem…

Page 15: Forget methodology. Focus on what matters

● Timing● Pricing● Competition● Promotion● Quality● Random chance● etc.

… that enough people want to use.

Page 16: Forget methodology. Focus on what matters

We identified the problem, now where do we start?

Build a solution to a real problem…

Page 17: Forget methodology. Focus on what matters

STEP 1define success

Page 18: Forget methodology. Focus on what matters

STEP 1define success

Page 19: Forget methodology. Focus on what matters

STEP 1build a great team

Page 20: Forget methodology. Focus on what matters

talent+

passion

Page 21: Forget methodology. Focus on what matters

talent+

passion+

opportunity

Page 22: Forget methodology. Focus on what matters

STEP 2define success

Page 23: Forget methodology. Focus on what matters

What is the overall mission?

Page 24: Forget methodology. Focus on what matters

Does everyone understand it and agree?

What is the overall mission?

Page 25: Forget methodology. Focus on what matters

Does everyone understand it and agree?

Does project success line up with the mission?If not, then a) it’s not success, or b) wrong mission!

What is the overall mission?

Page 26: Forget methodology. Focus on what matters

● Not a subjective determination

Success should be quantifiable

Page 27: Forget methodology. Focus on what matters

● Not a subjective determination

● Shipping is not success

Success should be quantifiable

Page 28: Forget methodology. Focus on what matters

● Not a subjective determination

● Shipping is not success

● Prove success with data

Success should be quantifiable

Page 29: Forget methodology. Focus on what matters

I help people get jobs.

Page 30: Forget methodology. Focus on what matters

Job Search helps people get jobs

...by helping them find relevant job postings.

Success for Indeed Job Search

Page 31: Forget methodology. Focus on what matters
Page 32: Forget methodology. Focus on what matters
Page 33: Forget methodology. Focus on what matters

Success: Unique Visitors?

Page 34: Forget methodology. Focus on what matters

Success: Job Searches?

Page 35: Forget methodology. Focus on what matters

success?

Page 36: Forget methodology. Focus on what matters

● Demonstrate success with data● Evaluate data objectively (unique visitors?)

Avoid Subjectivity

Page 37: Forget methodology. Focus on what matters

● You may need short-term approximations.

When Success is Hard To Measure

Page 38: Forget methodology. Focus on what matters

● Best metric for “help people get jobs”: hires

Success for Job Search, take 2

Page 39: Forget methodology. Focus on what matters

● Best metric for “help people get jobs”: hires

● What’s better than unique visitors & searches?repeat visitors, bounce rate, click-through rate

Success for Job Search, take 2

Page 40: Forget methodology. Focus on what matters

● Best metric for “help people get jobs”: hires

● What’s better than unique visitors & searches?repeat visitors, bounce rate, click-through rate

● What’s even better?applies (IndeedApply)

Success for Job Search, take 2

Page 41: Forget methodology. Focus on what matters

● Measurement should be repeatable

● Analysis should be:○ accurate: based on correct/complete data○ consistent: metrics don’t change meaning○ fast: seconds/minutes, not hours/days/weeks

Measure and Learn

Page 42: Forget methodology. Focus on what matters

Google Analytics

Page 43: Forget methodology. Focus on what matters

In-House Analysis Tools

Page 44: Forget methodology. Focus on what matters

● We use Google Analytics

● We build our own frameworks and tools○ logrepo: capturing what happens○ ramses, imhotep: detailed analysis in seconds○ Demo of these tools @IndeedEng on April 30th

http://engineering.indeed.com/talks

Measurement & Analysis Tools

Page 45: Forget methodology. Focus on what matters

Use whatever tools work for you, but make sure:● measurement is repeatable● analysis is accurate, consistent, fast

Measurement & Analysis Tools

Page 46: Forget methodology. Focus on what matters

STEP 1build a great team

Page 47: Forget methodology. Focus on what matters

STEP 2define success

Page 48: Forget methodology. Focus on what matters

STEP 3turn the crank

Page 49: Forget methodology. Focus on what matters

process can never replacetalent and passion

Page 50: Forget methodology. Focus on what matters

process won’t deliver asuccessful product

Page 51: Forget methodology. Focus on what matters

but the right processcan help

Page 52: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:

How process can help

Page 53: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:● Communication: what, who, how, when

How process can help

Page 54: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:● Communication: what, who, how, when● Priority: do things in the right order

How process can help

Page 55: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:● Communication: what, who, how, when● Priority: do things in the right order● Memory: what happened, what next

How process can help

Page 56: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:● Communication: what, who, how, when● Priority: do things in the right order● Memory: what happened, what next● Delivery: get it done as efficiently as possible

How process can help

Page 57: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:● Communication: what, who, how, when● Priority: do things in the right order● Memory: what happened, what next● Delivery: get it done as efficiently as possible● Quality: it should work intended

How process can help

Page 58: Forget methodology. Focus on what matters

Repeatable and predictable mechanisms for:● Communication: what, who, how, when● Priority: do things in the right order● Memory: what happened, what next● Delivery: get it done as efficiently as possible● Quality: it should work intended● Risk: minimize the chance of bad things

How process can help

Page 59: Forget methodology. Focus on what matters

“forget about methodology” is an exaggeration

How methodologies can help

Page 60: Forget methodology. Focus on what matters

Can be templates for improving:● communication● priority● delivery

How methodologies can help

Page 61: Forget methodology. Focus on what matters

Can be templates for improving:● communication● priority● delivery

...helping your team iterate on process

How methodologies can help

Page 62: Forget methodology. Focus on what matters

Can help you think about● What is working well for us?● What could be better?

How methodologies can help

Page 63: Forget methodology. Focus on what matters

Can help you think about● What is working well for us?● What could be better?

… and offer prescribed process changes

How methodologies can help

Page 64: Forget methodology. Focus on what matters

Recently, an experienced engineering manager described a process change that he loved:

An interesting anecdote

Page 65: Forget methodology. Focus on what matters

Recently, an experienced engineering manager described a process change that he loved:

“we stopped tracking bugs”

An interesting anecdote

Page 66: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:

Focus on what matters.

Page 67: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:● communicate

Focus on what matters.

Page 68: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:● communicate● prioritize

Focus on what matters.

Page 69: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:● communicate● prioritize● remember what has been done

Focus on what matters.

Page 70: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:● communicate● prioritize● remember what has been done● know what needs to be done

Focus on what matters.

Page 71: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:● communicate● prioritize● remember what has been done● know what needs to be done● build solutions that work, efficiently

Focus on what matters.

Page 72: Forget methodology. Focus on what matters

Ask yourself, what techniques can help your team:● communicate● prioritize● remember what has been done● know what needs to be done● build solutions that work, efficiently● manage risk associated with changes

Focus on what matters.

Page 73: Forget methodology. Focus on what matters

Does your process (or lack thereof)enable success or just get in the way?

Focus on what matters.

Page 74: Forget methodology. Focus on what matters

Start small and iteratively build process.

...or start big and iteratively reduce/modify process.

Focus on what matters.

Page 75: Forget methodology. Focus on what matters

the evolution of processat Indeed

Page 76: Forget methodology. Focus on what matters

Process can be summarized simply:GET STUFF DONE

Started Lean

Page 77: Forget methodology. Focus on what matters

Started Lean

Deliver

MeasureLearn

Page 78: Forget methodology. Focus on what matters

Started Lean

Quickly!

Deliver

MeasureLearn

Page 79: Forget methodology. Focus on what matters

Idea to implementation, as quickly as possible!● Software Architecture (Service-Oriented)● Tools, like automated translation● Risk Management with Rapid Iteration

Engineering Velocity

@IndeedEng Talk:http://go.indeed.com/velocity

Page 80: Forget methodology. Focus on what matters

Rapid Iteration… to production (multiple times a week)

Velocity and Delivery

Page 81: Forget methodology. Focus on what matters

Rapid Iteration… to production (multiple times a week)

● Don’t wait to fail: means no big failures

Velocity and Delivery

Page 82: Forget methodology. Focus on what matters

Rapid Iteration… to production (multiple times a week)

● Don’t wait to fail: means no big failures● Work that’s ready doesn’t have to wait

Velocity and Delivery

Page 83: Forget methodology. Focus on what matters

Rapid Iteration… to production (multiple times a week)

● Don’t wait to fail: means no big failures● Work that’s ready doesn’t have to wait● More satisfying for developers

Velocity and Delivery

Page 84: Forget methodology. Focus on what matters

Rapid Iteration… to production (multiple times a week)

● Don’t wait to fail: means no big failures● Work that’s ready doesn’t have to wait● More satisfying for developers● Less deadline pressure

Velocity and Delivery

Page 85: Forget methodology. Focus on what matters

Rapid Iteration… to production (multiple times a week)

● Don’t wait to fail: means no big failures● Work that’s ready doesn’t have to wait● More satisfying for developers● Less deadline pressure● Developers own quality

Velocity and Delivery

Page 86: Forget methodology. Focus on what matters

Velocity and Quality

Page 87: Forget methodology. Focus on what matters

● Encourages modular thinking

Velocity and Quality

Page 88: Forget methodology. Focus on what matters

● Encourages modular thinking● Fewer integration issues

Velocity and Quality

Page 89: Forget methodology. Focus on what matters

● Encourages modular thinking● Fewer integration issues● Fewer changes → faster, comprehensive QA

○ Release multiple times a week for 12 weeks, vs.○ Release once in 12 weeks

Velocity and Quality

Page 90: Forget methodology. Focus on what matters

● Encourages modular thinking● Fewer integration issues● Fewer changes → faster, comprehensive QA

○ Release multiple times a week for 12 weeks, vs.○ Release once in 12 weeks

● Encourages automated testing

Velocity and Quality

Page 91: Forget methodology. Focus on what matters

● Team was small, talented, passionate, focused.● They iterated quickly.● Job search was successful.

Success...

Page 92: Forget methodology. Focus on what matters

Process was extremely ad-hoc● not very consistent (e.g. bug tracking)● not very repeatable or predictable● wasn’t creating a memory for the future

...and Mess

Page 93: Forget methodology. Focus on what matters

Process was extremely ad-hoc● not very consistent (e.g. bug tracking)● not very repeatable or predictable● wasn’t creating a memory for the future

… and that was fine. For a while.

...and Mess

Page 94: Forget methodology. Focus on what matters

...and develop predictable, repeatable ways to:● Coordinate effort● Improve communication and transparency● Create a memory for the future● Manage risk● Ensure quality

Time to reflect on process...

Page 95: Forget methodology. Focus on what matters

Infrastructure for Process

Page 96: Forget methodology. Focus on what matters

Infrastructure for Process

Page 97: Forget methodology. Focus on what matters

Infrastructure for Process

...for everything!

Page 98: Forget methodology. Focus on what matters

Type: PRODUCT

Product Management in JIRA

Issue Type:Initiative

requirements

Page 99: Forget methodology. Focus on what matters

Project Management in JIRA

Type: PROJECT

Issue Type:New Feature

Issue Type:Bug

Issue Type:Improvement

Issue Type:Task

developer work

deployablecomponent

Page 100: Forget methodology. Focus on what matters

“Incorporates”

Service A

Service B

Feature

Improvement

ProductInitiative

Webapp XFeature

incorporates

Page 101: Forget methodology. Focus on what matters

“Depends Upon”

Service A

Service B

Feature

Improvement

ProductInitiative

Webapp XFeature depends

upon

Page 102: Forget methodology. Focus on what matters

Links are bidirectional

Service BImprovement

ProductInitiative

Webapp XFeature

is depended on by

is incorporated by

Page 103: Forget methodology. Focus on what matters

When will the feature be ready?

Webapp X

Feature

Fix Version: 2014-03-20

target release

Page 104: Forget methodology. Focus on what matters

When will the initiative complete?

Product

Initiative

Fix Version: March 2014

completion timeframe

Page 105: Forget methodology. Focus on what matters

Self-Documenting Workflow

● Workflow states and actions should suggest a clear meaning

● Custom workflows for different types of issues

Page 106: Forget methodology. Focus on what matters

Example: Project Issue Workflow

Pending Triage

Pending Acceptance

Accepted

Pending Verification

Pending Closure

Closed

Create

Triage

Accept

Resolve

Verify

Close

Page 107: Forget methodology. Focus on what matters

● Fix Version deployed to production→ issues are closed→ future code changes require new issues

● Every code commit references issue key

Closing the Memory Loop

Page 108: Forget methodology. Focus on what matters

Closing the Memory Loop

JASX-4643Type: New FeatureFix Version: 2011-04-21

is incorporated by

UPDOG-76Type: InitiativeFix Version: June 2011

Page 109: Forget methodology. Focus on what matters

iterate on process.it’s never done.

Page 110: Forget methodology. Focus on what matters

translation processproduction deploys

a/b testing

Page 111: Forget methodology. Focus on what matters

● Planning rapid international growth

Iteration: Translation Process

Page 112: Forget methodology. Focus on what matters

● Planning rapid international growth

● Need a localization strategy that wouldn’t slow us down

Iteration: Translation Process

Page 113: Forget methodology. Focus on what matters

● Planning rapid international growth

● Need a localization strategy that wouldn’t slow us down

● Must coordinate many translators

Iteration: Translation Process

Page 114: Forget methodology. Focus on what matters

● Planning rapid international growth

● Need a localization strategy that wouldn’t slow us down

● Must coordinate many translators

● We modeled it in JIRA.

Iteration: Translation Process

Page 115: Forget methodology. Focus on what matters

Custom Translation Issues

Project

Explosion

Translation(French)

Translation(Spanish)

Translation(Japanese)

incorporates

Translation(*)

Page 116: Forget methodology. Focus on what matters

“Explosion” Issue Workflow

Pending Triage

PendingQA Instructions

Pending Review

PendingIssue Explosion

Pending Translations

Pending Verification

Create

Triage

Submit

Reviewed

Explode

Complete

Verify

Page 117: Forget methodology. Focus on what matters

“Explosion” Issue Workflow

Pending Triage

PendingQA Instructions

Pending Review

PendingIssue Explosion

Pending Translations

Pending Verification

Create

Triage

Submit

Reviewed

Explode

Complete

Verify

?

Page 118: Forget methodology. Focus on what matters

Translation Issue Workflow

Pending Acceptance

Accepted

Pending Verification

Pending Closure

Closed

Accept

Resolve

Verify

Close

1 issue per language

Page 119: Forget methodology. Focus on what matters

● Custom issue types and workflows○ clear communication○ smooth transitions

How JIRA helped Translation

Page 120: Forget methodology. Focus on what matters

● Custom issue types and workflows

● Automation → 1 issue per language

How JIRA helped Translation

Page 121: Forget methodology. Focus on what matters

● Custom issue types and workflows

● Automation → 1 issue per language

● Subsequent iterations:○ machine translation○ translation service integration

How JIRA helped Translation

Page 122: Forget methodology. Focus on what matters

Iteration: Production Deploys

Page 123: Forget methodology. Focus on what matters

Iteration: Production Deploys

50/week

Page 124: Forget methodology. Focus on what matters

● Require a lot of communication and coordination between roles:○ Create the release candidate deployable○ Get it into a testing environment○ Find the bugs○ Fix the bugs○ Declare it ready for production deploy○ Deploy it to production

Iteration: Production Deploys

Page 125: Forget methodology. Focus on what matters

● Require a lot of communication and coordination between roles

● Many people care about current deploy status

Iteration: Production Deploys

Page 126: Forget methodology. Focus on what matters

● Require a lot of communication and coordination between roles

● Many people care about current deploy status

● We modeled it in JIRA.

Iteration: Production Deploys

Page 127: Forget methodology. Focus on what matters

Deploy Issue Workflow

Pre-Deploy

QA Ready

In QA

QA Complete

Deploy Ready

In Production

Ready

In QA

QA Complete

Ready

Deploy

Create

Page 128: Forget methodology. Focus on what matters

● Clear communication, smooth hand-offs

● Transparency for all stakeholders

● Ability to look at trends in deploys

How JIRA helped Deploys

Page 129: Forget methodology. Focus on what matters

● Proctor: data-driven framework for A/B testing○ No full code deploy required for test updates○ Lighter-weight, but still requires a process for

verification and deployment

Iteration: A/B Testing

Page 130: Forget methodology. Focus on what matters

● Proctor: data-driven framework for A/B testing○ No full code deploy required for test updates○ Lighter-weight, but still requires a process for

verification and deployment

● We modeled it in JIRA.

Iteration: A/B Testing

Page 131: Forget methodology. Focus on what matters

Managing Data-Driven A/B Tests

Page 132: Forget methodology. Focus on what matters

Experiments and “Pro(ctor)Tests”

Service AProTest

Product

Experiment

Webapp XProTest

incorporates

Page 133: Forget methodology. Focus on what matters

ProTest Issue Workflow

Pending Requirements

Pending Triage

Pending Acceptance

AcceptedSubmit

Triage

Accept

Resolve

Create

QA Ready

Page 134: Forget methodology. Focus on what matters

Managing Data-Driven A/B Tests

Page 135: Forget methodology. Focus on what matters

Managing Data-Driven A/B Tests

Page 136: Forget methodology. Focus on what matters

Managing Data-Driven A/B Tests

QA Ready

In QA

In QA

Page 137: Forget methodology. Focus on what matters

ProTest Issue Workflow (cont.)

QA Ready

In QA

Production Ready

In Production

Pending Closure

Closed

Deploy

Verify

Deploy

Verify

Close

Resolve

Page 138: Forget methodology. Focus on what matters

● Clear communication● Tool integration saves time● Manages risk through verification process

How JIRA helped A/B Testing

Page 139: Forget methodology. Focus on what matters

Indeed’s approach: Iterate. Iterate. Iterate.

Summary

Page 140: Forget methodology. Focus on what matters

Find the best process for your team’s success.Iterate on process as necessary.

Stay focused on success.

Focus on Success

Page 141: Forget methodology. Focus on what matters

good luck, and thanks!

Page 142: Forget methodology. Focus on what matters

Q & Afor more about Indeed Engineering:

engineering.indeed.com

for more about me:indeed.com/me/JackHumphrey