SlideShare a Scribd company logo
1 of 45
Download to read offline
Sven Peters / Atlassian


Wenn Code altert
Tipps, wie Wartungsprojekte frisch bleiben
Sven Peters
Ambassador




@svenpet
svenpet.com
mobro.co/svenpet
Disclaimer




       my
         Experience
@svenpet
svenpet.com
“   Nothing has a more profound or long-
    lasting negative effect on the productivity
    of a software team than a mess. Nothing.
                                 Robert C. Martin
                                                    “
?
Maintenance
          projekt
?
5 years
lin
?     1M+
   es
      of
         co
           de
lin
?  es
      2M+
      of
         co
           de
?
  lost
overview

                de
              co
           of
        es
     lin
Har

Bath Tub Curve
                  dw
                     a   re
Sof

Bath Tub Curve
                  twa
                        re
Sof

Bath Tub Curve
                  twa
                        re
Field
green
How long does it take?


                                 8 hours
                                                    no Tests!
            grüne
We need it in 6!
                    Wiese
                             OK, I‘ll do it in 4!
more cooks!
too many cooks...




            ...spoil the broth
REWRITE
REWRITE
e n
    ro k
B    Windows
Don‘t stop
the Engines
THE DEVELOPER




THE MANAGER

                              THE SCRUM MASTER




                     There is
                              no Plan B
Boy Scout Rule




  Leave the campground cleaner than you
  found it.
Toolchain
The
readability
improve
Naming


“ Any fool can write code that ahumans cancan understand. Good
                                 computer
  programmers write code that              understand.            “
                                                       Martin Fowler
no
     comment
test
automated
Legacy Code Change Algorithm   by Michael C. Feathers


1. Identify Change Points

2. Make Changes and Refactor
Legacy Code Change Algorithm   by Michael C. Feathers


1. Identify Change Points

2. Find Test Points

3. Break Dependencies

4. Write Tests

5. Make Changes and Refactor
Clean Code
ingle Responsible Principle

pen Closed Principle

iskow Substitution Principle

nterface Segregation Principle

ependency Inversion Principle
Root Ca
         usposition over Inheritaince
Favour Com e Analysis rself             on
                                   ract
                       you NeedtIt
        Yout Aep‘t Gt nna bsrns
               in eao
       Do n‘ r              onA e
                           C of c
   DRYKISSperation of el
         Se - Kee       ev
                   p etLs
                      i im
                 ingl       ple, s
               S                  tupid
Clean Code
Developer
             von
             Stefan Lieser &
             Ralf Westphal
             clean-code-developer.de
Evolve


Clean Code
    &
Developer
Sven Peters
                   Atlassian




@svenpet

More Related Content

What's hot

7 Habits of Highly Ineffective Project Managers
7 Habits of Highly Ineffective Project Managers7 Habits of Highly Ineffective Project Managers
7 Habits of Highly Ineffective Project Managers
Carol Smith
 

What's hot (12)

5-Whys Method
5-Whys Method5-Whys Method
5-Whys Method
 
Agile and the evolution
Agile and the evolutionAgile and the evolution
Agile and the evolution
 
Atlassian - Software For Every Team
Atlassian - Software For Every TeamAtlassian - Software For Every Team
Atlassian - Software For Every Team
 
Test innovation for everyone
Test innovation for everyoneTest innovation for everyone
Test innovation for everyone
 
WeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming LiveWeActuallyBuildStuff - Extreme Programming Live
WeActuallyBuildStuff - Extreme Programming Live
 
Running efficient distributed teams
Running efficient distributed teamsRunning efficient distributed teams
Running efficient distributed teams
 
Why just fake it
Why just fake itWhy just fake it
Why just fake it
 
Dev / non dev communication
Dev / non dev communicationDev / non dev communication
Dev / non dev communication
 
10 Secret Unit Testing Tips
10 Secret Unit Testing Tips10 Secret Unit Testing Tips
10 Secret Unit Testing Tips
 
TDD - Why and How?
TDD - Why and How?TDD - Why and How?
TDD - Why and How?
 
10 Secret Unit Testing Tips
10 Secret Unit Testing Tips10 Secret Unit Testing Tips
10 Secret Unit Testing Tips
 
