SlideShare a Scribd company logo
Scaling is about Un-Scaling
Technical Debt
Jeff Szczepanski
Chief Operating Officer
talljeff@stackoverflow.com
Suffering from Technical Debt?
• Regular Schedule Slips?
• [Frequent] Need to Refactor things?
• Irregular and Inconsistent Output of New Features?
• Adding New Developers Doesn’t Speed Things Up?
• Buggy Code and Frequent Regressions?
• Ongoing Performance or Stability Problems?
• Slow Turnarounds of Bug Fixes?
• Bug Fixes for Your Bug Fixes?
Suffering from Technical Debt?
What do you do?
REWRITE!
Wait, REWRITE?
V1.0 V2.0 V3.0
Another Kind of Technical Debt
How Much Code Are You Tossing?
How Much Tossing was Really Unavoidable?
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt
Definition of Technical Debt
Misalignment of what is easy to do with your
code base and data structures vs. what you need
them to do for your Product(s) to be [more]
successful in the Marketplace
Time
Features &
Functionality
The Hot Coals of Growth
Evolving Bar Of Quality
80/20 Rule
90/10 Rule
95/05 Rule
99/01 Rule
Customer Compelled vs. Market
Focused
The Debt Comes Not Just From Being Customer
Compelled in Feature Definition, but it Comes
from Being Customer Compelled in How Your
System is Designed.
How Do We Ensure This?
Time
Features & Whole
Product Quality
…in the eyes
of your
customers
Key to Scaling Your Business
>>> Bringing your Customers and Their
Data Along With You on Your Road Map
Holy Wars
ie: Let’s Talk About Software Process
Agile Good
Everyone Agrees, Right?
Waterfall Bad
Good Properties of Agile
• Admits that Requirements Evolve
• Encourages Regular Releases
– Which allows Validation of progress more often
• Sprints are Excellent for Driving Cadence
• Closes the Loop Relative to Quality
– Quality in all forms
Pitfalls of Agile
• Scheduling Beyond a Few Sprints Seems Rare
• Implicitly Encourages Feature Centric Thinking
– At the Expense of Good System Design
• Incremental Nature encourages Short Cuts
– Lighter Specs, Lighter Documentation, etc.
->> Why plan or document things in too much detail
when it’s just going to change anyway.
Good Properties of Waterfall
• Formal Specifications Rule
• Emphasizes Detailed Planning
• System Design is specifically a thing
• Highly Efficient, if Requirements are Solid
Pitfalls of Waterfall
• Requirements are Never Perfect
• Encourages Long Serial Release Cycles
– Spec Everything, then Design Everything, then
Build Everything, then Test Everything
• Problems Discovered Late
• Cost of Errors High
Observation
• Pitfalls of Agile are pretty much
the Strengths of Waterfall
• Strengths of Agile are pretty
much the Pitfalls of Waterfall
The Agile - Waterfall Continuum™
Agile Waterfall
Key Variables to Consider
• Length of Release Cycles
• Clarity/Confidence of Customer Requirements
• Depth of System Complexity
• How Catastrophic Are Defects?
• Size of Software Team/Customer Base
Agile
Waterfall
• Requirements Discovery/Validation
• Incremental Feature Delivery
• Simple Systems close to UI
• The progression of “dot” releases
• Architecture Phases
• Development of Core Services
• Complex Modules far from UI
• The Things that Deliver on Your
Differentiation and Positioning
Visualizing This
…and Getting a Little More Practical
Crazy/Hot Matrix
BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt
The Joel Test
• Do you use source control?
• Can you make a build in one step?
• Do you make daily builds?
• Do you have a bug database?
• Do you fix bugs before writing new code?
• Do you have an up-to-date schedule?
• Do you have a spec?
• Do programmers have quiet working conditions?
• Do you use the best tools money can buy?
• Do you have testers?
• Do new candidates write code during their interview?
• Do you do hallway usability testing?
Additions for Teams At Scale
• Do you Document Your Services & Major
Modules?
– Concise Description of Role & Scope
– The Full API and all the Interface Data Types
– Key Design Assumptions & Dependencies
– Single Person on the Team that Owns each
Additions for Teams At Scale
• Do you Document all Your Data?
– Text for Role of every Table
– Text on Purpose and Invariants for
Every Column
– Owner that reviews every field
addition/deletion
Additions for Teams At Scale
• Do you Enforce a Coding
Standard?
• Do you do Code Reviews?
Additions for Teams At Scale
• Do You Track Bugs Back to Their Source?
– Closes the Loop on Quality
– Looking for brittle modules
– Looking for programmers in need of mentoring
Additions for Teams At Scale
• Do you Define Deadlines and Hit Them?
– Ie: Can you Make Predictable Schedules?
Scheduling Skeptic?
Why spend time making a schedule we’ll just
end up missing….we’ll put that time into the
building functionality.
Schedule Skeptic?
Why bother digging that foundation, you’re just
increasing the height of the building we need to
build.
Why Schedules are Important
• Sales, Marketing, Support & Customers all
care when things will ship
• Good Roadmap Decisions Depend on Valid
Cost/Benefit Tradeoffs
Why Schedules Are Important
How else do you deterministically evaluate the
performance of your developers or your
development team?
Why Schedules Are Important
Predictability is a Symptom of High Quality
Software Development
Key Point
Having Reliable Software Schedules
is crucial to efficient scaling and
continuous output.
ie: Good Schedules is Good Business
More On Schedule & Cadence
• Schedule Slips are a Learning Opportunity
– Estimation is a Specific Skill, so Develop It In
People
• It’s Better to Do Structured Slips than
Cramming
• Each Team Should Have an Anchor and a
Rover
Pulling It Together
Team Organization
Lots of Skills at Play Here
• Discovering, Developing and Finalizing Requirements
• System Architecture, Design and Code Construction
• Quality Control including effective testing and
validation
• Task Estimation and Project Management
• Deployment and Ongoing Maintenance
• Team Morale and the Things that Drive Cadence
Important Observations
• Understand Performance != Results
• Bunches of Separable Skills to Develop
• Desire Steady Cadence & Continuous Output
• Must pay attention to Motivation and Morale
• Seek to Empower and Enable, not Manage
Three Key Roles
• Developers: As team members
• Team Leaders: As Player & Coaches
• Engineering Managers: Skills Development
Team Leader
• Walking Personification of Your Ideal Developer
• Natural Leaders that enjoy Mentoring
• Drives Cadence and Morale of the Team
– Usually the Scrum Master for the Team
• Responsible for Team meeting its Deadlines
• In Charge of Quality of what the Team is Building
• Player and a Coach -> Still Codes on the Team
• Eyes and Ears for Engineering Management
– Spot treatments not skills development
Engineering Manager
• Primary Responsibility is Skills Development
• Line Manager of all the Developers
• Removes Operational Barriers
– Helps define and deploy common tools & infrastructure
• Works with a Longer Term Horizon
– More Month to Month than Day to Day
• Role Specializes as Organization Grows
– Splits into Operational Aspects and Skills Development Aspects
Role Separation
Team Leaders => Track Racing Pit Crew
Engineering Management => Garage Mechanics
On Team Morale and Cadence
• Bottom Up Estimates Only
• Strive for Continuous and Steady Output
– Expect Ownership of Goals but No Death Marches
• Use Peer and Social Pressure vs. Edicts
– Setting Cultural Norms and Expectations
• Merit not tenure based Advancement
In Summary
• Minimizing Technical Debt is About Matching
Your Code Base and Data to your Market
• Predictability Highly Correlates to Quality
• Understand Performance != Results
• Ultimate Goal is Developing a Suite of Strong
Skills in Each Developer
Questions?
Thank You!
talljeff@stackoverflow.com
@inscitekjeff

More Related Content

PDF
BoS2015 Trish Khoo – Engineering Manager, Google
PPTX
Agile - A failure story
PDF
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
PPTX
Agile Israel 2017 bugs zero by Arlo Belshee
PPTX
The Perfect Product Owner
PPTX
The Perfect Product Owner
PDF
I have an app idea, now what (ascendle) (ProductCamp Boston 2016)
PPTX
Lean conference 2014 Open Market - how we have benefited from the application...
BoS2015 Trish Khoo – Engineering Manager, Google
Agile - A failure story
Agile: the Good, the Bad and the Ugly - Webinar by Clarke Ching Agile - Septe...
Agile Israel 2017 bugs zero by Arlo Belshee
The Perfect Product Owner
The Perfect Product Owner
I have an app idea, now what (ascendle) (ProductCamp Boston 2016)
Lean conference 2014 Open Market - how we have benefited from the application...

What's hot (20)

PPTX
How to do Estimates (well) in Agile?
PPTX
How pair programming can strengthen teams
PPTX
Automation is hard and we are doing it wrong
PDF
Fiverr - delivering fast w/ no QA - Agile Israel 2016 Gil Wasserman
PPTX
Agile in the Federal Government
PDF
Does this FizzGood? Improve velocity, predictability & agility by asking a si...
PPTX
What to Look for in a ScrumMaster
PPTX
Helping operations top-heavy teams the smart way
PPTX
Agile Truths and Misconceptions Exposed
PDF
Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
PPTX
Why is important than How Discuss agile Delhi_2015final
PDF
Scrum and DevOps training
PPTX
Agile Metrics Meetup: What to Measure and How?
PPTX
Anatomy of a Agile Product Lifecycle - Eilon Reshef - Agile Israel 2013
PDF
Embracing the Consumerization of IT in Your Company
PPTX
Agile at enterprice level
PPTX
Paul Theyers (Assurity Consulting)
PPTX
Soft Launch Planning and Management | Dylan Tredrea
PDF
Being agile while standing in a waterfall
PDF
Being vs Doing agile
How to do Estimates (well) in Agile?
How pair programming can strengthen teams
Automation is hard and we are doing it wrong
Fiverr - delivering fast w/ no QA - Agile Israel 2016 Gil Wasserman
Agile in the Federal Government
Does this FizzGood? Improve velocity, predictability & agility by asking a si...
What to Look for in a ScrumMaster
Helping operations top-heavy teams the smart way
Agile Truths and Misconceptions Exposed
Spiking Your Way to Improved Agile Development - Anatoli Kazatchkov
Why is important than How Discuss agile Delhi_2015final
Scrum and DevOps training
Agile Metrics Meetup: What to Measure and How?
Anatomy of a Agile Product Lifecycle - Eilon Reshef - Agile Israel 2013
Embracing the Consumerization of IT in Your Company
Agile at enterprice level
Paul Theyers (Assurity Consulting)
Soft Launch Planning and Management | Dylan Tredrea
Being agile while standing in a waterfall
Being vs Doing agile
Ad

