SlideShare a Scribd company logo
Legacy Code is Fear 
www.mozaicworks.com
Me 
Adi Bolboacă 
Programmer 
Organizational & Technical 
Trainer & Coach www.mozaicworks.com
Legacy code scenario 
Current situation vs Better situation 
Not knowing what the actual code does 
Vs 
Gradually understanding the code and 
changing it to the minimum 
www.mozaicworks.com
Legacy code scenario 
Reasons why to change existing code: 
Fix a bug 
Add a feature 
Have automated tests for the system core 
www.mozaicworks.com
Legacy code scenario 
Reasons why not to change existing 
code: 
It looks ugly 
I would like to see nicer code 
I want to update to newest framework 
... 
www.mozaicworks.com
Current situation 
You need to add some features 
to an existing old project www.mozaicworks.com
Current situation 
They tell you that you have a very 
short time to do it www.mozaicworks.com
Current situation 
You are afraid to change the 
system www.mozaicworks.com
Current situation 
The time feels waaaaay to short 
www.mozaicworks.com
Current situation 
And you tell your manager: I 
cannot do it 
www.mozaicworks.com
Current situation 
But the manager says... 
www.mozaicworks.com
Current situation 
It takes double the time you said 
www.mozaicworks.com
Current situation 
Your company loses money. 
Your customer loses money. www.mozaicworks.com
Current situation 
Everyone is stressed 
www.mozaicworks.com
Better situation 
Someone signs a contract to add 
some features to an existing old 
project www.mozaicworks.com
Better situation 
Your team starts writing 
characterization tests to 
understand the change www.mozaicworks.com
Better situation 
Your team writes end-to-end 
tests to understand the external 
dependencies 
www.mozaicworks.com
Better situation 
Your team splits the end-to-end 
tests into integration tests and 
unit tests 
www.mozaicworks.com
Better situation 
Your team starts adding more unit 
tests around the area that needs 
to be modified 
www.mozaicworks.com
Better situation 
Every member of the team is using 
the refactoring skills to improve 
the design 
www.mozaicworks.com
Better situation 
Your team adds the new feature. 
It is fully test automated. 
www.mozaicworks.com
Better situation 
Your testers make the final 
exploratory and manual tests 
www.mozaicworks.com
Better situation 
The team delivers on time. 
www.mozaicworks.com
Better situation 
Your company wins money and 
respect from your customer. 
Your customer wins money and has 
trust in you. 
www.mozaicworks.com
The problem: Legacy code is fear 
Our unknowns are making us afraid 
Automating tests minimizes the unknowns 
By automating tests we can increase 
confidence 
www.mozaicworks.com
Very nice 
But how to do this? 
www.mozaicworks.com
Find the known unknowns of the 
team 
Talk with the team 
Find what they do not know: domain 
knowledge, programming languages, unit 
testing, acceptance testing, frameworks, 
etc 
www.mozaicworks.com
Make small scale experiments 
Use a smaller problem at first 
Learn how to write charaterization tests 
for that problem 
Use coding dojos and mob programming 
to practice together 
www.mozaicworks.com
The littany against fear 
I must not fear. 
Fear is the mind-killer. 
Fear is the little-death that brings total obliteration. 
I will face my fear. 
I will permit it to pass over me and through me. 
And when it has gone past I will turn the inner eye to 
see its path. 
Where the fear has gone there will be nothing.... only I 
will remain 
Dune by Frank Herbert 
www.mozaicworks.com
Solve the legacy code fear: invest 
Invest in the future business agility of your 
company 
www.mozaicworks.com
Solve the legacy code fear: learn 
Find the unknowns of the team 
Make a medium-term learning program 
Make small scale experiments 
Learn 
Extend to bigger scale experiments 
Learn 
Do a small change request in production 
Learn 
www.mozaicworks.com
What's next? 
Read the Working Effectively with Legacy 
code book by Michael Feathers 
Find a good trainer to help the team learn 
Build learning program with team&trainer 
Learn from each experience 
www.mozaicworks.com
Questions? 
www.mozaicworks.com
Thank you! 
Working Fast and SAFE with Existing Product Inception 
Code retreat 
www.mozaicworks.com 
See the slides at 
http://www.slideshare.net/adibolb
Extend your mentoring & training 
capacity 
Accelerate learning through 
communities of practice 
Grow your functional leaders and top 
talents 
http://www.mozaicworks.com 
adrian.bolboaca@mozaicworks.com 
@adibolb
References 
http://upload.wikimedia.org/wikipedia/commons/7/7f/Snake_warning_sign.jpg 
http://upload.wikimedia.org/wikipedia/commons/4/44/CatLolCatExample.jpg 
http://upload.wikimedia.org/wikipedia/commons/8/88/I_IZ_SERIUS_ADMNIM_THIZ_IZ_SERIUS_BIZNIS_lolcat.jpg 
http://pixabay.com/p-160097/?no_redirect 
http://www.damemagazine.com/sites/default/files/styles/feature_wide/public/field/image/biological-clock.jpg?itok=http://fc01.deviantart.net/fs71/i/2012/149/6/9/no__9gag__by_hujikari-d51hu4l.jpg 
http://upload.wikimedia.org/wikipedia/commons/1/12/We_Can_Do_It!.jpg 
http://upload.wikimedia.org/wikipedia/commons/2/25/Dive_hand_signal_Descend.png 
http://pixabay.com/go/?t=/static/uploads/photo/2012/04/18/13/01/sign-36968_150.png%3Fattachment 
http://pixabay.com/static/uploads/photo/2014/06/03/19/38/plate-361516_640.jpg 
http://upload.wikimedia.org/wikipedia/commons/0/0c/Dive_hand_signal_OK_1.png 
www.mozaicworks.com

