You have to deliver ambitious new features but your codebase is a huge mess of legacy technologies, with no test?
It is very tempting to throw it all away and rewrite everything from scratch, but is it wise when you consider the associated cost, risk and delayed time-to-market?
Through an experience report, we'll show a "Strangler Application" strategy where only carefully selected areas of legacy code are rewritten. Agile development techniques like BDD or TDD remain necessary, with some adjustments.
We'll also describe step by step the overall thinking process you can use to deal with large legacy code bases efficiently.
First presented at Agile France 2013, and in countless Brown Bag Lunches since, a best-seller!
Video (In French) here: http://www.infoq.com/fr/presentations/code-legacy
86. Strangler
application
A new module will
progressively
strangle the
former one, for
one single asset
only
http://martinfowler.com/bliki/StranglerApplication.html
http://www.flickr.com/photos/louisfoecy/4114597043
87. Feature Toggles
!
Progressively
turn off legacy
functionalities
& turn on the
new ones
OLD NEW
92. Dream model must pass
every scenario
Given a floating rate bond on EURIBOR 3M
And a nominal of 15M EUR
And an issue date of 2011/06/15
And an end date of 2012/06/14
And an SEMI_ANNUAL calculation period !
When the EURIBOR 3M evolves:
Bespoke custom
DREAM MODEL
| 2011/09/15 | 3.5% |
| 2012/03/15 | 4.0% | !
Then the cash-flows are:
| 2011/12/13 | 23000 |
| 2012/06/14 | 25500 |