Balancing technical debt and getting things done is one of the hardest problems we have. When should we write beautiful, elegant, clean code and when should we just hammer away blindly at the keyboard until it's done? This talk goes in to why this balance is so difficult and covers everything from estimations to refactoring and testing, with a focus on real world web apps.
9. Code of Conduct
Carry out your professional
responsibilities with due care and
diligence in accordance with the
Relevant Authority’s requirements
whilst exercising your
professional judgement at all
times
44. We need to recognize that our job
isn't about producing more code in
less time, it's about creating
software that is stable, performant,
maintainable and understandable
(to you or someone else, a few
months or years down the road).
Matthew Gertner
60. Estimating
●
Estimates for new features
need to include refactoring
– (if you don't want to increase
technical debt)
– Refactoring doesn't add perceived
value so it's hard to sell
64. ●
Help you deliver faster in the
short term
●
Long term strategy
●
Disposable prototype
●
Just don't need to write clean
code
65.
66. Sprint vs Marathon
Sprint (example) Marathon (example)
Peripheral component (logs) Central component (DB)
Trivial (make a CSV) Complex (search algorithm)
Few consequences of bugs (game) Important (nuclear reactor)
Isolated (contact form) Reused (authentication)
Abandonable (migration script) Continued updates
One developer Big team
Time & money to pay technical debt
later
Long term delivery