Agile the Pivotal Way-fresh - Labs

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 ...
60MB Sizes 0 Downloads 61 Views
Agile, The Pivotal Way 20 years of experience Condensed into some things that work for us

Ian McFarland, VP Technology

[email protected]

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

A Typical Day at Pivotal Labs

...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 • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here

It’s a place for people to jot down topics so they’re not forgotten

Title • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here

An information radiator 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 • Bulleted Text Goes Here • Bulleted Text Goes Here

Pivot ☞ Client ☞

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

Title ...and

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

...and people go home at 6.

A Typical Day at Pivotal Labs • 8:45 • 9:07 • 9:15-ish • Noonish • 6:00

Breakfast Standup Team Standups Lunch 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

[email protected]

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 • Bulleted Text Goes Here

...and foster learning...

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 longterm 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



Singapore

Singapore yeowatzup

grongar

Rotations Ralph Hockens

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

Remote Pairing

What do you mean, Agile? Ralph Hockens

Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Title

Individuals and interactions over processes and tools Goes Here documentation • Bulleted Working software Text over comprehensive Customer collaboration overHere contract negotiation Text Goes • Bulleted Responding to change over following a plan

• Bulleted Text Goes Here That is, while there is value in the items on Bulleted Text Goes • right, the we value the items on Here the left more. • Bulleted Text Goes Here

Kent Beck

James Grenning

Robert C. Martin

Mike Beedle

Jim Highsmith

Steve Mellor

Arie van Bennekum

Andrew Hunt

Ken Schwaber

Alistair Cockburn

Ron Jeffries

Jeff Sutherland

Ward Cunningham

Jon Kern

Dave Thomas

Martin Fowler

Brian Marick © 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice.

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

Test-Drive Everything! • Rails, Ruby, of course • JavaScript too! • Mobile too!

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 ∞

Pairing Combinations

Pairing Combinations

Pairing Combinations

Pairing Combinations

? ?

?

?

? ?

?

?

Pairing Combinations

? ?

?

?

? ?

?

?

Pairing Combinations

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

Anchors ell brown

All but the anchor can swap out whenever

Specialization MC4 Army

Title • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here

Design

Enough Design zengame

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.

...but a tool that works well Terinea IT Support

...and that needs to be renewed continuously. donielle

Retrospectives

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

Family andresmh

pedrosimoes7

Family jronaldlee

Title • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here • Bulleted Text Goes Here

The Agile Inception

Ramp up or down as needed alexliivet

TheTruthAbout...

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

Business Terms

• Net 15, with 30 day retainer

Christopher Isherwood

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

The Location 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 • Bulleted Text Goes Here • Bulleted Text Goes Here

Shake Shack

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

Fusionopolis Singapore

yeowatzup

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

The Rob Pairing Interview

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

Listen to your gut!

TheGiantVermin

The Two Beer Test

Don’t keep people who don’t fit

jessicafm

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 • [email protected] • Talks at http://pivotallabs.com/talks • Jobs at http://pivotallabs.com/jobs • Try out Tracker at http://pivotaltracker.com/ • Photos used under

original works

with attribution as noted or are