Continuous Delivery of
your Legacy Application
Kev McCabe
Tuesday 10th November 2015
1
Who Am I?
• Freelance Code Smith & Agile Coach

• CF Developer Since 1996
• Scrum Master
• Kanban Practitioner
• Agile Coach

• T: @bigmadkev
• W: BigMadKev.com 2
SORRY NO LEGO THIS YEAR :-(
3
I apologize for any inconvenience caused
4
What is Continuous
Delivery
Continuous Delivery is a software
development discipline where you build
software in such a way that the
software can be released to production
at any time.
Martin Fowler

http://martinfowler.com/bliki/ContinuousDelivery.html
What is legacy code?
Legacy Code Is Code Without Tests
Michael Feathers 

Working Effectively with Legacy Code
Types of Testing
7
GUI
Integration
Unit Tests
Exploratory
testing
Real World Testing Pyramid
8
GUI
Integration
Exploratory testing
Unit TestsManual Testing
9
GUI
Unit Tests
Exploratory
testing
Humans
Selenium
TestBox
Refactoring
Without Tests Is Living Dangerously
Catch 22?
Web Apps
We have Selenium (-;
We’ll start from the outside and work in.
Selenium
What to test?



$$$ Paths



Don’t test everything!
TESTBOX
Unit Tests
Continuous Integration
Tools
Branching Strategies!
• Working on Mainline
• Branch for Release
• Branch by Feature
Pipeline
Delivery Pipeline
One Click Deployments
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
What? the Crash Still?
Automate Everything!
Legacy Thinking!
Release More Frequently!
Sort out infrastructure!
Resources
https://cucumber.io/school
https://www.udemy.com/selenium-2-
webdriver-basics-with-java/
THANK YOU
Always happy to help, feel free to contact me

• E: kev@redgiraffes.co.uk
• T: @bigmadkev
http://cfml-craftsmanship.com/eclipseupdatesite

Continuous delivery of your legacy application