7 Habits of Highly Ineffective Project Managers
7 Habits of Highly Ineffective Project Managers7 Habits of Highly Ineffective Project Managers
7 Habits of Highly Ineffective Project Managers
 

Viewers also liked

Atlassian Bonfire
Atlassian BonfireAtlassian Bonfire
Atlassian Bonfire
Sven Peters
 
Atlassian User Group Wiesbaden
Atlassian User Group WiesbadenAtlassian User Group Wiesbaden
Atlassian User Group Wiesbaden
Sven Peters
 
Software Programming Principles
Software Programming PrinciplesSoftware Programming Principles
Software Programming Principles
Sven Peters
 

Viewers also liked (20)

Atlassian Bonfire
Atlassian BonfireAtlassian Bonfire
Atlassian Bonfire
 
Atlassian User Group Karlsruhe + München
Atlassian User Group Karlsruhe + MünchenAtlassian User Group Karlsruhe + München
Atlassian User Group Karlsruhe + München
 
Atlassian User Group Berlin Brandenburg
Atlassian User Group Berlin BrandenburgAtlassian User Group Berlin Brandenburg
Atlassian User Group Berlin Brandenburg
 
Making the switch to DVCS
Making the switch to DVCSMaking the switch to DVCS
Making the switch to DVCS
 
JIRA 4.4
JIRA 4.4JIRA 4.4
JIRA 4.4
 
Aug Karlsruhe
Aug Karlsruhe Aug Karlsruhe
Aug Karlsruhe
 
Atlassian User Group NRW
Atlassian User Group NRWAtlassian User Group NRW
Atlassian User Group NRW
 
Atlassian User Group Wiesbaden
Atlassian User Group WiesbadenAtlassian User Group Wiesbaden
Atlassian User Group Wiesbaden
 
JIRA Enterprise
JIRA EnterpriseJIRA Enterprise
JIRA Enterprise
 
Keynote CCD 2011
Keynote CCD 2011Keynote CCD 2011
Keynote CCD 2011
 
Atlassian User Group Bielefeld
Atlassian User Group BielefeldAtlassian User Group Bielefeld
Atlassian User Group Bielefeld
 
Software Programming Principles
Software Programming PrinciplesSoftware Programming Principles
Software Programming Principles
 
Confluence - From Wiki to Collaboration Platform
Confluence - From Wiki to Collaboration PlatformConfluence - From Wiki to Collaboration Platform
Confluence - From Wiki to Collaboration Platform
 
Atlassian: The latest and greatest - May/June 2013
Atlassian: The latest and greatest - May/June 2013Atlassian: The latest and greatest - May/June 2013
Atlassian: The latest and greatest - May/June 2013
 
How To Do Kick-Ass Software Development
How To Do Kick-Ass Software DevelopmentHow To Do Kick-Ass Software Development
How To Do Kick-Ass Software Development
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful Teams
 
Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014Software Development Innovation in Practice - 33rd Degree 2014
Software Development Innovation in Practice - 33rd Degree 2014
 
Build Better Software Together
Build Better Software TogetherBuild Better Software Together
Build Better Software Together
 
Atlassian User Group - September 2013
Atlassian User Group - September 2013Atlassian User Group - September 2013
Atlassian User Group - September 2013
 

Similar to W jax wenn-code altert

Similar to W jax wenn-code altert (20)

Clearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad DecisionsClearly, I Have Made Some Bad Decisions
Clearly, I Have Made Some Bad Decisions
 
Agile analysis development
Agile analysis developmentAgile analysis development
Agile analysis development
 
Getting Started In Qa
Getting Started In QaGetting Started In Qa
Getting Started In Qa
 
How to make good teams great - Sven Peters
How to make good teams great - Sven PetersHow to make good teams great - Sven Peters
How to make good teams great - Sven Peters
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
QC Merge 2012: Growing community
QC Merge 2012: Growing communityQC Merge 2012: Growing community
QC Merge 2012: Growing community
 
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
Your Goat Antifragiled My Snowflake!: Demystifying DevOps Jargon - ChefConf 2015
 
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 
TDD and Getting Paid
TDD and Getting PaidTDD and Getting Paid
TDD and Getting Paid
 
