1. agile development
THE PIVOTAL WAY
Mike Gehard
Software Engineer, Boulder
mgehard@pivotallabs.com
@pivotallabs
@mikegehard
2. PIVOTAL LABS
• 200+ people in San Francisco, New York, Boulder,
Los Angeles, Boston, London (for now)
• Ruby on Rails, iOS and Android
• Big name clients
• Makers of Pivotal Tracker (used by 500K people)
• Agile/XP since beginning of time
GRUELING, HARD CORE, DISCIPLINED
DEVELOPMENT PROCESS
2
9. A GRUELING DAY
• 08:45 Breakfast
• 09:05 All Hands Standup
• 09:15 Team Standups
• Lunch noon-ish
• Ping pong at will
• Done around 18:00* (*your mileage may vary)
9
10. IT’S ABOUT SUSTAINABILITY
• Consistent, predictable delivery is at a premium
• Tired developers leave bugs
• Tired developers leave
• Short-term bursts of productivity cost more in the
long term
Happy developers = productive developers
10
12. GOALS OF OUR SOFTWARE
PROJECTS
• Get V1 of new product to market quickly
• Malleable, change based on feedback
• Predictable schedule with no surprises
• Low bug count
• Performant, scalable
• Help client teams go faster and maintain it
12
15. EFFECTIVE (AND SUSTAINABLE)
SOFTWARE DEVELOPMENT...
• Is mostly about communication
• Needs to allow for change
• Takes discipline and rigor
• Needs to be constantly adjusted
The XP philosophy embraces and
enables these ideas.
15
16. OUR HISTORY WITH XP
• Started with “by the book” XP in 1999
• Helped Beck et al with the early books
• Great early experiences with XP
• Thinking is always evolving
• Various changes/additions to the process
Bottom line: it’s a truly different way to
build software, with awesome results.
And it’s fun, day after day.
16
19. PAIR PROGRAMMING
• Developers sit in pairs
• All machines are communal
• No laptops/iPhones
• Ping pong pairing
• Frequent pair rotation
• UX designers pair with developers as needed
19
20. PAIRING BENEFITS
• Higher quality code
• Shares codebase knowledge quickly
• Very high bus count
• More focus
• Greater discipline around other technical
practices
Pairing is our competitive advantage.
20
27. 100% TEST DRIVEN
• No production code written without a failing test
• No code checked in without running tests
• Focus on organization and readability of tests
• Focus on keeping tests fast
• Tests are for design and regression
Keeps cost of change constant.
27
28. RUTHLESS REFACTORING
• Code evolution
• Incremental design towards patterns
• It takes discipline, but pairing helps
Tells you when something is resistant to
change.
28
31. THE TEAM
• Small, typically 2-4 pairs
• Co-located, or intermingled-then-remote
• Daily standups, weekly planning meetings
• Same hours
• Stable anchor, but frequent cross-team rotation
Software development is a team sport!
31
32. INVOLVED CUSTOMER
• Within earshot and always available
• Empowered to make decisions
• Maintains prioritized backlog
• Accepts/rejects stories continuously
• Close collaboration with design/UX
Constantly aware of situation.
32