88
November 20 th , 2015 PHPWorld 2015 875 N St NW, Suite 205/ 202 350 4600/ hugeinc.com

PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Embed Size (px)

Citation preview

Page 1: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

November 20th, 2015 PHPWorld 2015 875 N St NW, Suite 205/ 202 350 4600/ hugeinc.com

Page 2: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

What Goes Wrong With Agile

Huge

November 20th, 2015

Page 3: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

And How We Can Fix It

Page 4: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

1. Intro 2. Agile Dysfunction 3. The Problems

4. The Fixes 5. Improve Your Team

Agenda

Page 5: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Before We Dive In

Page 6: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Who are you:

Matt Toigo or just @toigo since too many guys born in the 80s

are named Matt

Page 7: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

I’ve worked at agencies, startups, and large product companies.

You have opinions, like everybody else, but are they valid?

Page 8: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

All the way from PHP4 ClassName() constructors to the current vibrant

ecosystem that Composer has enabled.

I’ve seen PHP and software development evolve for 15 years.

Page 9: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Agile + Scrum

Page 10: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Every consultant and their dog are now shouting about them.

Page 11: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

More Buzzwords?

I’m sick of hearing about them.

Why Are They Popular?

The past was far worse.

Page 12: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

We’ve all been on a waterfailure project and promised ourselves…

never again.

Alright, Let’s Give Agile a Shot

Page 13: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

The rest of this presentation assumes a basic familiarity with Agile +

Scrum.

Page 14: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Because nobody wants to sit through another pretty presentation

that ignores the difficulties of our jobs while telling us how to do them.

Page 15: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Two Kinds of Agile Teams

Page 16: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Fresh Coat of Agile Paint

We have the ceremonies, use the terms, develop to 6 month old

specs, and have 20 people on our Scrum team!

Page 17: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

What more do you want?

Page 18: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

We’ll build that feature in our next 2 month sprint.

Page 19: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

I’m not going to talk about fixing these issues.

Page 20: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Solid Agile Team

Teams are autonomous, technical investment in Agile, supportive organization, and focused on

constant improvement.

Page 21: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

It’s all going to be rainbows and sunshine and everything will be

easy and perfect!

Page 22: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

NOPE

Page 23: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

What Goes Wrong

Page 24: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Ticket Quality

Page 25: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

The root of most Agile dysfunction and the source of pain for

EVERYONE on a team.

If you listen to only one part of this presentation

Page 26: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Downstream effects:

1. Bad Estimates

2. Unstable Velocity

3. Slower Work

4. Missed Requirements

5. Terrible for Testers

6. Stakeholders Don’t See Value

Page 27: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Write With Specificity

Page 28: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Take the time to write great user stories that anyone can quickly

understand.

Page 29: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Also add the details that developers need.

Page 30: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Give everyone on your team the chance to punch holes in them.

Page 31: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Hidden Complexity

Page 32: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Now we think it’s more like a week…

We said this was going to take a day.

Page 33: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

There is only one cause for this.

Page 34: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Work was started before a problem was fully understood.

Page 35: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Prepare with Spikes

Page 36: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Pause before you dive into coding to make sure you have every detail

you need.

Let’s just start the work!

Page 37: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Clarify:

1. Product / UX / Design

2. Technical Architecture

3. Sequencing

4. How Will We Test

5. Organizational Limitations

Page 38: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Write down every detail so someone can refer back to everything that

was learned.

Take as long as you need to get all the answers.

Page 39: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Never Removing Work

Page 40: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Then realized we were totally unprepared.

We committed to finishing this feature this sprint

Page 41: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

It was in our sprint commitment though so we HAVE TO FINISH IT.

Page 42: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

We’ll be making uneducated choices and possibly do shoddy

work.

Let’s just get it done!

Page 43: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Remove the Work

Page 44: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Don’t let it drag down everyone on the team for the remainder of the

sprint.

Acknowledge you made a mistake starting the work.

Page 45: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Remove the problem work so you can focus on work that is ready.

Page 46: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

You probably aren’t being good enough about policing Definition of

Ready.

Discuss what went wrong in a retro.

Page 47: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Task Level Planning Only

Page 48: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

The best way to have a productive heads down team.

Punch lists of clearly defined work

Page 49: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

You can miss the big items though.

Page 50: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

No where for someone to understand how a system works or

review it.

Details are spread out in different tickets.

Page 51: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Problems:

1. Features Don’t Fit Together

2. Inconsistent Coding Patterns

3. Architecture is Short Sighted

4. Team Output is Unknown

Page 52: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Plan at Higher Level

Page 53: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Sprint forecast to stakeholders.

Page 54: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Make sure your entire team understands the product vision a

few months out at all times.

Page 55: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Use a wiki to define technical architecture and relate it to

production functionality.

Page 56: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Work Not Being Truly Ready

Page 57: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Testing it is taking forever though.

Development on this story went great!

Page 58: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Developers did their part, why can’t we Ship It!

Page 59: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Ready Means Ready to Test

Page 60: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Don’t just ask if a story is ready for development.

Page 61: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Ask if we can quickly nail the testing or are we going to run into major

blockers.

Page 62: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Ask yourselves:

1. Is There a Test Plan

2. Do We Have to Modify Data to Test

3. Are Physical Devices Available

4. Do We Need Another Team to Help

Page 63: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

The QA members of your team will love you for this.

Page 64: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Tickets Replacing

Communication

Page 65: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

All hail the mighty sprint board and tickets are the source of truth!

Page 66: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

I assigned that JIRA ticket to you, why would I need to talk to you

about it?

Page 67: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Remote teams can be especially bad about this.

Page 68: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Talking > Tickets

Page 69: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Take the time to explain complex issues to teammates.

Page 70: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

ON THE PHONE OR VIDEO CHAT

Page 71: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Assigning a bug without an explanation can feel like blaming

someone

Page 72: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It
Page 73: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Ballooning Tickets

Page 74: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

But let’s just add one more little thing…

The work in this user story looks great.

Page 75: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Scope creep leading to revolving door tickets.

Page 76: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Be Strict About Acceptance

Criteria

Page 77: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Let your team close out work to maintain momentum.

Page 78: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Tickets are cheap so make another one the right way.

Page 79: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Let’s talk to our Product Owner and address it in backlog grooming.

That’s a really good idea!

Page 80: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

How Did You Figure These

Out?

Page 81: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

A year’s worth of detailed project retro notes.

Page 82: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

A fantastic team who was brutally honest in retrospective meetings

while still always being respectful.

Page 83: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Specific examples are easier to fix rather than general griping.

Take detailed notes during a sprint.

Page 84: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

It’s easy to get the details wrong when you’re frustrated.

Page 85: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Everyone on your team MUST have the attitude that they still have a lot to

learn about how to build great software.

Page 86: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

Constant Introspection

Page 87: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It

November 20th, 2015 PHP World 2015 875 N St NW, Suite 205 / 202 350 4600 / hugeinc.com

Page 88: PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix It