mastering agile practices to build high performing teams

48
Steven Granese Agile Coach & Consultant Custom Software Development @sgrane se Mastering Agile Practices Build High Performing Teams Tampa Bay Agile Meetup 8/19/2014 Steven.Granese@tribrid ge.com www.sgranese.com

Upload: steven-granese

Post on 17-Dec-2014

253 views

Category:

Software


1 download

DESCRIPTION

These slides are from a talk that I gave to the Tampa Bay Agile Meetup on August 19, 2014. The talk was titled "Mastering Agile Practices to Build High Performing Teams". http://www.meetup.com/tampa-bay-agile/events/193898502/ Description: You've read the books. You already know what your Agile team SHOULD be doing. Your Daily Standup meeting should be short and sweet. Your deployments should be automated. Your Sprint Retrospectives should inspire improvement. So if you know what to do, why aren't you doing it? The short answer is because Agile is hard. It takes real discipline and leadership to master even the most basic practices. Many teams have committed to adopting Agile, but they just don’t know how to get to the next level. In this talk, I will share my real world experiences from years of coaching high performing Agile teams. I will discuss the key practices that must be mastered for a team to become great. Additionally, I will identify useful measurement techniques so that teams know if they are improving.

TRANSCRIPT

Page 1: Mastering Agile Practices to Build High Performing Teams

Steven GraneseAgile Coach & ConsultantCustom Software Development @sgranese

Mastering Agile Practices to Build High Performing Teams

Tampa Bay Agile Meetup

8/19/2014

[email protected]

Page 2: Mastering Agile Practices to Build High Performing Teams

Mastering Agile Practices

Building High-Performing Teams

TRUST

Page 3: Mastering Agile Practices to Build High Performing Teams

HABITS

COMMITMENT

DISCIPLINE

How Does Mr. Miyagi Establish Trust?

“First, make sacred pact. I promise - teach karate. That my part. You promise - learn. I say, you do. No questions. That you’re part.”

“Wax On. Wax Off. Breathe.”

Repeat habits while keeping commitment

Page 4: Mastering Agile Practices to Build High Performing Teams

•Psychology•Organizational Change for Tech•Business / Computer Science

Education

•Developer (CF, PHP, .Net)•Director of Technology•Manager of Development•Software Consultant

Experience

A little about me….

Agile since 2009!

Page 5: Mastering Agile Practices to Build High Performing Teams

Tribridge at a Glance

Nearly 600 team members averaging 20 years of experience in consulting and industry15 years of profitabilityOne of Microsoft’s top partners – Microsoft Dynamics Worldwide Partner of the Year 4 times in 6 years (2008, 2010, 2012 and 2013) Largest Microsoft Dynamics customer base in North AmericaBig Five quality delivered through practical methodologies and intimate customer relationshipsReceived Ernst &Young Entrepreneur of the Year award

Page 6: Mastering Agile Practices to Build High Performing Teams

•Team Formation Model•Trust and Commitment

THEORY

•10 Agile Practices•Identify Top Habits and Measureable Results

PRACTICAL

TODAY’S AGENDA

Page 7: Mastering Agile Practices to Build High Performing Teams

Forming

Storming

Norming

Performing

- Fear and excitement- Play it safe

- Power struggles- “Me”

- Engagement- “You and Me”

- Shared goals- “We”

COMMITMENT, DISCIPLINE AND

TRUST

Page 8: Mastering Agile Practices to Build High Performing Teams

FORMING STORMING NORMING PERFORMING

Page 9: Mastering Agile Practices to Build High Performing Teams

Erick Fleming

Your boss may not TRUST you.

Page 10: Mastering Agile Practices to Build High Performing Teams
Page 11: Mastering Agile Practices to Build High Performing Teams

CODER

DEVELOPER

CRAFTSMAN

• Can read and write code• Cannot build sustainable

applications by himself

• Can design/build solutions• Often delivers bugs• Focuses on technical

limitations

• Takes pride and ownership• Rarely delivers bugs• Focuses on users / business• Trusted

Mike

Aaron

Linda (Craftswoman)

Page 12: Mastering Agile Practices to Build High Performing Teams

Pyramid of Agile

Practices

FORMING

STORMING

NORMING

PERFORMING

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 13: Mastering Agile Practices to Build High Performing Teams

User Stories The Language of

an Agile Organization

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 14: Mastering Agile Practices to Build High Performing Teams

As a <user/role>, I want to <goal/desire>

so that <reason | benefit>.

WHO WHAT

WHY

I-N-V-E-S-T

The Art of Writing Good User Stories

HOW

Page 15: Mastering Agile Practices to Build High Performing Teams

As a student, I want my grades to appear on the left side of the screen with Helvetica font.

As an undergraduate student, I want electronic notification of my grades so that I don’t have wait until I return to campus to know if I passed last semester’s courses.

User Stories – Examples

Unclear Value

Can’t Negotiate

As a user, I want to my view grades online so that I can view them.

Valuable

Page 16: Mastering Agile Practices to Build High Performing Teams

User Stories Habits

1. Story format also used by non-development teams

2. Start high level with valuable why’s

3. Improve story title and add details over time

Page 17: Mastering Agile Practices to Build High Performing Teams

Design AnalysisDesign vs.

Documentation

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 18: Mastering Agile Practices to Build High Performing Teams
Page 19: Mastering Agile Practices to Build High Performing Teams

Design = Thinking

Documentation = Recording Thoughts

Page 20: Mastering Agile Practices to Build High Performing Teams

Before Sprint

During Sprint

End of Sprint

Think & Make “How” Decisions

DESIGN

DOCUMENTATION

Test and Adjust Decisions

Document Final Decisions

• Acceptance Criteria

• Prototypes• Process Flows• Graphics

& UI Layout

• Test Cases • Code• Rough

Documentation• Valuable

Documentation

Page 21: Mastering Agile Practices to Build High Performing Teams

Design & Analysis Habits

1. Collaborative Design 2. Prototyping• Feature-level: Demonstrate value to

business• Story-level: Communicate

requirements to team3. Documentation delivered with code to

avoid documentation debt

Page 22: Mastering Agile Practices to Build High Performing Teams

Daily Standup Keystone Habit

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 23: Mastering Agile Practices to Build High Performing Teams

All tasks visible

Each person movesown cards

Time limit

Page 24: Mastering Agile Practices to Build High Performing Teams

Daily Standup Habits

1. Meeting occurs everyday, on-time, no matter who shows up.

2. Everyone is prepared. Everyone talks.3. No discussion of “how”.4. Issues are assigned and resolved quickly.

Page 25: Mastering Agile Practices to Build High Performing Teams

RetrospectivesAiring of

Grievances

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 26: Mastering Agile Practices to Build High Performing Teams

START STOP CONTINUE

Facili-tator

Embrace Conflict

2-3 Goals

GOOD

BETTER“Builds trust within team”

Page 27: Mastering Agile Practices to Build High Performing Teams

Retrospectives Habits

1. Not allowed -> management, customers, product owners

2. Safe environment where everyone can speak their mind

3. Identify and track actionable improvements

Page 28: Mastering Agile Practices to Build High Performing Teams

Sprint Planning Making a

Commitment

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 29: Mastering Agile Practices to Build High Performing Teams

Sprint PlanningStory: Electronic Notification of GradesTask Name Assigned

ToEstimate

(hrs)Design Mary 4

Test Cases Jason 2User Interface Mary 8Backend Logic Samantha 16SQL Jason 8Unit Tests Samantha 4Testing & Bugs 12Documentation 4

Capacity3 Team Members6 Hours / day10 days

180 hours (total)

Total Task Estimate: 58

Sprint Capacity >=

Total Task Estimate

Page 30: Mastering Agile Practices to Build High Performing Teams

Sprint Planning Habits

1. Estimate ALL known tasks in hours.2. Estimate known-unknowns

(i.e. bug fixing)3. Leave buffer for unknown-unknowns

(i.e. production issues, external meetings)

Page 31: Mastering Agile Practices to Build High Performing Teams

Sprint TestingQA vs Testing

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 32: Mastering Agile Practices to Build High Performing Teams

Testing is a mentality. It is the RESPONSIBILITY

of the entire team.

QA Professionals improve the quality of a team’s

ability to test.

Page 33: Mastering Agile Practices to Build High Performing Teams
Page 34: Mastering Agile Practices to Build High Performing Teams

Sprint Testing Habits

1. Test and fix bugs in the sprint

2. Define test cases before writing code

3. The entire team tests

Page 35: Mastering Agile Practices to Build High Performing Teams

Sprint ReviewsTeam’s Chance

to Shine

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 36: Mastering Agile Practices to Build High Performing Teams

A FLAWLESS Sprint Review is the best way to establish TRUST between a team and its business.Polished, prepared demo for each committed story.

All Acceptance Criteria are demoed.

Page 37: Mastering Agile Practices to Build High Performing Teams

Top 10 Ways to Destroy Trust at a Sprint Review

10) Demo starts late9) Team not prepared8) Code samples7) Pace is too fast6) Spelling Errors5) Poorly Worded Dialogs Messages

4) Technical jargon3) Resistance to new ideas2) Missed Acceptance Criteria

1) Bugs

Page 38: Mastering Agile Practices to Build High Performing Teams

Sprint Reviews Habits

1. Occur at the same time, on the same day.2. Visibly record feedback and new ideas.3. Entire team is present and given the

chance to present.4. Measure percentage of stories accepted.

Page 39: Mastering Agile Practices to Build High Performing Teams

Automated Tests and

DeploymentsFast Feedback

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 40: Mastering Agile Practices to Build High Performing Teams

Automated Unit Tests

Page 41: Mastering Agile Practices to Build High Performing Teams

DEV PC 1

Automated Builds and Deploys

Benefits1) Repeatable & Fast2) Reduces Risk3) Reduces team

friction

DEPLOY SERVER

SOURCE-CODE SERVER

BUILD SERVER

1) Check -ins

DEV PC 2 DEV PC 3

3) Run Auto-Tests

4) Build App

5) Deploy App TARGET

SERVER

2) Get Fresh Code

Page 42: Mastering Agile Practices to Build High Performing Teams

Automated Tests and Deploys Habits

1. Disciplined writing of unit tests for each story.

2. Fast feedback from Automated Unit Tests upon code check-in.

3. Automated Deployments occur at least daily so that testing occurs daily.

Page 43: Mastering Agile Practices to Build High Performing Teams

Lean & KanbanContinuous Delivery of

Value

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

Page 44: Mastering Agile Practices to Build High Performing Teams

Lean Principle:Code that is not in

production is waste!Deploy code to production regularly.

Not all production code must be executed by all users.

Page 45: Mastering Agile Practices to Build High Performing Teams

Continuous Delivery of Value

Page 46: Mastering Agile Practices to Build High Performing Teams

Kanban & Lean Habits

1. Drop the Iterations.2. Limit work-in-progress.3. Build software that is

always valuable and deployable.

Page 47: Mastering Agile Practices to Build High Performing Teams

FORMING

STORMING

NORMING

PERFORMING

Communication & Transparency

Disciplined Iterations

Automation

Continuous Delivery

Retro-spectives

Daily Standups

Design & Analysis

Planning ReviewsTesting

DeploysTests

Lean & Kanban

User Stories

HABITS

COMMITMENT

DISCIPLINE

TRUST

Page 48: Mastering Agile Practices to Build High Performing Teams

Steven GraneseAgile Coach & ConsultantCustom Software Development

Q&AMastering Agile Practices

to Build High Performing Teams

@sgranese

[email protected]