i m doc norton
play

Im Doc Norton. CEO at CTO2 @DocOnDev @DocOnDev - PowerPoint PPT Presentation

The Technical Debt T RAP @DocOnDev Im Doc Norton. CEO at CTO2 @DocOnDev @DocOnDev http://leanpub.com/escapevelocity Im Doc Norton. CEO at CTO2 @DocOnDev @DocOnDev The Technical Debt T RAP @DocOnDev What is Technical Debt?


  1. The Technical Debt T RAP @DocOnDev

  2. I’m Doc Norton. CEO at CTO2 @DocOnDev @DocOnDev

  3. http://leanpub.com/escapevelocity I’m Doc Norton. CEO at CTO2 @DocOnDev @DocOnDev

  4. The Technical Debt T RAP @DocOnDev

  5. What is Technical Debt? @DocOnDev

  6. “ Shipping first time code is like going into debt. - Ward Cunningham, 1992 @DocOnDev

  7. “ Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back with a rewrite. - Ward Cunningham, 1992 @DocOnDev

  8. “ Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back with a rewrite. The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. - Ward Cunningham, 1992 @DocOnDev

  9. “ The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. @DocOnDev

  10. “ The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. @DocOnDev

  11. “ The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. @DocOnDev

  12. “ The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. @DocOnDev

  13. Technical Debt Is @DocOnDev

  14. Technical Debt is GOOD @DocOnDev

  15. Technical Use Debt is captivating GOOD images @DocOnDev @DocOnDev

  16. Technical Debt is GOOD @DocOnDev

  17. Technical Debt is A Strategic Design Decision 1 @DocOnDev @DocOnDev

  18. Technical Debt is a Strategic Design Decision • Allow for Rapid Delivery • To Elicit Quick Feedback • And To Correct Design @DocOnDev @DocOnDev

  19. Technical Debt is A Strategic Design Decision 1 An Indication of Learning 2 @DocOnDev @DocOnDev

  20. Technical Debt is an Indication of Learning • Now Know What You Need • And Implementation Doesn’t Match @DocOnDev @DocOnDev

  21. Technical Debt is A Strategic Design Decision 1 An Indication of Learning 2 A Metaphor 3 @DocOnDev @DocOnDev

  22. Technical Debt is a Metaphor • Here Be Danger @DocOnDev @DocOnDev

  23. Metaphors Rock! Can’t keep running at this pace Building on a Puts pressure on our weak design foundation It’s raining men (hallelujah) We Reason By Analogy @DocOnDev

  24. Metaphorphosis Technical Debt When Metaphors Go Wrong! @DocOnDev

  25. Metaphorphosis High Interest Short-Term Credit Card Loan Shark Pyramid Scheme Auto Loan Intentional Return on Investment Long-Term Technical Debt Prudent Voluntary Student Loan Pragmatic Leverage Inadvertent Reckless Home Loan Fraudulent Operational Debt in the Third Quadrant When Metaphors Go Wrong! @DocOnDev

  26. When 
 Metaphors Go Wrong @DocOnDev @DocOnDev

  27. “cut a lot of corners” When 
 - James Shore Metaphors Go “quick and dirty” Wrong - Martin Fowler “just hack it in” - Steve McConnell “sloppy” - David Laribee @DocOnDev

  28. Deliberate “We must ship now “We don’t have and deal with time for design” consequences” Reckless Prudent “Now we know how “What’s Layering?” we should have done it” Technical Debt Inadvertent Quadrant - Martin Fowler, 2009 @DocOnDev @DocOnDev

  29. “ [Many] have explained the debt metaphor and confused it with the idea that you could write code poorly with the intention of doing a good job later. - Ward Cunningham, 2009 @DocOnDev

  30. “ …confused the debt metaphor with the idea that you could write code poorly… @DocOnDev

  31. “ The ability to pay back debt [...] depends upon you writing code that is clean enough to be able to refactor as you come to understand your problem. - Ward Cunningham, 2009 @DocOnDev

  32. “ The ability to pay back debt [...] depends upon you writing code that is clean enough to be able to refactor as you come to understand your problem. @DocOnDev

  33. “ Dirty code is to technical debt as the pawn broker is to financial debt. Don’t think you are ever going to get your code back. - Ward Cunningham, 2009 @DocOnDev

  34. Is there a learning opportunity? 1 Is there a plan for payback? 2 Do I Have 
 Technical 
 Debt? Is the business truly informed? 3 Is the code clean? 4 Is the code tested? 5 @DocOnDev @DocOnDev

  35. Is there a learning opportunity? 1 Is there a plan for payback? 2 Do I Have 
 Technical 
 Debt? Is the business truly informed? 3 Is the code clean? 4 Is the code tested? 5 @DocOnDev @DocOnDev

  36. • Disorderly accumulation, heap, or jumble • A state of embarrassing Mess (Noun) confusion • An unpleasant or difficult situation @DocOnDev

  37. • An unpleasant substance • The result of shoddy Cruft (Noun) construction • Redundant, old or improperly written code @DocOnDev

  38. • An unpleasant substance • The result of shoddy Cruft (Noun) construction • Redundant, old or improperly written code @DocOnDev

  39. But, It’s Just Semantics, Doc. @DocOnDev

  40. It’s Not Just Semantics. @DocOnDev

  41. It’s Not Just Semantics. Technical Debt is @DocOnDev

  42. It’s Not Just Semantics. Quick and Dirty is Technical Technical Debt is Good @DocOnDev

  43. It’s Not Just Semantics. Quick and Dirty is @DocOnDev

  44. Deliberate “We must ship now “We must ship now “We don’t have and deal with and deal with time for design” consequences” consequences” Reckless Prudent “Now we know how “What’s Layering?” we should have done it” Technical Debt Inadvertent Quadrant @DocOnDev

  45. Deliberate “Let’s deploy and “We don’t have gather more time for design” information.” Reckless Prudent “Now we know how “What’s Layering?” we should have done it” Technical Debt Inadvertent Quadrant @DocOnDev

  46. “Technical Debt” In Other Fields @DocOnDev

  47. Construction “Technical Debt” 
 in other fields @DocOnDev @DocOnDev

  48. Use Automotive captivating images “Technical Debt” 
 in other fields @DocOnDev @DocOnDev

  49. Medical “Technical Debt” 
 in other fields @DocOnDev @DocOnDev

  50. t n e e t t a r r e e v b d i l a e n D I d d n n a a s s s s e e l l k k c c e e R R “Technical Debt” 
 in other fields @DocOnDev

  51. Deliberate Reckless and Deliberate “Let’s deploy and “We don’t have gather more time for design” information.” Reckless Prudent Reckless and “Now we know how “What’s Layering?” Inadvertent we should have done it” Technical Debt Inadvertent Quadrant @DocOnDev

  52. Deliberate Irresponsible “Let’s deploy and “We don’t have gather more time for design” l 
 a information.” c i n h c e Reckless Prudent T t b e D “Now we know how “What’s Layering?” Incompetent we should have done it” Technical Debt Inadvertent Quadrant @DocOnDev

  53. Cruft or Debt? @DocOnDev

  54. 1 Cruft or Debt? @DocOnDev @DocOnDev

  55. DataSet aDs, qDs; aDs = _dbConnector.UpdateAgentList(); qDs = _dbConnector.GetQueueList(); foreach (DataTable aTable in aDs.Tables) { foreach (DataRow aRow in aTable.Rows) { foreach (DataColumn aColumn in aTable.Columns) { DataSet asDs = _dbConnector.GetAgentSkills(aRow[aColumn].ToString());//AgentId foreach (DataTable asTable in asDs.Tables) { foreach (DataRow asRow in asTable.Rows) { foreach (DataColumn asColumn in asTable.Columns) { foreach (DataTable qTable in qDs.Tables) { foreach (DataRow qRow in qTable.Rows) { foreach (DataColumn qColumn in qTable.Columns) { DataSet sqDs = _dbConnector.GetSkillsForQueue(qRow[qColumn].ToString()); Cruft or Debt? foreach (DataTable sqTable in sqDs.Tables) { foreach (DataRow sqRow in sqTable.Rows) { foreach (DataColumn sqColumn in sqTable.Columns) { foreach (string skill in sqRow[sqColumn].ToString().Split(paramDelimStr)) { if (skill == asRow[asColumn].ToString()) { try { _dbConnector.SetAgentQueueSkill(aRow[aColumn].ToString(), qRow[qColumn].ToString(), skill); } catch { continue; } } } } } } } } } } } } } } } @DocOnDev

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend