SlideShare a Scribd company logo
Managing Technical Debt
          First Round Capital CTO Summit
          @sampullara




Friday, December 7, 12
Startup
             CompanyMy background in a 2x2




                         Consumer   Enterprise
Friday, December 7, 12
Startup
             CompanyMy background in a 2x2




                         Consumer   Enterprise
Friday, December 7, 12
What is technical debt?
               "As an evolving program is continually changed, its
               complexity, reflecting deteriorating structure, increases
               unless work is done to maintain or reduce it."
               — Meir Manny Lehman, 1980
               Ward Cunningham first coined the term
               Some debt you choose to incur, other debt happens
               through entropy, lastly you start in the hole
               Like normal debt, it usually must be repaid with interest
               or you go bankrupt



Friday, December 7, 12
Common Technical Debts

               Developer       Backup & disaster
               effectiveness   recovery
               Observability   Fault tolerance
               Scalability     Security
               Architectural   Backward
               flexibility      compatibility


Friday, December 7, 12
Developer effectiveness

               How long does it take to get a change to master? Then
               to production?
               Are you reviewing the code that is going into your
               codebase?
               Do you have extensive unit and integration test
               coverage?
               Are you closely tracking your dependencies?



Friday, December 7, 12
Observability

               Do you produce and capture enough logs to
               reconstruct failures?
               Do you track runtime metrics and compare them every
               release to watch for regressions?
               Do you have an alerting system in place to notify you if
               things fail or are going to fail?
               Do you have redundant monitoring?



Friday, December 7, 12
Scalability

               How far into the future, at the current growth rate, will
               your architecture work?
               Have you identified what the next bottleneck will be?
               Do you have time bombs in your data model?
               Does anything scale above linear with your business?




Friday, December 7, 12
Fault tolerance / Backup / DR

               Do you have any single points of failure?
               If one of your SPFs fails, how long until you can be
               serving traffic again?
               Are you dependent on caching to serve normal traffic?
               Could a software bug destroy data permanently?
               How long would it take to notice data corruption?



Friday, December 7, 12
Architectural Flexibility
               How often do you decide that a feature doesn’t fit into
               your current architecture?
               Is it easy to support backwards compatibility without
               compromising features?
               How long would it take to add a new field to one of the
               entities in your system?
               How difficult would it be to change hosting
               environments? To add another environment?


Friday, December 7, 12
Friday, December 7, 12
High-interest debt: Security
               How do you store customer credentials?
               Does your system naturally defend against XSS attacks
               and other well known exploits?
               Do you limit access to production systems?
               Do you systematically install software updates on your
               servers?
               Does everyone at your company use two-factor
               authentication on Google Apps, AWS & Dropbox?


Friday, December 7, 12
Friday, December 7, 12
53-bit ints in javascript

                           In HTML instead of data




                                  Text dates


                           Never released to GA



Friday, December 7, 12
Same data
                           wrong order




                         Data duplicated
                           in this link




Friday, December 7, 12
Choosing to take on debt

               Great APIs rather than tight coupling and magic
               Sufficient testing to ensure that rewrites are successful
               Track your assumptions and borrowing
               Measure the impact of the debt
               Schedule time for refactoring and clean up




Friday, December 7, 12
Conclusion


               Taking on technical debt is a manageable risk
               Measure and monitor for best results
               Leave time in the schedule just to make things better




Friday, December 7, 12

More Related Content

Viewers also liked

Mitera
MiteraMitera
Miteraobb
 
Workshop Schedule
Workshop Schedule Workshop Schedule
Workshop Schedule chorgheelim
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtChris Sterling
 
4 Methods to Avoid Dealing with Debt
4 Methods to Avoid Dealing with Debt 4 Methods to Avoid Dealing with Debt
4 Methods to Avoid Dealing with Debt IC System
 
5 ideas to overcome delinquent payments without offending your customers
5 ideas to overcome delinquent payments without offending your customers5 ideas to overcome delinquent payments without offending your customers
5 ideas to overcome delinquent payments without offending your customersrumadison
 
Debt management In Islam
Debt management In IslamDebt management In Islam
Debt management In Islamjubril
 
