agile adoption at google · – experiment with new practices and techniques (e.g. distributed...

31
Agile Adoption at Google Potential and challenges of a true bottom-up organization Mark Striebeck August 2007

Upload: others

Post on 27-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Agile Adoption at Google

Potential and challenges of a true bottom-up organization

Mark Striebeck

August 2007

Page 2: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Google & Google Culture

• Encourage a startup culture

• Engineering-centric / bottom-up

• 20% time

• OKR’s (Objectives and Key Results)

• Tech Talks

• Consensus-driven culture

and…

Page 3: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Google & Google Culture

• Also: T-Shirt driven culture!

Page 4: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Grouplets

• Instead of central “process excellence” departments

• Accessibility, Agile, Documentation, Readability, Testing…

• 100% volunteering groups (this is the 20% project of members)

• Have budget and other support

• Mostly engineers, but also participants from other groups

“Engineers making other engineers' lives better”

Page 5: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Grouplets

• … of course the grouplet of grouplets has t-shirts!

Page 6: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Fix-It!

• Mostly driven by grouplets (doc fixit, testing fixit…)

• Every engineer is asked to participate rather then perform their regular work

• Not too often (1-2 per quarter)

“Imagine what 5000 engineers can accomplish in 1 day!”

Page 7: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Google & Development practices

• Small teams

• Very few standards on development process and practices

• Lightweight design process that is focused on early feedback from peers and senior engineers

• Management by feedback – project teams have complete responsibility and ownership

• Collaborative and egalitarian environment

• Release early, release often

“Google is pretty much on the left hand side of the Agile Manifesto”

Page 8: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Agile@Google

Quote from one of the first AdWords engineers:

“We worked in small groups (usually 2-3 engineers per project) and moved very quickly. We'd spend enough time designing and talking with PMs to have a general idea of what we wanted to build, and then we'd start coding.In some cases, we didn't even have input from UI designers, and we'd just take our best guess at a decent UI.…I remember keeping a big tasklist on a whiteboard. Our PM probably tracked things more closely, but I can't recall ever trying to estimate schedules more than 4-6 weeks out.”

Page 9: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Agile@Google

• Many individual projects

• Some complete programs

• Pockets in almost all areas and departments

• Very few “pure” Scrum or XP projects

• NO agile standard

Page 10: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Limits of Agile at Google

• YAGNI

– Your application will be used by several 100,000 users and mightneed to get extended heavily quickly

• Infrastructure projects = Research projects (no PM – engineering team decides what and how to build)

• Input and guidance from senior Googlers

– Upfront lightweight design sent to mailing list for feedback

Page 11: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Agile@Google

• Adoption

– Projects usually don’t ask for help – individuals sometimes do

– Very different in different project – do what seems right

• Tools

– Googlers always want tools!

– Have some lightweight tools – some self-written

Page 12: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Agile@Google

• Challenges

– Distributed teams

– Multi-project (program) management

– Pairing not particularly favored

– General concern of too much process

– People want to produce great things and are willing to work crazy hours and take risks

Page 13: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Agile Grouplet

• Weekly meetings

– Exchange ideas

– Planning of activities

“Discover and promote lightweight methods that help teams produce better software faster. “

Page 14: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Agile Grouplet - Programs

• Tech Talks

– Internal (Experience reports)

– External (Mike Cohn, Mary Poppendieck, Ken Schwaber… -whoever is in the area!)

• Learn-It!

– Instead of Fix-It!

– Lots of activities to get to know agile

– Offer help for agile projects

• BayXP

– Sponsor monthly events

– Videotape and publish event if a “celebrity” is attending

Page 15: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Agile Grouplet - Programs

• Agile Safari (“Agile projects in the wild”)

– Agile projects sign-up for people to attend their activities

– People sign-up

– Grouplet coordinates and communicates

• Office Hours

– Weekly

– Completely open agenda

Page 16: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Agile Grouplet - Programs

• Coaching / Mentoring– Individual mentoring– Project coaching (sometimes tough with 20% time)

• Retrospective Facilitator Network – Exchange ideas and experiences– Experiment with new practices and techniques (e.g. distributed

retrospectives)– Facilitate retrospectives

• Training1. External (sometimes multiple)2. Select and license material3. Google’ify it and deliver by Google engineers4. Ultimately becomes part of standard course offerings

Page 17: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Internal Push Back

• No top-down decret means people can disagree

– Who knows Steve Yegge?

• Project Management Steering Council

– Sees agile as just one method to develop software

– Pushes for more generic approach

Page 18: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Testing Grouplet

• Why a separate grouplet?

– Agile Grouplet: Focus on development process – good way to develop software

– Testing Grouplet: Focus on developer testing – necessary way to develop software

“To drive adoption of developer testing.”

Page 19: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Testing Grouplet - Programs

• Weekly meetings

• Tech talks

• Office hours

• Weekly lunches

• Parties! (with cookies!)

Page 20: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Testing Grouplet - Programs

Testing On The Toilet

“We write flyers about everything from dependency injection to code coverage, and then regularly plaster the bathrooms all over Google with each episode, almost 500 stalls worldwide... “

"... it reminds me of the first two sentences of the now famous founders' letter Page and Brindistributed to prospective Google shareholders before the company's 2004 IPO: "Google is not a conventional company. We do not intend to become one." Mission accomplished."

Page 21: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Testing Grouplet - Programs

Testing On The Toilet

• Great program to get attention for testing

– Internal and external discussions

– Added to public Google testing blog (http://googletesting.blogspot.com)

– Very funny fakes

– Reported and quoted in many places (Washington Post, Forbes, Blogs…)

"... where one cannot escape one's work even in the bathroom, strikes me as bordering on obsessive / compulsive, and seems almost Orwellian."

"the post is on a blog site, not on Google, April 1st a little early...."

Page 22: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Testing Grouplet - Programs

Fix-It!logo

Page 23: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

The Testing Grouplet - Programs

• Testing Documentation (e.g. Design4Testability guide)

• Training

• Noogler training and noogler labs

Page 24: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Test Certified

• Tried for a long time to tell teams “Get better at testing!” – somehow that didn’t work

• Instead: Small steps to get better at testing

– Level 1: Setup tools – get familiar with testing

– Level 2: Learn techniques and technologies that enable team to write tests for all new code

– Level 3: Improve test suite and get all code under test

– Level 4: …

“Horrible name – great results!”

Page 25: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Test Certified

Rewards:

Level 1 Level 2 Level 3

Page 26: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Test Mercenaries

• Full timer engineers to help projects advance on Test Certified ladder

• Very googley approach:

– Program was born and planned and started by the Testing Grouplet

– Sponsored by executive managers

– Then given back to Grouplet members to start and execute

Page 27: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Test Mercenaries

• Few days pre-assessment to evaluate state of code and readiness of team to make changes

• Activities:

– Introduce new technologies that make code more testable

– Refactor code

– Train individuals on testing technologies and techniques

– Help team to integrate testing in development process

• Engagements are 3 months max

Page 28: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Testapalooza

• All-day conference

• Bringing all disciplines who do any kind of testing together:

Engineering, I18N, RelEng, SecOps, SRE*, SysOps, Agile Grouplet, Testing Grouplet, Test Engineering, UE

• Presenters and attendants from all over the world

* Site Reliability Engineering

Page 29: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Testapalooza

• … and there were T-shirts – of course!

Page 30: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Testing @ Google

• Continuous Build over all code and all projects

• Use Google production cluster to run tests

• Method-level parallelization and dependency analysis

• Run tests across all Google code

• Lots of ideas, tools and applications from projects – some get “productized”

Page 31: Agile Adoption at Google · – Experiment with new practices and techniques (e.g. distributed retrospectives) – Facilitate retrospectives • Training 1. External (sometimes multiple)

Executive Support

• Memos

• Engineering Reviews

• Program sponsors