Viewers also liked (17)

PDF
BoS2015 James archer - software design mistakes that just wont die
PDF
Scaling Engineering Teams for Growth
PPTX
BoS2015 Robert J Moore - Looking Good for Fun and Profit. When Does Your Comp...
PDF
BoS2015 - Sarah Allen – Co-Founder, Mightyverse, 18F
PDF
BoS2015 Claire Lew, Know Your Company. Don’t Be The Last to Know
PDF
BoS2015 Tania Katan - It Was Never a Dress
PDF
BoS2015 Aaron Aycock - Making The Leap
PPT
Bos2015 - We Need to Talk About Unicorns. Values > Valuations.
PDF
BoS2015 David Heinemeier Hansson – Creator of Ruby on Rails, Founder of Basec...
PPTX
BoS2015 Kristine Woolsey - Solve the Right Problem
PDF
BoS2015 - Steli Efti - How To Sell Software Using Sales
PPTX
BoS2015 Precious Lunga - how can we use existing tech to make a difference in...
PPTX
BoS2015 Art Papas - The Bullhorn Journey to Customer Focus
PDF
Building and Scaling Technical Teams
PPT
BoS2015 Paul Kenny - Difficult Conversations
PPTX
BoS2015 Matthew Bellows – CEO, Yesware. The Case for Mindfullness at Work
PPTX
BoS2015 Rich Mironov - The Four Laws of Software Economics
BoS2015 James archer - software design mistakes that just wont die
Scaling Engineering Teams for Growth
BoS2015 Robert J Moore - Looking Good for Fun and Profit. When Does Your Comp...
BoS2015 - Sarah Allen – Co-Founder, Mightyverse, 18F
BoS2015 Claire Lew, Know Your Company. Don’t Be The Last to Know
BoS2015 Tania Katan - It Was Never a Dress
BoS2015 Aaron Aycock - Making The Leap
Bos2015 - We Need to Talk About Unicorns. Values > Valuations.
BoS2015 David Heinemeier Hansson – Creator of Ruby on Rails, Founder of Basec...
BoS2015 Kristine Woolsey - Solve the Right Problem
BoS2015 - Steli Efti - How To Sell Software Using Sales
BoS2015 Precious Lunga - how can we use existing tech to make a difference in...
BoS2015 Art Papas - The Bullhorn Journey to Customer Focus
Building and Scaling Technical Teams
BoS2015 Paul Kenny - Difficult Conversations
BoS2015 Matthew Bellows – CEO, Yesware. The Case for Mindfullness at Work
BoS2015 Rich Mironov - The Four Laws of Software Economics
Ad