More Related Content

Viewers also liked

Florin Cardasim - What may sell you better in the todays it space - Angajator...
Florin Cardasim - What may sell you better in the todays it space - Angajator...Florin Cardasim - What may sell you better in the todays it space - Angajator...
Florin Cardasim - What may sell you better in the todays it space - Angajator...Codecamp Romania
 
Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...
Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...
Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...Codecamp Romania
 
Iasi code camp 12 october 2013 personal organization - gabi csergo
Iasi code camp 12 october 2013   personal organization - gabi csergoIasi code camp 12 october 2013   personal organization - gabi csergo
Iasi code camp 12 october 2013 personal organization - gabi csergoCodecamp Romania
 
Iasi code camp 20 april 2013 did-your-mobile-app-crash-successfully
Iasi code camp 20 april 2013 did-your-mobile-app-crash-successfullyIasi code camp 20 april 2013 did-your-mobile-app-crash-successfully
Iasi code camp 20 april 2013 did-your-mobile-app-crash-successfullyCodecamp Romania
 
CodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLM
CodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLMCodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLM
CodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLMCodecamp Romania
 
CodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ng
CodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ngCodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ng
CodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ngCodecamp Romania
 
Performance in .net best practices
Performance in .net best practicesPerformance in .net best practices
Performance in .net best practices
Codecamp Romania
 
Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net
Iasi code camp 12 october 2013   corneliu rimboiu - bridging java and .netIasi code camp 12 october 2013   corneliu rimboiu - bridging java and .net
Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .netCodecamp Romania
 

Viewers also liked (8)

Florin Cardasim - What may sell you better in the todays it space - Angajator...
Florin Cardasim - What may sell you better in the todays it space - Angajator...Florin Cardasim - What may sell you better in the todays it space - Angajator...
Florin Cardasim - What may sell you better in the todays it space - Angajator...
 
Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...
Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...
Iasi code camp 12 october 2013 epidemiology of motivation - andrei postolache...
 
Iasi code camp 12 october 2013 personal organization - gabi csergo
Iasi code camp 12 october 2013   personal organization - gabi csergoIasi code camp 12 october 2013   personal organization - gabi csergo
Iasi code camp 12 october 2013 personal organization - gabi csergo
 
Iasi code camp 20 april 2013 did-your-mobile-app-crash-successfully
Iasi code camp 20 april 2013 did-your-mobile-app-crash-successfullyIasi code camp 20 april 2013 did-your-mobile-app-crash-successfully
Iasi code camp 20 april 2013 did-your-mobile-app-crash-successfully
 
CodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLM
CodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLMCodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLM
CodeCamp Iasi 10 march 2012 - Cenit-Process-driven-PLM
 
CodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ng
CodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ngCodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ng
CodeCamp Iasi 10 march 2012 - UI testing – java, selenium, test ng
 
Performance in .net best practices
Performance in .net best practicesPerformance in .net best practices
Performance in .net best practices
 
Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net
Iasi code camp 12 october 2013   corneliu rimboiu - bridging java and .netIasi code camp 12 october 2013   corneliu rimboiu - bridging java and .net
Iasi code camp 12 october 2013 corneliu rimboiu - bridging java and .net
 

Similar to Legacycodeisfearadibolboaca 141120063356-conversion-gate01

Everything is Relative: Frameworks, Plugins & SEO
Everything is Relative: Frameworks, Plugins & SEOEverything is Relative: Frameworks, Plugins & SEO
Everything is Relative: Frameworks, Plugins & SEO
Andy Stratton
 
Building Advanced Squarespace Websites
Building Advanced Squarespace WebsitesBuilding Advanced Squarespace Websites
Building Advanced Squarespace Websites
Brendan Kennedy
 
Startup Weapons for Newbie Entrepreneurs
Startup Weapons for Newbie EntrepreneursStartup Weapons for Newbie Entrepreneurs
Startup Weapons for Newbie Entrepreneurs
Growth Hacking Asia
 
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Adi Bolboaca
 
Building No-Code tools alongside your engineering team
Building No-Code tools alongside your engineering teamBuilding No-Code tools alongside your engineering team
Building No-Code tools alongside your engineering team
Marius Ciocirlan
 
Building no-code tools alongside your engineering team - No Code Conf 2019
Building no-code tools alongside your engineering team - No Code Conf 2019Building no-code tools alongside your engineering team - No Code Conf 2019
Building no-code tools alongside your engineering team - No Code Conf 2019
Webflow
 
Refactoring legacy code
Refactoring legacy codeRefactoring legacy code
Refactoring legacy code
Pablo Neves Machado
 
Css masterclass book
Css masterclass bookCss masterclass book
Css masterclass book
Phoenix
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
ColdFusionConference
 
Build the Perfect WordPress Website
Build the Perfect WordPress WebsiteBuild the Perfect WordPress Website
Build the Perfect WordPress Website
Sinergia Labs
 
The Wordpress Theme Development Training in Bangalore
The Wordpress Theme Development Training in BangaloreThe Wordpress Theme Development Training in Bangalore
The Wordpress Theme Development Training in Bangalore
myTectra Learning Solutions Private Ltd
 
Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Adi Bolboaca
 
Extreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipExtreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software Craftsmanship
Victor Rentea
 
Bermuda Triangle WCATL 2019
Bermuda Triangle WCATL 2019 Bermuda Triangle WCATL 2019
Bermuda Triangle WCATL 2019
New Tricks
 
Site Man Pro
Site Man ProSite Man Pro
Site Man Pro
Loc Nguyen
 

Similar to Legacycodeisfearadibolboaca 141120063356-conversion-gate01 (20)

Everything is Relative: Frameworks, Plugins & SEO
Everything is Relative: Frameworks, Plugins & SEOEverything is Relative: Frameworks, Plugins & SEO
Everything is Relative: Frameworks, Plugins & SEO
 
Building Advanced Squarespace Websites
Building Advanced Squarespace WebsitesBuilding Advanced Squarespace Websites
Building Advanced Squarespace Websites
 
Startup Weapons for Newbie Entrepreneurs
Startup Weapons for Newbie EntrepreneursStartup Weapons for Newbie Entrepreneurs
Startup Weapons for Newbie Entrepreneurs
 
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014Refactoring Dojo @AgileWorks Bucharest 21 May 2014
Refactoring Dojo @AgileWorks Bucharest 21 May 2014
 
