SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
Software Evolution
         Nicolas Anquetil
         RMod team
         rmod.lille.inria.fr
●   Why this course?
    –   Soft. Maint. is important
    –   Soft. Maint. is poorly understood
    –   Soft. Maint. is poorly performed
●   Goals
    –   You like maintenance
    –   You understand
        ●   Why it exists
        ●   Why you did not like it
        ●   Why you should like it
What is it?
Definition

        Software maintenance is the
   modification of a software product after
    delivery to correct faults, to improve
      performance or other attributes.
              ISO/IEC 14764:2006 Software Engineering —
             Software Life Cycle Processes — Maintenance
Definition
Legacy software: A system which continues to
 be used because of the cost of replacing or
   redesigning it and often despite its poor
competitiveness and compatibility with modern
equivalents. The implication is that the system
  is large, monolithic and difficult to modify.
                    mondofacto.com/facts/dictionary
Legacy Software

      1 sheet ≃ 60 lines of code (LOC)

      both sides = 120 LOC
Legacy Software

           10 sheets = 1200 LOC
                       (1.2 KLOC)
Legacy Software
Windows NT 3.1
 (1993)
 4 to 5 MLOC   3,75 m    3,20 m




                        Encyclopedia Britanica
                         (15 ed., 32 volumes)
Legacy Software
Windows NT 3.1
 (1993)
 4 to 5 MLOC
                 41,7 m   46 m
Windows server
 2003
50 MLOC
Legacy Sofware
●   Linux kernel 3.6
    16 MLOC
●   MacOS X 10.4
    86 MLOC
●   Debian 5.0
    324 MLOC
Relevance?
●   Estimations:
    –   120 billion LOC maintained in 1990
        (Ulrich, 1990)
    –   200 billion in 2000 (Sommerville, 2000)
Relevance?
●   Annual cost in USA > $70 billion
    (Sutherland, 1995; Edelstein,
    1993)
●   Nokia spent $90 million on Y2K
●   US government spent > $8 billion
Relevance?
●   Cost of maintenance in a
    software life
                               90%
                       75%
               55%
       40%
                                              from Pigoski
                                              1996

               early    late
       1970s                   1990   2000…
               1980s   1980s
●
    Dominant activity in software
    engineering
●
    Yet, still poorly understood and
    despised
    –   Punishment, probation
    –   No career advancement
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
●   Development techniques improve all
    the time
    –   Software processes (Agile, TDD)
    –   Software quality (CMMI)
    –   Tools (IDEs, xUnit)
    –   Languages (AOP, MDD)
●   Maintenance problem still exist !
●   Maintenance categories:
    –   Adaptive
                           21%
    –   Perfective        4% 25%

    –   Corrective            50%

    –   Preventive
●   For hardware, maintenance is
    replacement of used parts
●   For software:
    –   Source code doesn't wear (erode)
    –   Maintenance is mainly evolution
Software systems must be
continually adapted or they become
  progressively less satisfactory
               First law of software evolution
                              [Lehman, 1974]
●   A system works within the real world
●   The world change:
    –   New business opportunities
    –   Growing user expectations
    –   New laws
    –   …
●   Software systems must evolve or
    die (not useful)
●   Maintenance is mainly due to
    external causes
●   Maintenance (evolution) is
    inevitable
●   Better (or perfect) software
    development cannot change that
Maintenance is a sign of success !
 The system is used and useful,
      the users want more
The Mussel shack
●   Once upon a time, a fisherman in
    Dunkerque opened a small
    mussel selling point
The Mussel shack
●   Business was good
The Mussel shack
●   Business was very good
The Mussel shack
●   Employees asked for a cafeteria
The Mussel shack
●   Directors requested their dinning
    room
The Mussel shack
●   Law imposed an emergency exit
The Mussel shack
●   Concurrents have fitness room,
    added a piscine
The Mussel shack
●   and they lived happily ever after
    …
Moral

   The better the system, the more
       maintenance (evolution)
            it will require !
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
New techniques
●   Cobol > 60% of all code in the
    world [eWeeks, 2001]
●   180 GLOC in use, + 1GLOC/year
    [Gartner, 2006]
New techniques
●   Cobol – 1959
New techniques
●   New techniques do not target
    Cobol programs/programmers
    (We can safely ignore:
    –   Object Cobol
    –   Aspect Cobol)
