Download - Keeping Code Agile
Keeping Code Agile
Agile Manchester
11th May 2016
#AgileManc
#KeepingCodeAgile
David Legge
@TheCodeCleaner
Working effectively with Legacy Code Michael Feathers
“I never wrote any
other sort”
- my dad
Working Effectively with Legacy Code Michael Feathers
Invaluable toolbox
● How to isolate for testing
● Create a test harness
● Baselines and documents current behaviour
● Allows further development with confidence
#KeepingCodeAgile
Why?
Entropy happens
Imagine yourself
3am on the day of release
Who?
Everyone
Needs support from business
When?
All the time
Small deferments possible
What?
Changable
Maintainable
Readable
No Dragons
What isn't Agile Code?
Greenfield to Legacy
In 6 months
Swimming in Treacle
Spaghetti Code
Weak groupings
Big Buckets
Scared to Commit
Code Wars
“Don't touch my code”
Here be Dragons
Here be Dragons
Well go slay them
Learn the code by changing it
Build momentum
It's
software
not
stoneware
Make it work
Then make it better
You're not 'Done'
Until you've refactored
Integrating more than a days work is risky
Work In Progress
=
Work At Risk
Small change
Smaller risk
“Software has diseconomies of scale”
@allenkellynet
Bank your work
Use git/hg's local repo
Minimal branching
Manage the risk
Evolve it
Manage the risk
Prototype it
Manage the risk
Frontload it
There's only
one
source of truth in the codebase
And its not the comments
Clean Code – 'Uncle Bob' Martin
My bible
Key concepts:
● Abstraction
● Don't repeat yourself
● Naming
● Commenting
Need tests you can be confident in
Don't be strangled by tests
Not enough
Too many
Too fragile
Too slow
Pyramid of Tests
Christmas Tree of Tests
UI
Rest API
Lean build
Art of Agile Development – Warden & Shore
Key Concepts:● 10 minute build● Collective Code
Ownership
Move analysis offline
It's a Learning Opportunity
Look after the
Goose that lays the Golden Egg
Be Proactive
Manual decision
Single-click deploy
#KeepingCodeAgile
David Legge
@TheCodeCleaner