Developing an electronic health record for mobile community based health prac...
Developing an electronic health record for mobile community based health prac...Developing an electronic health record for mobile community based health prac...
Developing an electronic health record for mobile community based health prac...Health Informatics New Zealand
 
What Can A Creditor Do to Collect a Debt?
What Can A Creditor Do to Collect a Debt?What Can A Creditor Do to Collect a Debt?
What Can A Creditor Do to Collect a Debt?Becky Pintar
 
Debt Recovery Management or Debt Recovery Mechanism by Banks
Debt Recovery Management or Debt Recovery Mechanism by BanksDebt Recovery Management or Debt Recovery Mechanism by Banks
Debt Recovery Management or Debt Recovery Mechanism by BanksVishak G
 
Debt Collecting Presentation
Debt Collecting PresentationDebt Collecting Presentation
Debt Collecting Presentationdebtcollecction
 
Debt recovery techniques
Debt recovery techniques Debt recovery techniques
Debt recovery techniques Humayra Trina
 
Debt Management
Debt ManagementDebt Management
Debt ManagementKiran Babu
 
12. npa & recovery management
12. npa & recovery management12. npa & recovery management
12. npa & recovery managementRatnesh Ratn
 
ACCENT Hospital Management System
ACCENT  Hospital  Management  SystemACCENT  Hospital  Management  System
ACCENT Hospital Management SystemACCENT Trading
 

Viewers also liked (20)

Mitera
MiteraMitera
Mitera
 
RED WAN
RED WANRED WAN
RED WAN
 
Workshop Schedule
Workshop Schedule Workshop Schedule
Workshop Schedule
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management Debt
 
4 Methods to Avoid Dealing with Debt
4 Methods to Avoid Dealing with Debt 4 Methods to Avoid Dealing with Debt
4 Methods to Avoid Dealing with Debt
 
5 ideas to overcome delinquent payments without offending your customers
5 ideas to overcome delinquent payments without offending your customers5 ideas to overcome delinquent payments without offending your customers
5 ideas to overcome delinquent payments without offending your customers
 
Debt management In Islam
Debt management In IslamDebt management In Islam
Debt management In Islam
 
Developing an electronic health record for mobile community based health prac...
Developing an electronic health record for mobile community based health prac...Developing an electronic health record for mobile community based health prac...
Developing an electronic health record for mobile community based health prac...
 
What Can A Creditor Do to Collect a Debt?
What Can A Creditor Do to Collect a Debt?What Can A Creditor Do to Collect a Debt?
What Can A Creditor Do to Collect a Debt?
 
Kerala revenue recovery act 1968
Kerala revenue recovery act 1968Kerala revenue recovery act 1968
Kerala revenue recovery act 1968
 
Collect Bad Debt
Collect Bad DebtCollect Bad Debt
Collect Bad Debt
 
Debt Recovery Management or Debt Recovery Mechanism by Banks
Debt Recovery Management or Debt Recovery Mechanism by BanksDebt Recovery Management or Debt Recovery Mechanism by Banks
Debt Recovery Management or Debt Recovery Mechanism by Banks
 
Debt Collecting Presentation
Debt Collecting PresentationDebt Collecting Presentation
Debt Collecting Presentation
 
Debt collection strategies
Debt collection strategiesDebt collection strategies
Debt collection strategies
 
Debt recovery techniques
Debt recovery techniques Debt recovery techniques
Debt recovery techniques
 
Debt Management
Debt ManagementDebt Management
Debt Management
 
Collection Secrets Presentation
Collection Secrets PresentationCollection Secrets Presentation
Collection Secrets Presentation
 
Twenty Ideas for Becoming More Effective Collector
Twenty Ideas for Becoming More Effective Collector Twenty Ideas for Becoming More Effective Collector
Twenty Ideas for Becoming More Effective Collector
 
12. npa & recovery management
12. npa & recovery management12. npa & recovery management
12. npa & recovery management
 
ACCENT Hospital Management System
ACCENT  Hospital  Management  SystemACCENT  Hospital  Management  System
ACCENT Hospital Management System
 

Similar to Managing Technical Debt

Open Cloud System Networking Vision
Open Cloud System Networking VisionOpen Cloud System Networking Vision
Open Cloud System Networking VisionRandy Bias
 
ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …
ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …
ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …Ravi Kumar
 