New techniques
●   New techniques do not target
    existing legacy software
    –   Miss 90+ % of the market
New techniques
●   New techniques (models) are still
    programs
    –   Programs are models of the world
●   They will need to be maintained
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
More difficult?
●   Intrinsically more difficult than
    development
    –   Information missing on existing system
    –   Must preserve some backward compatibility
        (existing data, user habits, …)
    –   More chaotic (reaction to external events)
    –   Less resources
    –   …
Boring?
●   Difficult ≠ Boring
Boring?
●   Easy ≠ Interesting
Boring?
●   The problem is cultural first
    –   Maintenance is not taught (implies it is
        not important?
    –   Computer science evolves fast (“newer
        is better”)
    –   Seen as punishment/probation
Boring?
●   Maintenance is difficult
●   Can be seen as an interesting
    challenge
●   A good way to learn many things
    (e.g. programming tricks)
Boring?
●   First need to change perception

      "Legacy code" often differs from its
       suggested alternative by actually
            working and scaling.
                               Bjarne Stroustrup
Boring?
●   First need to change perception
●   Lack of interest worsen it:
    –   ill prepared
    –   performed by “less competent”
        employees
Boring?
●   First need to change perception
●   There is lots of money to make
    and interesting things to do in
    software evolution
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
Closing remarks
●   Software evolution is very
    important
●   Typically ill-perceived
●   There is an important cultural
    problem (misunderstanding)

Más contenido relacionado

La actualidad más candente

Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
Gurban Daniel
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Ni
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
Radu_Negulescu
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
Slideshare
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
Jayesh Buwa
 

La actualidad más candente (20)

Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Software engineering
Software engineering Software engineering
Software engineering
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
 
Software development process
Software development processSoftware development process
Software development process
 
1.sdlc
1.sdlc1.sdlc
1.sdlc
 
Software process
Software processSoftware process
Software process
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Sdlc
SdlcSdlc
Sdlc
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 

Similar a Software evolution evangelisation

Ian_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfIan_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdf
jyotineeli1
 
RubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projectsRubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projects
Vidmantas Kabošis
 

Similar a Software evolution evangelisation (20)

Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynote
 
1
11
1
 
Offshoring software development in Switzerland: You can do it
Offshoring software development in Switzerland: You can do itOffshoring software development in Switzerland: You can do it
Offshoring software development in Switzerland: You can do it
 
Ian_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfIan_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdf
 
software engineering ch-1
software engineering ch-1software engineering ch-1
software engineering ch-1
 
RubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projectsRubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projects
 
AGrabowski res
AGrabowski resAGrabowski res
AGrabowski res
 
Turbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleTurbo Charge Software Development with Xsemble
Turbo Charge Software Development with Xsemble
 
mehdi-refactoring.pptx
mehdi-refactoring.pptxmehdi-refactoring.pptx
mehdi-refactoring.pptx
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
merged (1).pdf
merged (1).pdfmerged (1).pdf
merged (1).pdf
 
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Ordina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDOrdina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CD
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Se 20150507
Se 20150507Se 20150507
Se 20150507
 

Último

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Último (20)

Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 

Software evolution evangelisation

  • 1. Software Evolution Nicolas Anquetil RMod team rmod.lille.inria.fr
  • 2. Why this course? – Soft. Maint. is important – Soft. Maint. is poorly understood – Soft. Maint. is poorly performed
  • 3. Goals – You like maintenance – You understand ● Why it exists ● Why you did not like it ● Why you should like it
  • 4. What is it? Definition Software maintenance is the modification of a software product after delivery to correct faults, to improve performance or other attributes. ISO/IEC 14764:2006 Software Engineering — Software Life Cycle Processes — Maintenance
  • 5. Definition Legacy software: A system which continues to be used because of the cost of replacing or redesigning it and often despite its poor competitiveness and compatibility with modern equivalents. The implication is that the system is large, monolithic and difficult to modify. mondofacto.com/facts/dictionary
  • 6. Legacy Software 1 sheet ≃ 60 lines of code (LOC) both sides = 120 LOC
  • 7. Legacy Software 10 sheets = 1200 LOC (1.2 KLOC)
  • 8. Legacy Software Windows NT 3.1 (1993) 4 to 5 MLOC 3,75 m 3,20 m Encyclopedia Britanica (15 ed., 32 volumes)
  • 9. Legacy Software Windows NT 3.1 (1993) 4 to 5 MLOC 41,7 m 46 m Windows server 2003 50 MLOC
  • 10. Legacy Sofware ● Linux kernel 3.6 16 MLOC ● MacOS X 10.4 86 MLOC ● Debian 5.0 324 MLOC
  • 11. Relevance? ● Estimations: – 120 billion LOC maintained in 1990 (Ulrich, 1990) – 200 billion in 2000 (Sommerville, 2000)
  • 12. Relevance? ● Annual cost in USA > $70 billion (Sutherland, 1995; Edelstein, 1993) ● Nokia spent $90 million on Y2K ● US government spent > $8 billion
  • 13. Relevance? ● Cost of maintenance in a software life 90% 75% 55% 40% from Pigoski 1996 early late 1970s 1990 2000… 1980s 1980s
  • 14. Dominant activity in software engineering ● Yet, still poorly understood and despised – Punishment, probation – No career advancement
  • 15. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 16. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 17. Development techniques improve all the time – Software processes (Agile, TDD) – Software quality (CMMI) – Tools (IDEs, xUnit) – Languages (AOP, MDD) ● Maintenance problem still exist !
  • 18. Maintenance categories: – Adaptive 21% – Perfective 4% 25% – Corrective 50% – Preventive
  • 19. For hardware, maintenance is replacement of used parts ● For software: – Source code doesn't wear (erode) – Maintenance is mainly evolution
  • 20. Software systems must be continually adapted or they become progressively less satisfactory First law of software evolution [Lehman, 1974]
  • 21. A system works within the real world ● The world change: – New business opportunities – Growing user expectations – New laws – …
  • 22. Software systems must evolve or die (not useful) ● Maintenance is mainly due to external causes
  • 23. Maintenance (evolution) is inevitable ● Better (or perfect) software development cannot change that
  • 24. Maintenance is a sign of success ! The system is used and useful, the users want more
  • 25. The Mussel shack ● Once upon a time, a fisherman in Dunkerque opened a small mussel selling point
  • 26. The Mussel shack ● Business was good
  • 27. The Mussel shack ● Business was very good
  • 28. The Mussel shack ● Employees asked for a cafeteria
  • 29. The Mussel shack ● Directors requested their dinning room
  • 30. The Mussel shack ● Law imposed an emergency exit
  • 31. The Mussel shack ● Concurrents have fitness room, added a piscine
  • 32. The Mussel shack ● and they lived happily ever after …
  • 33. Moral The better the system, the more maintenance (evolution) it will require !
  • 34. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 35. New techniques ● Cobol > 60% of all code in the world [eWeeks, 2001] ● 180 GLOC in use, + 1GLOC/year [Gartner, 2006]
  • 36. New techniques ● Cobol – 1959
  • 37. New techniques ● New techniques do not target Cobol programs/programmers (We can safely ignore: – Object Cobol – Aspect Cobol)
  • 38. New techniques ● New techniques do not target existing legacy software – Miss 90+ % of the market
  • 39. New techniques ● New techniques (models) are still programs – Programs are models of the world ● They will need to be maintained
  • 40. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 41. More difficult? ● Intrinsically more difficult than development – Information missing on existing system – Must preserve some backward compatibility (existing data, user habits, …) – More chaotic (reaction to external events) – Less resources – …
  • 42. Boring? ● Difficult ≠ Boring
  • 43. Boring? ● Easy ≠ Interesting
  • 44. Boring? ● The problem is cultural first – Maintenance is not taught (implies it is not important? – Computer science evolves fast (“newer is better”) – Seen as punishment/probation
  • 45. Boring? ● Maintenance is difficult ● Can be seen as an interesting challenge ● A good way to learn many things (e.g. programming tricks)
  • 46. Boring? ● First need to change perception "Legacy code" often differs from its suggested alternative by actually working and scaling. Bjarne Stroustrup
  • 47. Boring? ● First need to change perception ● Lack of interest worsen it: – ill prepared – performed by “less competent” employees
  • 48. Boring? ● First need to change perception ● There is lots of money to make and interesting things to do in software evolution
  • 49. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 51. Software evolution is very important ● Typically ill-perceived ● There is an important cultural problem (misunderstanding)