Building No-Code tools alongside your engineering team
Building No-Code tools alongside your engineering teamBuilding No-Code tools alongside your engineering team
Building No-Code tools alongside your engineering team
 
Building no-code tools alongside your engineering team - No Code Conf 2019
Building no-code tools alongside your engineering team - No Code Conf 2019Building no-code tools alongside your engineering team - No Code Conf 2019
Building no-code tools alongside your engineering team - No Code Conf 2019
 
5 truths-new
5 truths-new5 truths-new
5 truths-new
 
Session slides
Session slidesSession slides
Session slides
 
Session slides
Session slidesSession slides
Session slides
 
Session slides
Session slidesSession slides
Session slides
 
Tec314f
Tec314fTec314f
Tec314f
 
Refactoring legacy code
Refactoring legacy codeRefactoring legacy code
Refactoring legacy code
 
Css masterclass book
Css masterclass bookCss masterclass book
Css masterclass book
 
Software craftsmanship
Software craftsmanshipSoftware craftsmanship
Software craftsmanship
 
Build the Perfect WordPress Website
Build the Perfect WordPress WebsiteBuild the Perfect WordPress Website
Build the Perfect WordPress Website
 
The Wordpress Theme Development Training in Bangalore
The Wordpress Theme Development Training in BangaloreThe Wordpress Theme Development Training in Bangalore
The Wordpress Theme Development Training in Bangalore
 
Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06 Coderetreat @AgileWorks Bucharest 2012 07 06
Coderetreat @AgileWorks Bucharest 2012 07 06
 
Extreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software CraftsmanshipExtreme Professionalism - Software Craftsmanship
Extreme Professionalism - Software Craftsmanship
 
Bermuda Triangle WCATL 2019
Bermuda Triangle WCATL 2019 Bermuda Triangle WCATL 2019
Bermuda Triangle WCATL 2019
 
Site Man Pro
Site Man ProSite Man Pro
Site Man Pro
 

More from Codecamp Romania

Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
Codecamp Romania
 
Cloud powered search
Cloud powered searchCloud powered search
Cloud powered search
Codecamp Romania
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
Codecamp Romania
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
Codecamp Romania
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
Codecamp Romania
 
Agility and life
Agility and lifeAgility and life
Agility and life
Codecamp Romania
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
Codecamp Romania
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
Codecamp Romania
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
Codecamp Romania
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
Codecamp Romania
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
Codecamp Romania
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
Codecamp Romania
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Codecamp Romania
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
Codecamp Romania
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
Codecamp Romania
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
Codecamp Romania
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Codecamp Romania
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
Codecamp Romania
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
Codecamp Romania
 

More from Codecamp Romania (20)

Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
 
Cloud powered search
Cloud powered searchCloud powered search
Cloud powered search
 
Ccp
CcpCcp
Ccp
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
 
Agility and life
Agility and lifeAgility and life
Agility and life
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
 

Recently uploaded

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 

Recently uploaded (20)

Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 