7 common problems with salesforce data migration
7 common problems with salesforce data migration7 common problems with salesforce data migration
7 common problems with salesforce data migrationMark Kofman
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshopdrewz lin
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Haytham Elkhoja
 
A Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the CloudA Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the CloudAlton Alexander
 
7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications7 Stages of Scaling Web Applications
7 Stages of Scaling Web ApplicationsDavid Mitzenmacher
 
Dell EMC Ready Solutions for Big Data
Dell EMC Ready Solutions for Big DataDell EMC Ready Solutions for Big Data
Dell EMC Ready Solutions for Big DataBlueData, Inc.
 
The Storage Side of Private Clouds
The Storage Side of Private CloudsThe Storage Side of Private Clouds
The Storage Side of Private CloudsDataCore Software
 
Humans Are The Weakest Link – How DLP Can Help
Humans Are The Weakest Link – How DLP Can HelpHumans Are The Weakest Link – How DLP Can Help
Humans Are The Weakest Link – How DLP Can HelpValery Boronin
 
DBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & TradeoffsDBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & TradeoffsScyllaDB
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overviewicchp2012
 
TripCase Unit Testing with Jasmine
TripCase Unit Testing with JasmineTripCase Unit Testing with Jasmine
TripCase Unit Testing with JasmineStephen Pond
 
Faster, Cheaper, Better - Replacing Oracle with Hadoop & Solr
Faster, Cheaper, Better - Replacing Oracle with Hadoop & SolrFaster, Cheaper, Better - Replacing Oracle with Hadoop & Solr
Faster, Cheaper, Better - Replacing Oracle with Hadoop & SolrKen Krugler
 
Faster Cheaper Better-Replacing Oracle with Hadoop & Solr
Faster Cheaper Better-Replacing Oracle with Hadoop & SolrFaster Cheaper Better-Replacing Oracle with Hadoop & Solr
Faster Cheaper Better-Replacing Oracle with Hadoop & SolrDataWorks Summit
 
How Product Managers Thrive in a DevOps World
How Product Managers Thrive in a DevOps WorldHow Product Managers Thrive in a DevOps World
How Product Managers Thrive in a DevOps WorldAtlassian
 

Similar to Managing Technical Debt (20)

Open Cloud System Networking Vision
Open Cloud System Networking VisionOpen Cloud System Networking Vision
Open Cloud System Networking Vision
 
121211 improve your productivity
121211 improve your productivity121211 improve your productivity
121211 improve your productivity
 
ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …
ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …
ALN-Bengaluru - Agile Management - Driving Leadership & Complexity of …
 
7 common problems with salesforce data migration
7 common problems with salesforce data migration7 common problems with salesforce data migration
7 common problems with salesforce data migration
 
Mature agile teams essential patterns v4 - half day workshop
Mature agile teams   essential patterns v4 - half day workshopMature agile teams   essential patterns v4 - half day workshop
Mature agile teams essential patterns v4 - half day workshop
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)
 
A Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the CloudA Primer for Your Next Data Science Proof of Concept on the Cloud
A Primer for Your Next Data Science Proof of Concept on the Cloud
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications7 Stages of Scaling Web Applications
7 Stages of Scaling Web Applications
 
Dell EMC Ready Solutions for Big Data
Dell EMC Ready Solutions for Big DataDell EMC Ready Solutions for Big Data
Dell EMC Ready Solutions for Big Data
 
LiveOffice Email Archiving Makes Cents
LiveOffice Email Archiving Makes CentsLiveOffice Email Archiving Makes Cents
LiveOffice Email Archiving Makes Cents
 
The Storage Side of Private Clouds
The Storage Side of Private CloudsThe Storage Side of Private Clouds
The Storage Side of Private Clouds
 
Humans Are The Weakest Link – How DLP Can Help
Humans Are The Weakest Link – How DLP Can HelpHumans Are The Weakest Link – How DLP Can Help
Humans Are The Weakest Link – How DLP Can Help
 
DBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & TradeoffsDBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & Tradeoffs
 
CAP and BASE
CAP and BASECAP and BASE
CAP and BASE
 
Cloud4all Architecture Overview
Cloud4all Architecture OverviewCloud4all Architecture Overview
Cloud4all Architecture Overview
 
TripCase Unit Testing with Jasmine
TripCase Unit Testing with JasmineTripCase Unit Testing with Jasmine
TripCase Unit Testing with Jasmine
 
Faster, Cheaper, Better - Replacing Oracle with Hadoop & Solr
Faster, Cheaper, Better - Replacing Oracle with Hadoop & SolrFaster, Cheaper, Better - Replacing Oracle with Hadoop & Solr
Faster, Cheaper, Better - Replacing Oracle with Hadoop & Solr
 
Faster Cheaper Better-Replacing Oracle with Hadoop & Solr
Faster Cheaper Better-Replacing Oracle with Hadoop & SolrFaster Cheaper Better-Replacing Oracle with Hadoop & Solr
Faster Cheaper Better-Replacing Oracle with Hadoop & Solr
 
How Product Managers Thrive in a DevOps World
How Product Managers Thrive in a DevOps WorldHow Product Managers Thrive in a DevOps World
How Product Managers Thrive in a DevOps World
 

Managing Technical Debt

  • 1. Managing Technical Debt First Round Capital CTO Summit @sampullara Friday, December 7, 12
  • 2. Startup CompanyMy background in a 2x2 Consumer Enterprise Friday, December 7, 12
  • 3. Startup CompanyMy background in a 2x2 Consumer Enterprise Friday, December 7, 12
  • 4. What is technical debt? "As an evolving program is continually changed, its complexity, reflecting deteriorating structure, increases unless work is done to maintain or reduce it." — Meir Manny Lehman, 1980 Ward Cunningham first coined the term Some debt you choose to incur, other debt happens through entropy, lastly you start in the hole Like normal debt, it usually must be repaid with interest or you go bankrupt Friday, December 7, 12
  • 5. Common Technical Debts Developer Backup & disaster effectiveness recovery Observability Fault tolerance Scalability Security Architectural Backward flexibility compatibility Friday, December 7, 12
  • 6. Developer effectiveness How long does it take to get a change to master? Then to production? Are you reviewing the code that is going into your codebase? Do you have extensive unit and integration test coverage? Are you closely tracking your dependencies? Friday, December 7, 12
  • 7. Observability Do you produce and capture enough logs to reconstruct failures? Do you track runtime metrics and compare them every release to watch for regressions? Do you have an alerting system in place to notify you if things fail or are going to fail? Do you have redundant monitoring? Friday, December 7, 12
  • 8. Scalability How far into the future, at the current growth rate, will your architecture work? Have you identified what the next bottleneck will be? Do you have time bombs in your data model? Does anything scale above linear with your business? Friday, December 7, 12
  • 9. Fault tolerance / Backup / DR Do you have any single points of failure? If one of your SPFs fails, how long until you can be serving traffic again? Are you dependent on caching to serve normal traffic? Could a software bug destroy data permanently? How long would it take to notice data corruption? Friday, December 7, 12
  • 10. Architectural Flexibility How often do you decide that a feature doesn’t fit into your current architecture? Is it easy to support backwards compatibility without compromising features? How long would it take to add a new field to one of the entities in your system? How difficult would it be to change hosting environments? To add another environment? Friday, December 7, 12
  • 12. High-interest debt: Security How do you store customer credentials? Does your system naturally defend against XSS attacks and other well known exploits? Do you limit access to production systems? Do you systematically install software updates on your servers? Does everyone at your company use two-factor authentication on Google Apps, AWS & Dropbox? Friday, December 7, 12
  • 14. 53-bit ints in javascript In HTML instead of data Text dates Never released to GA Friday, December 7, 12
  • 15. Same data wrong order Data duplicated in this link Friday, December 7, 12
  • 16. Choosing to take on debt Great APIs rather than tight coupling and magic Sufficient testing to ensure that rewrites are successful Track your assumptions and borrowing Measure the impact of the debt Schedule time for refactoring and clean up Friday, December 7, 12
  • 17. Conclusion Taking on technical debt is a manageable risk Measure and monitor for best results Leave time in the schedule just to make things better Friday, December 7, 12