Similar to BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt (20)

PPTX
Technical Excellence Doesn't Just Happen - AgileIndy 2016
PPTX
Organizational Design for Effective Software Development
PDF
Jile | 5 dimensions on scaling agile
PDF
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
PPTX
The Executives Guide
PDF
Agility Transformations - Learn, Plan, Go!
PDF
The Executives Step-by-Step Guide to Leading a Large-Scale Agile Transformation
PPT
Scaling Online Game Development
PDF
The Rationale for Continuous Delivery
PPTX
Alternatives to scaling your agile process: valuing outcomes over output
PPTX
Alternatives to scaling your agile process: valuing outcomes over output
PDF
From Agile Teams to Agile organizations
PPTX
How to scale agility in your enterprise
PDF
Large scale agile_svante_lidman
PDF
Scrum: From the Classroom to the Workplace :: IPLeiria 2016
PDF
Introduction to Agile by David Draper
PPTX
ROOTS2011 Continuous Delivery
PPTX
Continuous Delivery
PPTX
Agile and Lean Software Development
PDF
Agile is Dead :: Aginext London 2018
Technical Excellence Doesn't Just Happen - AgileIndy 2016
Organizational Design for Effective Software Development
Jile | 5 dimensions on scaling agile
ANI | Agile Mindset Day @Gurugram | Agile Planning: Effective Practices and C...
The Executives Guide
Agility Transformations - Learn, Plan, Go!
The Executives Step-by-Step Guide to Leading a Large-Scale Agile Transformation
Scaling Online Game Development
The Rationale for Continuous Delivery
Alternatives to scaling your agile process: valuing outcomes over output
Alternatives to scaling your agile process: valuing outcomes over output
From Agile Teams to Agile organizations
How to scale agility in your enterprise
Large scale agile_svante_lidman
Scrum: From the Classroom to the Workplace :: IPLeiria 2016
Introduction to Agile by David Draper
ROOTS2011 Continuous Delivery
Continuous Delivery
Agile and Lean Software Development
Agile is Dead :: Aginext London 2018

More from Business of Software Conference (20)

PPTX
BoSUSA24 | Austin Bouley | 3 Huge Levers That Got My SaaS To $500K ARR In 5 M...
PDF
BoSEU25 | Gareth Marlow | No One Knows What They’re Doing. Especially You. Le...
PDF
BoSEU25 | Mark Stephens | 25 Years of Heretical Thinking
PDF
BoSEU25 | Steve McLeod | How Bootstrapped Teams Really Choose What Feature to...
PPTX
BoSEU25 | Diego de Jódar | Why User Activation is the Key to Sustainable Growth
PDF
BoSEU25 | David Pereira | Product Management or BS Management?
PDF
BoSEU25 | Sara Gordon | The Seven Deadly Sins & Positioning
PPTX
BoSEU25 | Elizabeth Lawley | Lessons Learnt from my AI Girlfriend
PPTX
BoSEU25 | Robin Landy | Finding Features Customers Will Pay (More) For
PDF
BoSEU25 | Greg Baugues | AI You’ve Been Doing It All Wrong
PDF
BoSEU25 | Melissa Appel | The Founders’ Guide to What Product Teams Need
PPTX
BoSEU25 | Ryan Singer | Framing and Hard Conversations
PDF
BoSEU23 Ryan Singer Debugging the Product Development Process.pdf
PDF
BoSON23 | Jim Morris | Designing and Running Customer Interviews that Work
PPTX
BoSUSA24 | Tania Katan | Human Ingenuity Beats Artificial Intelligence as the...
PPTX
BoSUSA24 | Shawn Anderson | From Bootstrapped to a Billion – Five BoS Talks T...
PDF
BoSUSA24 | Georgiana Laudi | Data-Rich, Insight-Poor – The Real Reason Your G...
PPTX
BoSUSA24 | Joanna Wiebe | How Every Customer Interaction Can be Improved With...
PPTX
BoSUSA24 | Jim Benton | Building Iconic Teams – Achieving the Impossible Toge...
PPTX
BoSUSA24 | Stephen Steers | Four Questions to Ask Before You Tell a Story Tha...
BoSUSA24 | Austin Bouley | 3 Huge Levers That Got My SaaS To $500K ARR In 5 M...
BoSEU25 | Gareth Marlow | No One Knows What They’re Doing. Especially You. Le...
BoSEU25 | Mark Stephens | 25 Years of Heretical Thinking
BoSEU25 | Steve McLeod | How Bootstrapped Teams Really Choose What Feature to...
BoSEU25 | Diego de Jódar | Why User Activation is the Key to Sustainable Growth
BoSEU25 | David Pereira | Product Management or BS Management?
BoSEU25 | Sara Gordon | The Seven Deadly Sins & Positioning
BoSEU25 | Elizabeth Lawley | Lessons Learnt from my AI Girlfriend
BoSEU25 | Robin Landy | Finding Features Customers Will Pay (More) For
BoSEU25 | Greg Baugues | AI You’ve Been Doing It All Wrong
BoSEU25 | Melissa Appel | The Founders’ Guide to What Product Teams Need
BoSEU25 | Ryan Singer | Framing and Hard Conversations
BoSEU23 Ryan Singer Debugging the Product Development Process.pdf
BoSON23 | Jim Morris | Designing and Running Customer Interviews that Work
BoSUSA24 | Tania Katan | Human Ingenuity Beats Artificial Intelligence as the...
BoSUSA24 | Shawn Anderson | From Bootstrapped to a Billion – Five BoS Talks T...
BoSUSA24 | Georgiana Laudi | Data-Rich, Insight-Poor – The Real Reason Your G...
BoSUSA24 | Joanna Wiebe | How Every Customer Interaction Can be Improved With...
BoSUSA24 | Jim Benton | Building Iconic Teams – Achieving the Impossible Toge...
BoSUSA24 | Stephen Steers | Four Questions to Ask Before You Tell a Story Tha...

