9. “Shipping first time code is like going into
debt. A little debt speeds development so long
as it is paid back promptly 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. Entire
engineering organizations can be brought to a
stand-still under the debt load of an
unconsolidated implementation, object-
oriented or otherwise.”
Ward Cunningham
10. Technical
Debt
As soon as you pay
it, less work you
need to fix it!
11. Sometimes clients doesn't
FACTS know exactly what
requirements they need in
their software
Design solutions based on
one requirement can be
different if others are
considered
These facts create a risk to deliver
wrong software to the client!
31. Add a Test
design class interface +
define expected behavior
Make Test Pass
create actual behavior +
most simple solution
Refactor
clean implemented code
+ adjust class design
42. “Refactoring is a disciplined
technique for restructuring an
existing body of code, altering
its internal structure without
changing its external behavior.”
Martin Fowler
43. Code Bad Smells
Have you ever look to a
piece of code which
doesn't smell very nice?
Code smell is any
symptom in the
source code that can
indicate a problem!
44. In every step, the tests
should be executed to
verify if everything still
working!
Refactoring
is performed in
small steps to remove bad
smells and reach the desired design