Legacycodeisfearadibolboaca 141120063356-conversion-gate01

  • 1. Legacy Code is Fear www.mozaicworks.com
  • 2. Me Adi Bolboacă Programmer Organizational & Technical Trainer & Coach www.mozaicworks.com
  • 3. Legacy code scenario Current situation vs Better situation Not knowing what the actual code does Vs Gradually understanding the code and changing it to the minimum www.mozaicworks.com
  • 4. Legacy code scenario Reasons why to change existing code: Fix a bug Add a feature Have automated tests for the system core www.mozaicworks.com
  • 5. Legacy code scenario Reasons why not to change existing code: It looks ugly I would like to see nicer code I want to update to newest framework ... www.mozaicworks.com
  • 6. Current situation You need to add some features to an existing old project www.mozaicworks.com
  • 7. Current situation They tell you that you have a very short time to do it www.mozaicworks.com
  • 8. Current situation You are afraid to change the system www.mozaicworks.com
  • 9. Current situation The time feels waaaaay to short www.mozaicworks.com
  • 10. Current situation And you tell your manager: I cannot do it www.mozaicworks.com
  • 11. Current situation But the manager says... www.mozaicworks.com
  • 12. Current situation It takes double the time you said www.mozaicworks.com
  • 13. Current situation Your company loses money. Your customer loses money. www.mozaicworks.com
  • 14. Current situation Everyone is stressed www.mozaicworks.com
  • 15. Better situation Someone signs a contract to add some features to an existing old project www.mozaicworks.com
  • 16. Better situation Your team starts writing characterization tests to understand the change www.mozaicworks.com
  • 17. Better situation Your team writes end-to-end tests to understand the external dependencies www.mozaicworks.com
  • 18. Better situation Your team splits the end-to-end tests into integration tests and unit tests www.mozaicworks.com
  • 19. Better situation Your team starts adding more unit tests around the area that needs to be modified www.mozaicworks.com
  • 20. Better situation Every member of the team is using the refactoring skills to improve the design www.mozaicworks.com
  • 21. Better situation Your team adds the new feature. It is fully test automated. www.mozaicworks.com
  • 22. Better situation Your testers make the final exploratory and manual tests www.mozaicworks.com
  • 23. Better situation The team delivers on time. www.mozaicworks.com
  • 24. Better situation Your company wins money and respect from your customer. Your customer wins money and has trust in you. www.mozaicworks.com
  • 25. The problem: Legacy code is fear Our unknowns are making us afraid Automating tests minimizes the unknowns By automating tests we can increase confidence www.mozaicworks.com
  • 26. Very nice But how to do this? www.mozaicworks.com
  • 27. Find the known unknowns of the team Talk with the team Find what they do not know: domain knowledge, programming languages, unit testing, acceptance testing, frameworks, etc www.mozaicworks.com
  • 28. Make small scale experiments Use a smaller problem at first Learn how to write charaterization tests for that problem Use coding dojos and mob programming to practice together www.mozaicworks.com
  • 29. The littany against fear I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing.... only I will remain Dune by Frank Herbert www.mozaicworks.com
  • 30. Solve the legacy code fear: invest Invest in the future business agility of your company www.mozaicworks.com
  • 31. Solve the legacy code fear: learn Find the unknowns of the team Make a medium-term learning program Make small scale experiments Learn Extend to bigger scale experiments Learn Do a small change request in production Learn www.mozaicworks.com
  • 32. What's next? Read the Working Effectively with Legacy code book by Michael Feathers Find a good trainer to help the team learn Build learning program with team&trainer Learn from each experience www.mozaicworks.com
  • 34. Thank you! Working Fast and SAFE with Existing Product Inception Code retreat www.mozaicworks.com See the slides at http://www.slideshare.net/adibolb
  • 35. Extend your mentoring & training capacity Accelerate learning through communities of practice Grow your functional leaders and top talents http://www.mozaicworks.com adrian.bolboaca@mozaicworks.com @adibolb
  • 36. References http://upload.wikimedia.org/wikipedia/commons/7/7f/Snake_warning_sign.jpg http://upload.wikimedia.org/wikipedia/commons/4/44/CatLolCatExample.jpg http://upload.wikimedia.org/wikipedia/commons/8/88/I_IZ_SERIUS_ADMNIM_THIZ_IZ_SERIUS_BIZNIS_lolcat.jpg http://pixabay.com/p-160097/?no_redirect http://www.damemagazine.com/sites/default/files/styles/feature_wide/public/field/image/biological-clock.jpg?itok=http://fc01.deviantart.net/fs71/i/2012/149/6/9/no__9gag__by_hujikari-d51hu4l.jpg http://upload.wikimedia.org/wikipedia/commons/1/12/We_Can_Do_It!.jpg http://upload.wikimedia.org/wikipedia/commons/2/25/Dive_hand_signal_Descend.png http://pixabay.com/go/?t=/static/uploads/photo/2012/04/18/13/01/sign-36968_150.png%3Fattachment http://pixabay.com/static/uploads/photo/2014/06/03/19/38/plate-361516_640.jpg http://upload.wikimedia.org/wikipedia/commons/0/0c/Dive_hand_signal_OK_1.png www.mozaicworks.com