BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is...
Transcript of BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is...
![Page 1: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/1.jpg)
Scaling is about Un-Scaling Technical Debt
![Page 3: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/3.jpg)
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?
![Page 4: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/4.jpg)
Suffering from Technical Debt?
What do you do?
![Page 5: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/5.jpg)
REWRITE!
![Page 6: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/6.jpg)
Wait, REWRITE?
![Page 7: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/7.jpg)
V1.0 V2.0 V3.0
Another Kind of Technical Debt
How Much Code Are You Tossing?How Much Tossing was Really Unavoidable?
![Page 8: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/8.jpg)
![Page 9: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/9.jpg)
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
![Page 10: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/10.jpg)
Time
Features & Functionality
The Hot Coals of Growth
![Page 11: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/11.jpg)
Evolving Bar Of Quality
80/20 Rule
90/10 Rule
95/05 Rule
99/01 Rule
![Page 12: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/12.jpg)
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.
![Page 13: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/13.jpg)
How Do We Ensure This?
Time
Features & Whole Product Quality
…in the eyes of your
customers
![Page 14: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/14.jpg)
Key to Scaling Your Business
>>> Bringing your Customers and Their Data Along With You on Your Road Map
![Page 15: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/15.jpg)
Holy Wars
ie: Let’s Talk About Software Process
![Page 16: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/16.jpg)
Agile Good
Everyone Agrees, Right?
Waterfall Bad
![Page 17: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/17.jpg)
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
![Page 18: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/18.jpg)
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.
![Page 19: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/19.jpg)
Good Properties of Waterfall• Formal Specifications Rule• Emphasizes Detailed Planning• System Design is specifically a thing• Highly Efficient, if Requirements are Solid
![Page 20: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/20.jpg)
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
![Page 21: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/21.jpg)
Observation
• Pitfalls of Agile are pretty much the Strengths of Waterfall
• Strengths of Agile are pretty much the Pitfalls of Waterfall
![Page 22: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/22.jpg)
The Agile - Waterfall Continuum™
Agile Waterfall
![Page 23: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/23.jpg)
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
![Page 24: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/24.jpg)
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
![Page 25: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/25.jpg)
Visualizing This
…and Getting a Little More Practical
![Page 26: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/26.jpg)
Crazy/Hot Matrix
![Page 27: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/27.jpg)
![Page 28: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/28.jpg)
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?
![Page 29: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/29.jpg)
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
![Page 30: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/30.jpg)
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
![Page 31: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/31.jpg)
Additions for Teams At Scale
• Do you Enforce a Coding Standard?
• Do you do Code Reviews?
![Page 32: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/32.jpg)
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
![Page 33: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/33.jpg)
Additions for Teams At Scale• Do you Define Deadlines and Hit Them?– Ie: Can you Make Predictable Schedules?
![Page 34: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/34.jpg)
Scheduling Skeptic?
Why spend time making a schedule we’ll just end up missing….we’ll put that time into the building functionality.
![Page 35: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/35.jpg)
Schedule Skeptic?
Why bother digging that foundation, you’re just increasing the height of the building we need to build.
![Page 36: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/36.jpg)
Why Schedules are Important
• Sales, Marketing, Support & Customers all care when things will ship
• Good Roadmap Decisions Depend on Valid Cost/Benefit Tradeoffs
![Page 37: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/37.jpg)
Why Schedules Are Important
How else do you deterministically evaluate the performance of your developers or your
development team?
![Page 38: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/38.jpg)
Why Schedules Are Important
Predictability is a Symptom of High Quality Software Development
![Page 39: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/39.jpg)
Key Point
Having Reliable Software Schedules is crucial to efficient scaling and
continuous output.
ie: Good Schedules is Good Business
![Page 40: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/40.jpg)
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
![Page 41: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/41.jpg)
Pulling It Together
Team Organization
![Page 42: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/42.jpg)
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
![Page 43: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/43.jpg)
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
![Page 44: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/44.jpg)
Three Key Roles• Developers: As team members• Team Leaders: As Player & Coaches• Engineering Managers: Skills Development
![Page 45: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/45.jpg)
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
![Page 46: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/46.jpg)
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
![Page 47: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/47.jpg)
Role Separation
Team Leaders => Track Racing Pit CrewEngineering Management => Garage Mechanics
![Page 48: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/48.jpg)
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
![Page 49: BoS2015 Jeff Szczepanski – COO, Stack Exchange - Stack Overflow. Scaling a Technology Business is About Unscaling Technical Debt](https://reader035.fdocuments.in/reader035/viewer/2022062820/58a86cb11a28ab90568b4bb3/html5/thumbnails/49.jpg)
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