Introduction to Pivotal Labs and their Way.
Original slides by Pivotal Labs, found at http://assets.pivotallabs.com/talks/Agile%20the%20Pivotal%20Way.pdf
Agile, The Pivotal Way
20 years of experience
Condensed into some things that work for us
Ian McFarland, VP Technology ian@pivotallabs.com
Pivotal Labs Snapshot
• Founded 1989
• Agile since mid ‘90s
• Rails since 2006
• Approximately 100 people, and growing
• HQ in San Francisco
• Regional offices in New York, Boulder,
and Singapore
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
A little quieter
than we used to be
...starts with breakfast
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Followed by Standup
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Followed by Standup
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Stand-Up for 50 People?
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
The Large Standup Covers
Things of Global Utility
• Help
• Anything anyone needs help on
• Interesting
• Anything of global interest or utility
• New techniques, interesting gotchas, events
• Introductions
• Anyone new to the office
• Stretch
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
A whiteboard helps capture
Helps and Interestings
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
It’s a place for people to jot
• Bulleted Text Goes Here
• Bulleted Text Goes Here
down topics so they’re not
• Bulleted Text Goes Here
forgotten
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
An information radiator
• Bulleted Text Goes Here
shows who’s on what project
this week.
The big standup is followed
by Team Standups
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
The big standup is followed
by Team Standups
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...and then we start pairing
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...and then we start pairing
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Pivot
• Bulleted Text Goes Here
Client
• Bulleted Text Goes Here
Product Owners are
Close at Hand
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Build monitors...
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...are visible...
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...and ubiquitous.
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Wednesday Tech Talks
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...which we videotape
...and
Title share...
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
http://pivotallabs.com/talks
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
email station
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
A Typical Day at Pivotal Labs
• 8:45 Breakfast
• 9:07 Standup
• 9:15-ish Team Standups
• Noonish Lunch
• 6:00 End of the work day
Pivot Pong PRN
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
The Theory Behind Breakfast
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Pivot Pong
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
We try to remove
impediments to productivity
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...and foster learning...
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Productive Workspace
• Open Workspace
• Colocated Developers and Customer
• Consistent Pairing Stations
• One big screen, 2 keyboards (we use 27” and 24” iMacs)
• No laptops on the floor
• Visible build monitors
• Everyone can see the backlog in Tracker
• Breakfast, snacks and beverages on hand
• Space for interruptions away from the workspace
Standard Development Workstation
• Keeping tools consistent across machines is critical to
high-rotation pairing.
• People don’t have their own machines, but sit where
their project is.
• Machines are reimaged after each project • ASR FTW!
• A brand new machine is ready to use within 30
minutes of it showing up on the floor.
Why Sustainability Matters
(for bean counters)
• Predictable delivery is at a premium
• Tired developers introduce bugs
• Developer retention is important!
• Good developers are never easy to come by
• Ramp-up is expensive
• Team changes expose companies to risk
• Crunch time buys short-term productivity at long-
term cost
Why Developer Happiness
is Important to the Business
• Leading Indicator: Developer Happiness strongly
correlated to Developer Productivity
Grunt Work = Money Wasted
• Happy workers are more focused
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Multiple Locations
The New York Office
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Standup Agenda Whiteboard
Pairing Stations
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Tech Talks
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Tech Talks
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Email Stations
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Community Events
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Community Events
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Community Events
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Community Events
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Community Events
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Community Events
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Boulder, Colorado
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Simple Telepresence
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Meeting rooms all set up for
teleconferencing
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Robots! We have Robots!
Cheap and Cheerful Telepresence
• Mac Mini
• HDTV
• iSight
• Snowball Mic
• Skype or iChat
• Total: about $1,500
That’s nice... How do we do that?
• Business Driven: Requirements come from business stakeholders
• Iterative Development, with Short Iterations
• Test/Behavior Driven Development
• Continuous Integration, Continuous Releasability
• Pair Programming
• Productive Work Environment
Business Driven
• Requirements come from business stakeholders
• One designated Customer is empowered to make decisions
• Priorities are set by that Customer
• The Customer can change priorities on anything unstarted
• The Customer accepts the work in fine-grained increments
• The Customer is intimately aware of progress, and projected
completion dates
• Closing the feedback loop is critical Accept Reject
TDD/BDD
• Good tests tell us when we’ve met the customer requirements
• They tell us when we’ve broken behavior that used to work
• They tell us when we haven’t, so we can refactor with impunity
• Writing tests first keeps us from overdesigning/doing things we
don’t need to do
• Writing tests first forces cleaner API design, because we have to
call into our own code in order to write it
• It leads to looser coupling and encourages higher cohesion
• Good developer testing keeps the cost of change constant
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Iterative Development
• Because the customer is seeing the work on a daily basis, the
feedback cycle is short
• This keeps the cost of change low, by preventing unnecessary
work
• It allows for new insights to be gained from the work we’ve
already completed, and for those insights to be incorporated
into our new code
• Iterations are as short as we can make them
Continuous Integration,
Continuous Releasability
• Knowing when things break is critical to reducing the cost of
fixing defects.
• Keep the build status visible, so you can fix it quickly
• A broken build is a ‘stop the line’ event
• Continuous releasability does not mean you release every day.
• It just means you can.
• Releases can be distracting, so weigh the cost of a release
against the value it adds to the business.
Pair Programming
• Do we really have to pair?
• Isn’t Pairing Slower?
• I don’t like pairing.
• I’m shy.
• I don’t want to look stupid.
Do we really have to pair?
•Yes, you do.
• ...but only if you want to be efficient
• This is one of the least-used practices, and one of
the most important.
• And stop whining! You do it already when you get
stuck on something.
What do developers really do all day?
• Coding
• Reading web pages about coding
• Stuck on some problem, unsure of:
• The right approach
• What the API for that object was
• How SQL indexes are selected
• How bind(this) works in JavaScript
• Checking email
• Checking news, stock price, staring blankly into space
How does pairing help?
• 80/20 rule: You don’t get stuck, so you spend your time on
the most interesting part of the code.
• As you eliminate the grunt work (thanks Rails) more of the
work requires real thinking, and design
• You talk through design, and refine before you code.
• You learn from your pair, everything from design and testing
techniques to (no)SQL, CSS, and JavaScript tips.
• Focus matters: Your pair keeps you paying attention, and
can smooth over disruptions
How does pairing help?
• More developers in a smaller space
• How many truly independent fronts are there in your
codebase on which you can make progress?
• New team members: You’re really productive the first hour,
not marginally productive starting two weeks in
• They have a local sherpa to tell them how the code they’re
working on actually works.
• Knowledge Silos: Your bus number approaches ∞
Team Size
• A single pair has zero communication overhead
• 2-3 pairs have almost no communication
overhead, as long as pairs are rotated
• 4-5 pairs require a whole additional FTE for
coordination
• Above 5 pairs, projects really need to be
subdivided into separate efforts
• And you have to have enough separable work so
that the additional people are adding value
Agile is not...
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
...a religion.
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
The Client Engagement
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
The Agile Inception
Client Engagement Model
• Get their Product Owner in our space
• Start as the whole team,
or work with their existing team
• Help them hire, replacing Pivots as we go
• At the end of the project, they know our
practices, and their own code base
Culture Matters!
• Consistency of service
between teams and locations
• It works!
Maintaining the Culture
kaibara87
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
The Team Matters
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Market Street
San Francisco
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Shake Shack
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Broadway
Manhattan
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Pearl Street
Boulder
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Hire Well
Hire better than you
• A’s hire A’s
• B’s hire C’s
• Hire A+’s
rochelle, et. al.
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Hire for Aptitude and Fit
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Pairing with a Candidate
Title
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
• Bulleted Text Goes Here
Come Visit!
• You all have an open invitation to
come visit us in any of our locations.
• Just drop me a note and we’ll set it up.
Thanks!
• Ian McFarland, VP Technology, Pivotal Labs
• @imf
• ian@pivotallabs.com
• Talks at http://pivotallabs.com/talks
• Jobs at http://pivotallabs.com/jobs
• Try out Tracker at http://pivotaltracker.com/
• Photos used under with attribution as noted or are
original works