Automatic detection of highlights from a Cricket Match
Automatic detection of highlights from a Cricket MatchAutomatic detection of highlights from a Cricket Match
Automatic detection of highlights from a Cricket Match
 
A sweet taste of clean code and software design
A sweet taste of clean code and software designA sweet taste of clean code and software design
A sweet taste of clean code and software design
 
Dear compiler please don't be my nanny v2
Dear compiler  please don't be my nanny v2Dear compiler  please don't be my nanny v2
Dear compiler please don't be my nanny v2
 
Agile Rabbit Holes
Agile Rabbit HolesAgile Rabbit Holes
Agile Rabbit Holes
 
Ruby codebases in an entropic universe
Ruby codebases in an entropic universeRuby codebases in an entropic universe
Ruby codebases in an entropic universe
 
Shelby Tech Talk - The Early Days
Shelby Tech Talk - The Early DaysShelby Tech Talk - The Early Days
Shelby Tech Talk - The Early Days
 
Conversational Speech Translation - Challenges and Techniques, by Chris Wendt...
Conversational Speech Translation - Challenges and Techniques, by Chris Wendt...Conversational Speech Translation - Challenges and Techniques, by Chris Wendt...
Conversational Speech Translation - Challenges and Techniques, by Chris Wendt...
 
Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)Test Driven Development on Android (Kotlin Kenya)
Test Driven Development on Android (Kotlin Kenya)
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 

More from Sven Peters

More from Sven Peters (20)

✊ Join the DEV-olution: A culture of empowered developers
✊ Join the DEV-olution: A culture of empowered developers✊ Join the DEV-olution: A culture of empowered developers
✊ Join the DEV-olution: A culture of empowered developers
 
Team Shaping - Building a shared understanding
Team Shaping - Building a shared understandingTeam Shaping - Building a shared understanding
Team Shaping - Building a shared understanding
 
Developer Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t doneDeveloper Joy - How great teams get s%*t done
Developer Joy - How great teams get s%*t done
 
Teams Flow, Stay in sync, async
Teams Flow, Stay in sync, asyncTeams Flow, Stay in sync, async
Teams Flow, Stay in sync, async
 
The Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer CareerThe Hitchhiker's Guide to a Great Developer Career
The Hitchhiker's Guide to a Great Developer Career
 
The Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not HarderThe Effective Developer - Work Smarter, not Harder
The Effective Developer - Work Smarter, not Harder
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
The Effective Developer - Work Smarter, Not Harder
The Effective Developer - Work Smarter, Not HarderThe Effective Developer - Work Smarter, Not Harder
The Effective Developer - Work Smarter, Not Harder
 
5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work5 Things: How to Rock Remote Work
5 Things: How to Rock Remote Work
 
A Career Advice: Change is the Only Constant
A Career Advice: Change is the Only ConstantA Career Advice: Change is the Only Constant
A Career Advice: Change is the Only Constant
 
Be More Productive with Confluence
Be More Productive with ConfluenceBe More Productive with Confluence
Be More Productive with Confluence
 
Less Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team PlaybookLess Process, more Guidance with a Team Playbook
Less Process, more Guidance with a Team Playbook
 
Rise of the Machines - Automate your Development
Rise of the Machines - Automate your DevelopmentRise of the Machines - Automate your Development
Rise of the Machines - Automate your Development
 
Kick-@$$ Sofware Development
Kick-@$$ Sofware DevelopmentKick-@$$ Sofware Development
Kick-@$$ Sofware Development
 
The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014The 5 Hottest Atlassian News from Summit 2014
The 5 Hottest Atlassian News from Summit 2014
 
Coding Culture
Coding CultureCoding Culture
Coding Culture
 
It's the culture, but not as you know it
It's the culture, but not as you know itIt's the culture, but not as you know it
It's the culture, but not as you know it
 
Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014Atlassian - The Latest & Greatest April 2014
Atlassian - The Latest & Greatest April 2014
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Git Branching for Agile Teams
Git Branching for Agile TeamsGit Branching for Agile Teams
Git Branching for Agile Teams
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

W jax wenn-code altert