Large Scale Development
Culture Change:
Google and the US Government
Copyright 2014 Mike Bland, licensed under a Creative Commons Attribution 4.0 International License.
October 2013
November 2013
April 2014
So now what?
But first…
...let’s talk about image and expectations.
Can Culture Change?
Google, Governments & Geeks Rapidly
Redefine Test Culture
HA! HA!
What happened next?
How did I get involved?
2001-2005: Northrop Grumman
2005-2011: Google
Testing Grouplet
Test Mercenaries
Websearch Infrastructure
2013: Return to Berklee College of Music
(not Berkeley!)
February 2014
if ((err = ReadyHash(&SSLHashSHA1, &hashCtx)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &clientRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
goto fail;
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
April 2014
May 2014
How I Learned To Stop Worrying and Love the Bomb...Again
June 2014
November 2014
How does culture change?
Not like this...
The Chasm
Instigators
Small, ad-hoc coalitions of Innovators and Early Adopters
“Never doubt that a small group…”
“Never doubt that a small group of thoughtful, committed citizens can change the world;
indeed, it’s the only thing that ever has.”
Challenges
Inertia
Insecurity
Ignorance
Friction
Communication Breakdown
Priority Structure
We Fear Change
Crossing the Chasm
Albert Wong’s “Framework for Helping”
Rainbow Bridge
Albert’s Rainbow of Death, USCIS
Intervene
Validate
Inform
Inspire
Empower
Mentor
Dependent
Independent
Write a report
Give a techtalk
Explain why their work is important to you.
Change something with them. Be their scaffold.
Give positive feedback
Describe how things work elsewhere. "It can get better"
Have 1:1s
Offer continued support. �FOLLOW UP.
Publicly challenge assumptions
“If people believe they lack the power…”
If people believe they lack the power to solve a problem,
Saul Alinsky, paraphrased from Rules for Radicals
they won’t even think of trying to solve it.
Goals and Principles
Embrace, rectify, and learn from mistakes
Understand that lasting change will take time
Improve productivity to better serve users/citizens
Goals and Principles
Cultivation
Avoid cult behavior
Adoption, not imposition
Cultivating a Mythology
Beware of heroes, echo chambers
The best mythology is a useful model
How did Google’s culture change?
Priority Structure
Which leads to…
Google values...
features
resources
throughput
impressions
revenue
performance reviews
promotions
If it can’t be measured,
(e.g. more clicks)
it doesn’t matter.
(i.e. won’t get me promoted)
Internalization:
Numbers tell an important part of the story...
...but not the only important part of the story.
Inertia
Extremely bright developers
Overconfidence in status quo
Enormous early success
Insecurity
Overconfidence/arrogance from early-stage success
Insecurity
Extremely rapid onboarding of new developers
Ignorance
Lack of testing/testable design experience
Friction
Build & test system pushed beyond its limits
“I don’t have time to test”
xkcd 303
Ignorance/Communication Breakdown
(After-the-fact: goto fail; and Heartbleed)
“What can’t be measured doesn’t matter”
Impact of testing is impossible to measure a priori
Testing Grouplet
Volunteers pooling 20% time
to drive adoption of automated testing
“Noogler” Lecture and Codelab
Cultivated training materials facilitating early exposure
Small/Medium/Large test sizes
Replaced misunderstood terminology
Raised awareness of concepts
Documentation
Extensive, well-curated wikis
Tech Talks
Sometimes people don’t want to RTFM
Testing on the Toilet
Broke down geographic boundaries of discussion
Standardized terms, avoided echo chamber
Testing front-and-center for everybody from day 1
Test Certified (TC)
Three-level roadmap, tailored to quarterly goals
Overcame psychological obstacle of “How to?”
Achievers
Test Mercenaries
Hands-on help for teams that needed it
Direct feedback to Testing Tech and Build Tools
Tool, practice advocacy
Fixits
Company-wide events, usually one day long
Address “important but not urgent” backlog
New tool rollouts address “I don’t have time to test”
Fixits
Focus everyone on concrete goals
Motivation: schwag; recognition; good karma
Fixits
Punctuate story arc
Raise morale
Advance state-of-the-art
Albert’s RoD, Testing Grouplet Ver.
Intervene
Validate
Inform
Inspire
Empower
Mentor
Dependent
Independent
Fixits
Revolution
Test Certified
Have 1:1s
Offer continued support. �FOLLOW UP.
TAP
Build Orbs
Lectures
TotT
Codelabs
EngEDU Collaboration
Tool development
(w/ Testing Tech, Build Tools)
Test Mercenaries
Tech Talks
Testing Grouplet
Schwag (T-shirts)
Testing Grouplet Strategy
2005-mid 2007: Brainstorm, experiment, Disagree and Commit
Mid 2007: Strategy emerges
Get all teams to Test Certified Level 3 by end of 2009
“I don’t have time to test” =>
Build system, Revolution Fixit, Test Automation Platform
Testing Grouplet Strategy
Power and knowledge to do the right thing
How long did all this take?
2005
Spring: Testing Grouplet founded
2006
Early/Mid: Testing on the Toilet
August 3: First Testing Fixit
Test Certified
October: Test Mercenaries
2007
March 8: Second Testing Fixit
Summer: Test Certified strategy
Summer: Revolution Fixit, TAP conceived
2008
January 31: Revolution Fixit
Summer: Test Certified Challenge
September: Phynancial crisis hits
December: Vendors/contractors fired
2009
Spring: Test Mercenaries disband
October: Forgeability Fixit
2010
March 6: TAP Fixit
Testing Grouplet Outcome
O(5 years), O(100s of volunteers)
TAP Fixit effectively met TC Level 3 goal
(Only one quarter behind schedule)
Testing Grouplet Outcome
Thorough automated testing now the norm
Most breakages fixed before clients notice
David and Golaith
What are the issues with US Government IT development?
US Government Priority Structure
limiting perceived risk
meeting regulatory requirements
job security
Don’t rock the boat.
Internalization:
Inertia/Insecurity
No incentives for quality
Pendleton Civil Service Reform Act
(jwz: People who want to work for a successful company vs. work to make a company successful)
Maintenance of status quo
Inertia/Ignorance
Waterfall thinking persists
Testing is someone else’s problem
Insecurity
Perception: Gov’t can’t attract/wastes talent
Lack of career development (e.g. training, conferences)
Hopelessness
Ignorance/Communication Breakdown
Policy often mandated by nontechnical people
Development teams disconnected from end users
They don’t know what they don’t know
Friction
Outdated tools and deployment procedures
Vendor lock-in via ownership of code, deployment procedures, even data
Accountability
In the current atmosphere, it’s often punitive.
“Holding someone accountable” is tantamount to getting them fired.
Meeting with the Bobs
Challenges
Inertia
Insecurity
Ignorance
Friction
Communication Breakdown
Priority Structure
What Federal agencies are involved in the reform effort?
United States Digital Service (USDS)
Founded July 2014
Under Exec Office of the President aka “White House”
“Air cover”: rapid, precise technical work and consultation where needed
18F
Under the General Services Administration
Located at 18th and F Streets
Founded March 2014 by Presidential Innovation Fellows
18F
Simplify contract procurement via Inter-Agency Agreements
Products developed as open-source, using Agile methodologies
Software as a “General Service”
18F
Visible example of Agile development
Outreach still necessary
Examples, docs, lectures, consulting, and hands-on contract work
Wide exposure == opportunity for cross-agency, ad-hoc collaboration
18F
Consumer Financial Protection Bureau (CFPB)
July 2010: Dodd-Frank phynancial regulation
July 2011: CFPB founded
Applied Agile practices from the start
Several 18F/USDS recruits come from CFPB
Consumer Financial Protection Bureau (CFPB)
USDS/18F Client Agencies
Veterans Affairs
Social Security
US Citizenship and Immigration Services
CIO Mark Schwartz’s Blogs:
How do Google’s lessons apply to US Government IT development?
Mapping Grouplet experiences to US Gov’t
Details boil down to same fundamental issues
“Crossing the Chasm” model applies
Functional “Rainbow of Death” needs the same
Mapping Grouplet experiences to US Gov’t
Emotions, psychology > Technical issues
Creativity, fun => Long-term sustainability
Rebel Alliance
Coalition of individuals from the “White House”, USDS, 18F, CFPB & other agencies
Aimed at instigating government IT reform
Rebel Alliance
Connecting with and empowering great talent
Bust echo chambers, not create a new one
Straightforward Tactics
Documentation/Wikis
In-house training/EngEDU
Mailing list/“help desk”
Tech Talks
Tactics Requiring Adaptation
Test Certified-like program => CFPB “mentors”
Fixit-like events
Testing on the Toilet?
USDS & 18F => Test Mercenaries
The details aren’t important.
The community is.
Albert’s RoD, Rebel Alliance Version
Intervene
Validate
Inform
Inspire
Empower
Mentor
Dependent
Independent
USDS
Success stories in “albatross” projects
Tech Talks
TotT?
Agile Assisted Acquisitions (18F)
Useful Mythology
Develop/share internal expertise
External consultants
FOIA
Direct 18F contracts
Fixits?
CFPB example
Test Certified-like program
Rebel Alliance (18F, CFPB, USDS)
Schwag
(not T-shirts)
1-on-1s
Continued support
(18F, Rebel Alliance)
Encourage risk-taking
Docs/Wikis
“Help Desk”
Career development
Learn from mistakes (not punish)
Concrete Goals
Elimination of Friction
Cultivation of knowledge and expertise
Adoption of automated testing
Adoption of Agile methodologies
New Methods and Habits
Risk-taking (vs. thought-slavery)
Cultivation of soft power
Ad-hoc collaboration
What accountability looks like
Responsibility for quality up-front
e.g. Test your own code!
Responsibility for mistakes/defects as they arise
No excuses, no blame
What accountability looks like
Willingness to learn and improve
Accountable behavior encouraged and rewarded
Genuine effort to avoid preventable issues
Meta Goals
Security/Procurement/Hiring Reform
Contract reform through incentive reform
Replace self-preservation with shared goals
“You should be scared that it’s just us.”
Erie Meyer
(on the Rebel Alliance):
“You should be scared that it’s just us.”
Me: “I’d be scared if it wasn’t.”
Can it succeed?
Yes.
Will it succeed?
I don’t know.
“It is better to die on your feet…”
What’s at stake?
What’s at stake?
Lives and livelihoods
If the US Federal Government can do it...
If the United States Federal Government can reform its development practices...
...then what’s your team’s excuse?
None More Black
Partners-in-Crime
Brought to you with valuable feedback and contributions from:
How to get in touch
Google vis-a-vis US Government IT
| US Government | |
Internal Priorities | Measurement, promotions | Extended contracts, deferred accountability, job security |
Challenges | Overconfidence, delivery pressure, ignorance, build friction | Underconfidence, contract pressure, legal restrictions, waterfall thinking, accountability |
Instigators | Testing Grouplet, Test Mercenaries, Testing Tech, Build Tools, Eng Prod | Rebel Alliance, White House/USDS, GSA/18F, key folks in USCIS, VA, SS |
Methods | Soft power, ad-hoc collaboration, experimentation, programs geared to culture of measurement, tools, docs, talks | Agile teams, Inter-Agency Agreements, internal consulting, Agile procurements, training…??? |