Recently uploaded (20)

PDF
Printable Malayalam Gospel Tract - Be Sure of Heaven.pdf
PPTX
The Human Person as an Embodied Spirit.pptx
PDF
Printable Lao Gospel Tract - Be Sure of Heaven.pdf
PDF
Printable Macedonian Gospel Tract - Be Sure of Heaven.pdf
PDF
Printable Mizo Gospel Tract - Be Sure of Heaven.pdf
PPTX
Camp-Meetings by Pastor Simbaya Bright-WPS Office.pptx
PPTX
growing your marriage and let it rooted by the Word of God
PDF
Printable Kurdish Northern Kurmanji Gospel Tract - Be Sure of Heaven.pdf
PPT
Grace of God, kids devotional djfnjdnmxm, ZC,SD v jsdkncjxmc xzcadzgvavc
PPTX
Has-Satans-Little-Season-Already-Begun.pptx
PPTX
Joshua Through the Lens of Jesus: Part 8 - Ch.22-24
PDF
holistic health - yogic life style for hatha yoga practitioner
PDF
Printable Lingala Gospel Tract - Be Sure of Heaven.pdf
PPTX
Lesson study with details and Photos. Easy
PDF
Printable Malagasy Gospel Tract - Be Sure of Heaven.pdf
PPTX
Art of smart work Bhagavat Gita knowledge
PPTX
The Essence of Sufism: Love, Devotion, and Divine Connection
PDF
Chandogya_Upanishad_by_Swami_Swahananda.pdf
PPTX
The Biography of Walter Rea walter .pptx
PDF
Printable Maldivian Divehi Gospel Tract - Be Sure of Heaven.pdf
Printable Malayalam Gospel Tract - Be Sure of Heaven.pdf
The Human Person as an Embodied Spirit.pptx
Printable Lao Gospel Tract - Be Sure of Heaven.pdf
Printable Macedonian Gospel Tract - Be Sure of Heaven.pdf
Printable Mizo Gospel Tract - Be Sure of Heaven.pdf
Camp-Meetings by Pastor Simbaya Bright-WPS Office.pptx
growing your marriage and let it rooted by the Word of God
Printable Kurdish Northern Kurmanji Gospel Tract - Be Sure of Heaven.pdf
Grace of God, kids devotional djfnjdnmxm, ZC,SD v jsdkncjxmc xzcadzgvavc
Has-Satans-Little-Season-Already-Begun.pptx
Joshua Through the Lens of Jesus: Part 8 - Ch.22-24
holistic health - yogic life style for hatha yoga practitioner
Printable Lingala Gospel Tract - Be Sure of Heaven.pdf
Lesson study with details and Photos. Easy
Printable Malagasy Gospel Tract - Be Sure of Heaven.pdf
Art of smart work Bhagavat Gita knowledge
The Essence of Sufism: Love, Devotion, and Divine Connection
Chandogya_Upanishad_by_Swami_Swahananda.pdf
The Biography of Walter Rea walter .pptx
Printable Maldivian Divehi Gospel Tract - Be Sure of Heaven.pdf

BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt

  • 1. Scaling is about Un-Scaling Technical Debt
  • 2. Jeff Szczepanski Chief Operating Officer talljeff@stackoverflow.com
  • 3. Suffering from Technical Debt? • Regular Schedule Slips? • [Frequent] Need to Refactor things? • Irregular and Inconsistent Output of New Features? • Adding New Developers Doesn’t Speed Things Up? • Buggy Code and Frequent Regressions? • Ongoing Performance or Stability Problems? • Slow Turnarounds of Bug Fixes? • Bug Fixes for Your Bug Fixes?
  • 4. Suffering from Technical Debt? What do you do?
  • 7. V1.0 V2.0 V3.0 Another Kind of Technical Debt How Much Code Are You Tossing? How Much Tossing was Really Unavoidable?
  • 9. Definition of Technical Debt Misalignment of what is easy to do with your code base and data structures vs. what you need them to do for your Product(s) to be [more] successful in the Marketplace
  • 11. Evolving Bar Of Quality 80/20 Rule 90/10 Rule 95/05 Rule 99/01 Rule
  • 12. Customer Compelled vs. Market Focused The Debt Comes Not Just From Being Customer Compelled in Feature Definition, but it Comes from Being Customer Compelled in How Your System is Designed.
  • 13. How Do We Ensure This? Time Features & Whole Product Quality …in the eyes of your customers
  • 14. Key to Scaling Your Business >>> Bringing your Customers and Their Data Along With You on Your Road Map
  • 15. Holy Wars ie: Let’s Talk About Software Process
  • 16. Agile Good Everyone Agrees, Right? Waterfall Bad
  • 17. Good Properties of Agile • Admits that Requirements Evolve • Encourages Regular Releases – Which allows Validation of progress more often • Sprints are Excellent for Driving Cadence • Closes the Loop Relative to Quality – Quality in all forms
  • 18. Pitfalls of Agile • Scheduling Beyond a Few Sprints Seems Rare • Implicitly Encourages Feature Centric Thinking – At the Expense of Good System Design • Incremental Nature encourages Short Cuts – Lighter Specs, Lighter Documentation, etc. ->> Why plan or document things in too much detail when it’s just going to change anyway.
  • 19. Good Properties of Waterfall • Formal Specifications Rule • Emphasizes Detailed Planning • System Design is specifically a thing • Highly Efficient, if Requirements are Solid
  • 20. Pitfalls of Waterfall • Requirements are Never Perfect • Encourages Long Serial Release Cycles – Spec Everything, then Design Everything, then Build Everything, then Test Everything • Problems Discovered Late • Cost of Errors High
  • 21. Observation • Pitfalls of Agile are pretty much the Strengths of Waterfall • Strengths of Agile are pretty much the Pitfalls of Waterfall
  • 22. The Agile - Waterfall Continuum™ Agile Waterfall
  • 23. Key Variables to Consider • Length of Release Cycles • Clarity/Confidence of Customer Requirements • Depth of System Complexity • How Catastrophic Are Defects? • Size of Software Team/Customer Base
  • 24. Agile Waterfall • Requirements Discovery/Validation • Incremental Feature Delivery • Simple Systems close to UI • The progression of “dot” releases • Architecture Phases • Development of Core Services • Complex Modules far from UI • The Things that Deliver on Your Differentiation and Positioning
  • 25. Visualizing This …and Getting a Little More Practical
  • 28. The Joel Test • Do you use source control? • Can you make a build in one step? • Do you make daily builds? • Do you have a bug database? • Do you fix bugs before writing new code? • Do you have an up-to-date schedule? • Do you have a spec? • Do programmers have quiet working conditions? • Do you use the best tools money can buy? • Do you have testers? • Do new candidates write code during their interview? • Do you do hallway usability testing?
  • 29. Additions for Teams At Scale • Do you Document Your Services & Major Modules? – Concise Description of Role & Scope – The Full API and all the Interface Data Types – Key Design Assumptions & Dependencies – Single Person on the Team that Owns each
  • 30. Additions for Teams At Scale • Do you Document all Your Data? – Text for Role of every Table – Text on Purpose and Invariants for Every Column – Owner that reviews every field addition/deletion
  • 31. Additions for Teams At Scale • Do you Enforce a Coding Standard? • Do you do Code Reviews?
  • 32. Additions for Teams At Scale • Do You Track Bugs Back to Their Source? – Closes the Loop on Quality – Looking for brittle modules – Looking for programmers in need of mentoring
  • 33. Additions for Teams At Scale • Do you Define Deadlines and Hit Them? – Ie: Can you Make Predictable Schedules?
  • 34. Scheduling Skeptic? Why spend time making a schedule we’ll just end up missing….we’ll put that time into the building functionality.
  • 35. Schedule Skeptic? Why bother digging that foundation, you’re just increasing the height of the building we need to build.
  • 36. Why Schedules are Important • Sales, Marketing, Support & Customers all care when things will ship • Good Roadmap Decisions Depend on Valid Cost/Benefit Tradeoffs
  • 37. Why Schedules Are Important How else do you deterministically evaluate the performance of your developers or your development team?
  • 38. Why Schedules Are Important Predictability is a Symptom of High Quality Software Development
  • 39. Key Point Having Reliable Software Schedules is crucial to efficient scaling and continuous output. ie: Good Schedules is Good Business
  • 40. More On Schedule & Cadence • Schedule Slips are a Learning Opportunity – Estimation is a Specific Skill, so Develop It In People • It’s Better to Do Structured Slips than Cramming • Each Team Should Have an Anchor and a Rover
  • 41. Pulling It Together Team Organization
  • 42. Lots of Skills at Play Here • Discovering, Developing and Finalizing Requirements • System Architecture, Design and Code Construction • Quality Control including effective testing and validation • Task Estimation and Project Management • Deployment and Ongoing Maintenance • Team Morale and the Things that Drive Cadence
  • 43. Important Observations • Understand Performance != Results • Bunches of Separable Skills to Develop • Desire Steady Cadence & Continuous Output • Must pay attention to Motivation and Morale • Seek to Empower and Enable, not Manage
  • 44. Three Key Roles • Developers: As team members • Team Leaders: As Player & Coaches • Engineering Managers: Skills Development
  • 45. Team Leader • Walking Personification of Your Ideal Developer • Natural Leaders that enjoy Mentoring • Drives Cadence and Morale of the Team – Usually the Scrum Master for the Team • Responsible for Team meeting its Deadlines • In Charge of Quality of what the Team is Building • Player and a Coach -> Still Codes on the Team • Eyes and Ears for Engineering Management – Spot treatments not skills development
  • 46. Engineering Manager • Primary Responsibility is Skills Development • Line Manager of all the Developers • Removes Operational Barriers – Helps define and deploy common tools & infrastructure • Works with a Longer Term Horizon – More Month to Month than Day to Day • Role Specializes as Organization Grows – Splits into Operational Aspects and Skills Development Aspects
  • 47. Role Separation Team Leaders => Track Racing Pit Crew Engineering Management => Garage Mechanics
  • 48. On Team Morale and Cadence • Bottom Up Estimates Only • Strive for Continuous and Steady Output – Expect Ownership of Goals but No Death Marches • Use Peer and Social Pressure vs. Edicts – Setting Cultural Norms and Expectations • Merit not tenure based Advancement
  • 49. In Summary • Minimizing Technical Debt is About Matching Your Code Base and Data to your Market • Predictability Highly Correlates to Quality • Understand Performance != Results • Ultimate Goal is Developing a Suite of Strong Skills in Each Developer

Editor's Notes

  • #3: Before we dig in, I should introduce myself I’m Jeff Szczepanski, Chief Operating Officer at Stack Overflow. My role at Stack Overflow, as COO, is basically running “the business side” of the network. That is, there is the free service Q&A part of the company. Building out the Q&A platform itself and all the associated communities. That is headed up by Joel and several other really smart people at Stack. My half of business is all about assuming that healthy robust network exists, what do we do to make money? So sales, marketing, and products and services that we sell all falls under me. Relative to my own background, I’m Electrical Engineer by training, but spent most of my career as a developer, co-founder, CTO/VP of Engineering type stuff. My specialty is really in embedded real time systems development on real time operating systems. Doing hard core device drivers and network protocol stack type stuff all in C/C++.
  • #11: Following MVP principles, you will likely get some traction, but what gets you traction there is not the same thing that leads to scalable growth of a software team
  • #40: This is self evident to me, but people seem to debate me on this all the time.