3. legacy code
• untested code (Michael C. Feathers)
• code someone else wrote (old gems, outsourcing,
maintainers left)
• difficult to work with
• risky to change
• but serves a useful function
7. • learning & experimenting
• ambitious applications
• big project, developer churn, hiring outside help
• bad code … even with the best of intentions
• “Technical debt”
8.
9. –Robert C. Martin
“Even the most disciplined development team,
knowing the best principles, using the best
patterns, and following the best practices will
create messes from time to time.”
16. –Robert C. Martin
“…taking a tangled, opaque, convoluted
system and slowly, gradually, piece by piece,
step by step, turning it into a simple, nicely
structured, well-designed system.”