Do not underestimate
the danger
technical
Lemİ Orhan ERGİN
Principal Software Engineer @ Sony
@lemiorhanagilistanbul.com
d...
Lemİ Orhan Ergİn
Principal Software Engineer at Sony
has worked in Tüsside, BYM, GittiGidiyor/eBay
and Sony as lead develo...
financial debt
and
the metaphor
expensive
DEBTsin every second of our lifeWe incur
Living is
taxes
gas
fuel
water
phone
electricity
rent
credit cards
cabletv
tuition
TOLLS
mortgageschool payments
transportation
Holi...
Financial debtis not always a bad thing. It lets us buy what we want
or what we need and keep us live at some level.
Financial debtis dangerous if the
incurred interest
and the debt itself
are not payed
Financial debt
is a silent killer
Financial debt
hides problemsand leads to other problems
technical debtis a metaphor developed by
Ward Cunningham in 1992
to communicate problems
due to“developing not in the righ...
deficit
Enron financing
paying the principal debt
Interest on the debt
bankruptcy
borrowing money
Intertest on the loan In...
the cost
technical debt costs money, time and effort to
stakeholders, developers, companies, even to economies
most companies have to spend 80% of their
software development budget maintaining code
Aaron Erickson, Informit.com
“
”
U.S. Air Force pulls plug on ERP project
after blowing through $1 billion
chris kanaracus, CIO.com
“
”
we don’t know how much technical
debt is really costing us
Jim bird, Agile.dzone.com
“
”
Technical debt is like smoking addiction. Once you
start hacking your code, the code asks for more.
you never know what th...
High amount of Technical Debt is
#1 impediment to teams being agile
Dan Rawsthorne
“
”
Sufficient amount of messy code may bring
whole Engineering department to a stand-still
Sven Johann & Eberhard Wolff, Info...
the description
2 ways of doing things
clean and smart way
takes longer to implement but make
changes easier in the future
quick and dirty way
get your features sooner, but make
the future changes very hard
why should the sponsors of a project
accept higher costs ?
Question:
why should the sponsors spend money on
features that don’t deliver business value ?
Question:
Living with technical debt might work
perfectly for customers if it delivers the
desired business value
Answer:
but this will lead an uncontrollable codebase,
extremely specialized developers and to an
inflexible product
Shipping firsttime code is like going into debt
a little debt speeds development
as it is paid back with a rewrite
It’s a question of
Pay me now or Pay me later
good or bad
... if you have strategic design decisions. It allow rapid delivery to elicit
quick feedback and correct design. However, ...
... if principal amount and interest is smaller than the yield of
investment. Sometimes, you don't have to pay back the de...
... because having messy code and cutting quality slows you down in
reality. And you must generate more mess to keep up.
D...
extend the metaphor
similarities with financial debt
Every minute spent on not-quite-write code counts as
interest on the debt
Interest
Image ...
similarities with financial debt
Refactoring is like paying off the principal debt
paying the principal debt
Image by Mart...
similarities with financial debt
Neglecting the design is like borrowing money
borrowing money
Image by Martin Schoeller f...
similarities with financial debt
Bankruptcy refers to a situation of overwhelming debt
interest, whereby progress is halte...
similarities with financial debt
It occurs when the current level of technology is old
enough to lose compatibility with t...
similarities with financial debt
It represents technical frauds undermine ROIs
Enron Financing
Image by Martin Schoeller f...
similarities with financial debt
Throw away prototypes, retired products and
complete failures on will-not-be-used compone...
the Symptoms
the loss of
productivity
We cannot measure
productivity, that's why
we can't really see real
the true effect of
technical ...
Increase in
testing
If the team does the
same tests again and
again on every release or
testing takes too much
time, the d...
Postponed stories in releases
Postponed
releases
It becomes harder to catch
the deadlines. An increase
on the postponed re...
Code
duplication
Code duplication leads to
update anomalies, purpose
masking and issues on
understanding code
copy & Paste...
Low code
coverage
100% coverage is the
asymptotic target. Below
75% indicates serious
problems.
not knowing how sW behaves
Increase in
bugs
The increase in number of
bugs directly shows the
decrease of quality
and too much support cases
heavy stress
on appoaching
deadlineS
The team is under heavy
stree at the end of releases
or when the deadlines are
approa...
being scared
of changing
anything
Software is so brittle that
developers are scared of
changing anything in the
code not t...
Evil hacks
wrong design
It’s hard to detect the debt
in advance, but any hacks
and workarounds could
cause issues in the f...
wrong choice
of technology
Not the most mature, not
the newest, not the
simplest... Choosing the
cheapest-to-adapt is the ...
unreadable
code
Developers spend 80% of
development time for reading
code. You cannot build if you
cannot understand.
hard...
decreased
velocity
Decreased team velocity is
a good indicator for
possible impediments that
slows the team down
even if n...
Using old
libraries
Softwares age and cause
technical debt by time.
Maintenance costs are the
main expenditure item.
and t...
Reports of Sonar
Sonar
Reports
Softwares age and cause
technical debt by time.
Maintenance costs are the
main expenditure ...
bad smells
The indicator of
weaknesses in design that
may be slowing down
development or increasing
the risk of bugs or fa...
36 classic
mistakes
Making mistakes is
inevitable. Only
experienced software
developers realize when
they're making mistak...
the types by scope
unavoidable debt
Usually unpredictable and unpreventable
and the team has no fault on that
Due to legal issues, we have to...
Strategic debt
Long term debt, usually incurred proactively
I want to be the first in the market“
”
tactical debt
It’s different that strategic by the reactive
manner for the short term
We don't have time to implement in t...
Incremental debt
Hundreds or thousands of small shortcuts,
like credit card debt
We have to do quick hacks and
dirty solut...
INADVERTENT (naive) debt
It occurs due to irresponsible behavior or immature
practices on the part of the people involved
...
the types by content
Design & architectural Debt
Shortcuts and shortcommings
Long and detailed upfront designs
Sub-optimal solutions
code quality Debt
Short time between failures
Severe defect count
Every hack, work around, bad piece of code builds
Unnece...
testing Debt
Missing automated tests
Too much time spending for regression testing
Knowledge distribution and
documentation debt
Only few people knows the system
When all key people left the organization, ...
Environmental Debt
Problems in development related processes
Issues in hardware, infrastructure, supporting apps
Having to...
Monetary cost
Developer’s time is expensive
No developer enjoys to work on brittle and complicated code
That leads turnove...
the stakeholders
customers
Annoyed by bugs, missing features,
slow lead times and expensive costs
helpdesk
Additional costs
operations team
Frequent patches and fixes
management
Annoyed due to bugs, delays, costs
and security issues
developers
No one wants to develop bad code
No one wants to take over bad work
of others
the strategic design
A system can't have the same
high level of quality
throughout the system
strategic
design
The team can choose which
parts ...
fixing the debt
Merciless refactoring
fast automation
share knowledge
knowledge decays fast
slow down to go fast
clean code principles
clean, readable and simple code
clear definition of done
showing us how to avoid incurring debt
key engineering practices
Pair Programming
Test Driven Development
Continuous Integration
10 min Builds
Refactoring
Automa...
test driven development
Pre-release defect density decreased 40-90%
relative to similar products that do not use TDD
Initi...
fail fast
Peer Review
Code Review
Don't leave all testing to the last phase
Limit work-in-progress
fix constantly
Monitor your debt
Code coverage: Monitor trends, not points
Cyclomatic complexity: Number of branches in code
Coupling: In...
clean constantly
fix root causes
Follow the Boy Scout Rule
quality is your responsibility
never make intentional mess
Never ask permission to do
your job correctly
The Payment strategies
From Frank Buschmann
debt repayment
Refactor or replace code
debt conversion
Replace the current solution with a
"good but not perfect" solution
just pay the interest
Live with the code
Refactoring is more expensive than the work with bad code
End-of-life software or...
The Payment Approaches
Minimal Iteration Debt
Payment
Half a day in a week
Technical Backlog
Debt is made visible and clear for everbody
Cost per task is trackable
No mixture between technical and ...
buffer tasks
for refactoring 10% of the team's time
clean-up releases
The measurment
time investment is actually worth it
it is important to decide that
even impossible to predict
The effect of bad code quality for future requirements is difficult
The delta from ideal
Errors & warnings
Code duplication
Code coverage
Gut feeling
in large apps, the measure is basically ...
Story Probing
The assumption is that technical debt
increases the estimate
formulas to guess the debt
There are many formulas proposed and used
Estimate the cost of a failure and then
multiply by the probability it will occur
Technical debt is the cost
of implementi...
the conclusion
you got the red pill
Understanding technical debt will let you, your team, the business
and the stakeholders make better d...
Technical Debt
http://www.infoq.com/articles/managing-technical-debt
http://theagileexecutive.com/category/technical-debt/...
http://www.flickr.com/photos/guilleavalos/2139208615
http://www.flickr.com/photos/maclufus/5571639487
http://www.flickr.com/p...
Lemİ orhan ergİn
lemiorhan@agilistanbul.com
@lemiorhan
@lemiorhan
agilistanbul.com
@lemiorhan
LINKEDINTWITTERSLIDESHAREBLO...
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Technical Debt: Do Not Underestimate The Danger
Upcoming SlideShare
Loading in...5
×

Technical Debt: Do Not Underestimate The Danger

27,399

Published on

This is the slides of my latest talk about the "technical debt" concept.

6 Comments
45 Likes
Statistics
Notes
No Downloads
Views
Total Views
27,399
On Slideshare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
427
Comments
6
Likes
45
Embeds 0
No embeds

No notes for slide

Technical Debt: Do Not Underestimate The Danger

  1. 1. Do not underestimate the danger technical Lemİ Orhan ERGİN Principal Software Engineer @ Sony @lemiorhanagilistanbul.com debt @lemiorhan
  2. 2. Lemİ Orhan Ergİn Principal Software Engineer at Sony has worked in Tüsside, BYM, GittiGidiyor/eBay and Sony as lead developer, team leader, technical coordinator and scrum master got CSM certificate from Jim Coplien year as Scrum Master sprints in 4 years as team member and scrum master experienced in agile transformation and building agile culture in teams & organizations 2001 2013 2009 1 56 agile CSM, PSM1
  3. 3. financial debt and the metaphor
  4. 4. expensive DEBTsin every second of our lifeWe incur Living is
  5. 5. taxes gas fuel water phone electricity rent credit cards cabletv tuition TOLLS mortgageschool payments transportation Holidays INTERNET 3g/4G municipal services shopping communication food health entombment Parking
  6. 6. Financial debtis not always a bad thing. It lets us buy what we want or what we need and keep us live at some level.
  7. 7. Financial debtis dangerous if the incurred interest and the debt itself are not payed
  8. 8. Financial debt is a silent killer
  9. 9. Financial debt hides problemsand leads to other problems
  10. 10. technical debtis a metaphor developed by Ward Cunningham in 1992 to communicate problems due to“developing not in the right way” with non-technical stakeholders. met·a·phor noun ˈme-tə-ˌfȯr also -fər a word or phrase for one thing that is used to refer to another thing in order to show or suggest that they are similar
  11. 11. deficit Enron financing paying the principal debt Interest on the debt bankruptcy borrowing money Intertest on the loan Inflation financial burden very similar technical debt is to financial debt
  12. 12. the cost
  13. 13. technical debt costs money, time and effort to stakeholders, developers, companies, even to economies
  14. 14. most companies have to spend 80% of their software development budget maintaining code Aaron Erickson, Informit.com “ ”
  15. 15. U.S. Air Force pulls plug on ERP project after blowing through $1 billion chris kanaracus, CIO.com “ ”
  16. 16. we don’t know how much technical debt is really costing us Jim bird, Agile.dzone.com “ ”
  17. 17. Technical debt is like smoking addiction. Once you start hacking your code, the code asks for more. you never know what that will cost in the future. Lemİ Orhan ERGİN, Agilistanbul.com “ ”
  18. 18. High amount of Technical Debt is #1 impediment to teams being agile Dan Rawsthorne “ ”
  19. 19. Sufficient amount of messy code may bring whole Engineering department to a stand-still Sven Johann & Eberhard Wolff, Infoq “ ”
  20. 20. the description
  21. 21. 2 ways of doing things
  22. 22. clean and smart way takes longer to implement but make changes easier in the future
  23. 23. quick and dirty way get your features sooner, but make the future changes very hard
  24. 24. why should the sponsors of a project accept higher costs ? Question:
  25. 25. why should the sponsors spend money on features that don’t deliver business value ? Question:
  26. 26. Living with technical debt might work perfectly for customers if it delivers the desired business value Answer:
  27. 27. but this will lead an uncontrollable codebase, extremely specialized developers and to an inflexible product
  28. 28. Shipping firsttime code is like going into debt
  29. 29. a little debt speeds development as it is paid back with a rewrite
  30. 30. It’s a question of Pay me now or Pay me later
  31. 31. good or bad
  32. 32. ... if you have strategic design decisions. It allow rapid delivery to elicit quick feedback and correct design. However, clean code is required to pay back debt therefore the code sould be refactored ıncurring technical debt is a good idea
  33. 33. ... if principal amount and interest is smaller than the yield of investment. Sometimes, you don't have to pay back the debt, it is pointless if the code won't be touched again ıncurring technical debt is a good idea
  34. 34. ... because having messy code and cutting quality slows you down in reality. And you must generate more mess to keep up. Do you ask permission to do your job correctly???? ıncurring technical debt is a bad idea
  35. 35. extend the metaphor
  36. 36. similarities with financial debt Every minute spent on not-quite-write code counts as interest on the debt Interest Image by Martin Schoeller from “Identical: Portraits of Twins” book
  37. 37. similarities with financial debt Refactoring is like paying off the principal debt paying the principal debt Image by Martin Schoeller from “Identical: Portraits of Twins” book
  38. 38. similarities with financial debt Neglecting the design is like borrowing money borrowing money Image by Martin Schoeller from “Identical: Portraits of Twins” book
  39. 39. similarities with financial debt Bankruptcy refers to a situation of overwhelming debt interest, whereby progress is halted and a complete rewrite is necessary bankruptcy Image by Martin Schoeller from “Identical: Portraits of Twins” book
  40. 40. similarities with financial debt It occurs when the current level of technology is old enough to lose compatibility with the industry technical Inflation Image by Martin Schoeller from “Identical: Portraits of Twins” book
  41. 41. similarities with financial debt It represents technical frauds undermine ROIs Enron Financing Image by Martin Schoeller from “Identical: Portraits of Twins” book
  42. 42. similarities with financial debt Throw away prototypes, retired products and complete failures on will-not-be-used components does not have to be repaid amnesty Image by Martin Schoeller from “Identical: Portraits of Twins” book
  43. 43. the Symptoms
  44. 44. the loss of productivity We cannot measure productivity, that's why we can't really see real the true effect of technical debt and losing motivation and morale
  45. 45. Increase in testing If the team does the same tests again and again on every release or testing takes too much time, the debt seems to be in critical level. the death by manual testing
  46. 46. Postponed stories in releases Postponed releases It becomes harder to catch the deadlines. An increase on the postponed releases rate is an indicator. being not ready to go
  47. 47. Code duplication Code duplication leads to update anomalies, purpose masking and issues on understanding code copy & Paste programming
  48. 48. Low code coverage 100% coverage is the asymptotic target. Below 75% indicates serious problems. not knowing how sW behaves
  49. 49. Increase in bugs The increase in number of bugs directly shows the decrease of quality and too much support cases
  50. 50. heavy stress on appoaching deadlineS The team is under heavy stree at the end of releases or when the deadlines are approaching
  51. 51. being scared of changing anything Software is so brittle that developers are scared of changing anything in the code not to break. Adding new features starts to cost more and more.
  52. 52. Evil hacks wrong design It’s hard to detect the debt in advance, but any hacks and workarounds could cause issues in the future
  53. 53. wrong choice of technology Not the most mature, not the newest, not the simplest... Choosing the cheapest-to-adapt is the key to pay the debt.
  54. 54. unreadable code Developers spend 80% of development time for reading code. You cannot build if you cannot understand. hard to understand what happens
  55. 55. decreased velocity Decreased team velocity is a good indicator for possible impediments that slows the team down even if nothing has changed
  56. 56. Using old libraries Softwares age and cause technical debt by time. Maintenance costs are the main expenditure item. and technologies
  57. 57. Reports of Sonar Sonar Reports Softwares age and cause technical debt by time. Maintenance costs are the main expenditure item. with technical debt plugin
  58. 58. bad smells The indicator of weaknesses in design that may be slowing down development or increasing the risk of bugs or failures in the future “Only he knows can change this part” “Lets copy & paste this code” “If I touch, everything will break” “Too many TODOs or FIXMEs in the code”
  59. 59. 36 classic mistakes Making mistakes is inevitable. Only experienced software developers realize when they're making mistakes. outlined in McConnell's Rapid Development http://www.construx.com/10x_Software_Development/Classic_Mistakes_Updated
  60. 60. the types by scope
  61. 61. unavoidable debt Usually unpredictable and unpreventable and the team has no fault on that Due to legal issues, we have to rewrite some of the components “ ”
  62. 62. Strategic debt Long term debt, usually incurred proactively I want to be the first in the market“ ”
  63. 63. tactical debt It’s different that strategic by the reactive manner for the short term We don't have time to implement in the right way, just a hack. We'll fix later. “ ”
  64. 64. Incremental debt Hundreds or thousands of small shortcuts, like credit card debt We have to do quick hacks and dirty solutions to catch the deadline “ ”
  65. 65. INADVERTENT (naive) debt It occurs due to irresponsible behavior or immature practices on the part of the people involved We have to build the software product with inexperienced newbies “ ”
  66. 66. the types by content
  67. 67. Design & architectural Debt Shortcuts and shortcommings Long and detailed upfront designs Sub-optimal solutions
  68. 68. code quality Debt Short time between failures Severe defect count Every hack, work around, bad piece of code builds Unnecessary code duplication and complexity
  69. 69. testing Debt Missing automated tests Too much time spending for regression testing
  70. 70. Knowledge distribution and documentation debt Only few people knows the system When all key people left the organization, the debt becomes extremely high
  71. 71. Environmental Debt Problems in development related processes Issues in hardware, infrastructure, supporting apps Having too many manual operational tasks
  72. 72. Monetary cost Developer’s time is expensive No developer enjoys to work on brittle and complicated code That leads turnovers and it is one of the real economic costs of technical debt
  73. 73. the stakeholders
  74. 74. customers Annoyed by bugs, missing features, slow lead times and expensive costs
  75. 75. helpdesk Additional costs
  76. 76. operations team Frequent patches and fixes
  77. 77. management Annoyed due to bugs, delays, costs and security issues
  78. 78. developers No one wants to develop bad code No one wants to take over bad work of others
  79. 79. the strategic design
  80. 80. A system can't have the same high level of quality throughout the system strategic design The team can choose which parts will have high quality or kept as low quality Consumer understands quick & dirty solutions lead to debt Understanding Strategic Design leads to better decisions from stakeholders
  81. 81. fixing the debt
  82. 82. Merciless refactoring
  83. 83. fast automation
  84. 84. share knowledge knowledge decays fast
  85. 85. slow down to go fast
  86. 86. clean code principles clean, readable and simple code
  87. 87. clear definition of done showing us how to avoid incurring debt
  88. 88. key engineering practices Pair Programming Test Driven Development Continuous Integration 10 min Builds Refactoring Automated unit tests etc. these should always directly associated with a requirement
  89. 89. test driven development Pre-release defect density decreased 40-90% relative to similar products that do not use TDD Initial development time increased 15-35% after TDD
  90. 90. fail fast Peer Review Code Review Don't leave all testing to the last phase
  91. 91. Limit work-in-progress
  92. 92. fix constantly
  93. 93. Monitor your debt Code coverage: Monitor trends, not points Cyclomatic complexity: Number of branches in code Coupling: Interconnectedness of systems
  94. 94. clean constantly
  95. 95. fix root causes
  96. 96. Follow the Boy Scout Rule quality is your responsibility
  97. 97. never make intentional mess
  98. 98. Never ask permission to do your job correctly
  99. 99. The Payment strategies From Frank Buschmann
  100. 100. debt repayment Refactor or replace code
  101. 101. debt conversion Replace the current solution with a "good but not perfect" solution
  102. 102. just pay the interest Live with the code Refactoring is more expensive than the work with bad code End-of-life software or will-be-retired software
  103. 103. The Payment Approaches
  104. 104. Minimal Iteration Debt Payment Half a day in a week
  105. 105. Technical Backlog Debt is made visible and clear for everbody Cost per task is trackable No mixture between technical and feature tasks adv.disadv. 2 backlogs and hard to prioritize Customers may not understand the real benefits of a tech task Very expensive changes must always a business reason
  106. 106. buffer tasks for refactoring 10% of the team's time
  107. 107. clean-up releases
  108. 108. The measurment
  109. 109. time investment is actually worth it it is important to decide that
  110. 110. even impossible to predict The effect of bad code quality for future requirements is difficult
  111. 111. The delta from ideal Errors & warnings Code duplication Code coverage Gut feeling in large apps, the measure is basically useless
  112. 112. Story Probing The assumption is that technical debt increases the estimate
  113. 113. formulas to guess the debt There are many formulas proposed and used
  114. 114. Estimate the cost of a failure and then multiply by the probability it will occur Technical debt is the cost of implementing the required redundancy
  115. 115. the conclusion
  116. 116. you got the red pill Understanding technical debt will let you, your team, the business and the stakeholders make better decisions
  117. 117. Technical Debt http://www.infoq.com/articles/managing-technical-debt http://theagileexecutive.com/category/technical-debt/ http://martinfowler.com/bliki/TechnicalDebt.html http://www.slideshare.net/garyshort/technical-debt-2985889 http://www.slideshare.net/woodyp/technical-debt-7436402 http://www.slideshare.net/jhlittle/technical-debt-6896714 http://www.slideshare.net/RobMyers64/technical-debt-10124606 http://www.slideshare.net/RedgateSoftware/measuring-technical-debt 1 Billion Dolar Fail http://www.cio.com/article/721628/Air_Force_scraps_massive_ERP_project_after_racking_up_1_billion_in_costs Evluation with Sonar http://www.sonarqube.org/evaluate-your-technical-debt-with-sonar/ 36 Classic Mistakes http://www.stevemcconnell.com/rdenum.htm http://www.codinghorror.com/blog/2007/06/escaping-from-gilligans-island.html Calculating the ocost http://www.ontechnicaldebt.com/blog/time-to-start-estimating-technical-debt/ http://www.infoq.com/news/2010/03/monetizing-technical-debt http://blog.acrowire.com/cloud-computing/failing-to-plan-is-planning-to-fail/
  118. 118. http://www.flickr.com/photos/guilleavalos/2139208615 http://www.flickr.com/photos/maclufus/5571639487 http://www.flickr.com/photos/grantmac/2282389818 http://www.flickr.com/photos/freefoto/2539768604 http://farm5.staticflickr.com/4043/5129934527_552d08a0e4_o.jpg http://www.flickr.com/photos/ethermoon/4045176015 http://upload.wikimedia.org/wikipedia/commons/2/2a/Dirty_dishes.jpg http://fc07.deviantart.net/fs41/f/2009/030/9/6/The_Good__The_Bad_and_The_Ugly_by_ROMAragorn.jpg http://ngm.nationalgeographic.com/2012/01/twins/portraits/img/01-johanna-eva-gill.jpg http://www.flickr.com/photos/epsos/6749663099 http://darkroom.baltimoresun.com/wp-content/uploads/2012/12/REU-POY-243.jpg http://www.flickr.com/photos/defenceimages/7021362271 http://www.flickr.com/photos/widget8/4121151605 http://www.flickr.com/photos/cafemama/206657382 http://www.flickr.com/photos/staflo/6015670061 http://www.flickr.com/photos/crashmaster/3192341451 http://www.propcboost.com/wp-content/uploads/2013/05/Blue-screen-error.jpg http://www.flickr.com/photos/stuant63/2240432052 http://www.flickr.com/photos/didmyself/7685629372 http://www.flickr.com/photos/untickalock/41536377 http://www.flickr.com/photos/fxtc/8105411995 http://tocea.com/wp-content/uploads/Tocea-Scertify-TechDebt-Overview.jpg http://www.flickr.com/photos/cristiano_betta/2757049946 http://www.flickr.com/photos/mhusiak/3216291202 http://www.flickr.com/photos/eneas/9541686914 http://www.flickr.com/photos/amalthya/84364820 http://www.flickr.com/photos/erik-n/1550380661 http://www.algoafm.co.za/img/uploads/Website/cat%20scared.jpg
  119. 119. Lemİ orhan ergİn lemiorhan@agilistanbul.com @lemiorhan @lemiorhan agilistanbul.com @lemiorhan LINKEDINTWITTERSLIDESHAREBLOG Principal Software Engineer @ Sony Founder & Author @ agilistanbul.com flyingtomoon.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×