SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
I hate Maintenance !

Maintenance SUCKS !
Agile Maintenance


     Naresh Jain

   Copyright © ThoughtWorks, 2005
Agenda of this discussion
   Glossary
   Why maintain software
   Types of Software Maintenance
   Traditional v/s Agile Maintenance Approach
   Agile Testing
   Agile Release Management
   Why maintenance is so expensive (and can be destructive)
   Agile Maintenance Best Practices
   Conclusion
   Q&A
                                                              3
Glossary
Software maintenance is defined as the process of modifying
a software system or component after delivery to correct
faults, improve performance or other attributes, or adapt to a
changed environment [IEEE 1990]


                 Iterative Agile Development


What’s the difference between Maintenance and Support?


            ADD MAX VALUE TO THE CLIENT !
                                                                 4
Why maintain software?
Stephen R Schach summarizes:

• Model of reality. As the reality changes, the software must adapt or die.


• Pressures from satisfied users, to extend the functionality of the
  product.


• Software is much easier to change than hardware. As a result, changes
  are made to the software whenever possible.


• Successful software survives well beyond the lifetime of the
  environment for which it was written.
                                                                              5
Types of Software Maintenance
 • Corrective maintenance is maintenance performed to correct faults
   in hardware or software [IEEE 1990]

 • Adaptive maintenance is software maintenance performed to make
   a computer program usable in a changed environment [IEEE 1990].

 • Perfective maintenance is software maintenance performed to
   improve the performance, maintainability, or other attributes of a
   computer program. [IEEE 1990]

 • Preventative maintenance is maintenance preformed for the
   purpose of preventing problems before they occur [IEEE 1990]

                                                                        6
The Frequency of Each Type of
Maintenance
                Types of Maintenance
           4%

     17%

                              Corrective (fixing faults)

                              Perfective (new functionality)

                              Adaptive (environmental changes)
   18%                61%
                              Other




                                                                 7
Traditional v/s Agile Maintenance
Approach
 Traditional approach Agile approach
 1.   Massive projects with waterfall model    1.   Small projects with agile model
 2.   CR Form                                  2.   Bug reports / story cards
 3.   Change control board [CCB]
 4.   CCB approves and prioritizes the bugs    3.   Developers estimate
                                               4.   Customer prioritizes the bugs
 5.   Summary of the bugs handed over to       5.   Common bug tracking database
      the developers – loss of context
 6.   Developers jump to the code and fix it   6.  QAs test and write functional
 7.   Update all the design documents              acceptance tests
                                               7. Developers write failing unit tests
                                               8. Developers fix it and run unit &
                                                   functional tests
 8.   Regression testing                       9. Regression testing
 9.   Patch release                            10. New release


                                                                                        8
Quick Fix or Iterative Development
 •   Quick fix is often used in emergency, corrective maintenance.
     Emergency maintenance is unscheduled corrective maintenance
     performed to keep a system operational [IEEE 1998]. Also called
     Code & Fix

 •   Iterative development process is based on the Evolutionary
     development paradigm [Takang and Grubb 1996] or Extreme
     Programming paradigm.

 •   Iterative enhancement involves a five-staged cycle:
      Analysis (simulation)
      User acceptance tests and Unit tests
      Redesign and implementation
      Regression tests
      Release
                                                                       9
Agile Maintenance Testing

  • Acceptance Testing – xUnit, FIT, …

  • Unit Tests – Black box functional unit tests

  • Regression testing is selective retesting of a system or
    component to verify that modifications have not caused
    unintended effects and that the system or component still
    complies with its specified requirements [IEEE 1990]




                                                                10
Agile Release Management
 Software release management, also known as software
   configuration management, is the management of activities
   surrounding release of one or more versions of software to one
   or more customers. Release management includes defining
   acceptable quality levels for release, authority to authorize the
   release, release procedures, and so on [IEEE 1990].


 Best practices:
 • Automated release creation and verification process
 • Automated management of application specific configuration
 • Simulation of target deployment environments and automated
   testing
 • Release creation from the QA environment
                                                                       11
Maintenance Smells
 • A lot of regression bugs

 • Less than 50% of the time is dedicated to refactoring

 • Developers not pairing 100%

 • Test coverage not improving with time

 • Lack of team outings

 • People getting stuck on the project for more than a year
                                                              12
Why Maintenance Is So Expensive
(and Can Be Destructive)?
  • Team stability
 • Contractual responsibility
 • Staff skills
 • Transition plan for team members
 • Program age and structure
 • Stressful nature of work
 • Fluctuation in the workload and resourcing problems
 • Planning
                                                         13
Agile Maintenance Best Practices
  •   Automated regression testing
  •   Continuous integration
  •   Coding standard
  •   Developers can focus on maintainability -
      Refactoring
  •   Pair programming
  •   Application logs
  •   Bug Tracking database – Knowledge repository
  •   Retrospectives
                                                     14
Agile Maintenance Best
•  Practices…
  QA – Developer pairing
• Debugging is parallelizable
• Involve your customer – Daily status, Project Wiki
  in Customer environment, IM conversations, IPM,
• Constantly improve the test coverage
• Use some acceptance test framework
• QA smoke test on the developer machine for
  immediate feedback
• Short releases
                                                       15
My 0.02
 • Source code is the king


 • Untrustworthy documentation


 • The bug-tracking database stores knowledge


 • Reproduction is essential to obtaining a
   solution

                                                16
Retrospective




                17
Thank you!


    email: njain@thoughtworks.com
    blog: http://jroller.com/page/njain

Más contenido relacionado

La actualidad más candente

SBS - SMED Training (Set Up Reduction)
SBS - SMED Training (Set Up Reduction)SBS - SMED Training (Set Up Reduction)
SBS - SMED Training (Set Up Reduction)
Chris Cummins
 
AutoSpice Agile Hand in Hand
AutoSpice Agile Hand in HandAutoSpice Agile Hand in Hand
AutoSpice Agile Hand in Hand
Ruchika Sachdeva
 
Gestión ágil con scrum resumen del curso
Gestión ágil con scrum   resumen del cursoGestión ágil con scrum   resumen del curso
Gestión ágil con scrum resumen del curso
jonathgomez1
 
Identity and Entitlement Management Concepts
Identity and Entitlement Management Concepts Identity and Entitlement Management Concepts
Identity and Entitlement Management Concepts
WSO2
 

La actualidad más candente (20)

Prince2 Methodology
Prince2 MethodologyPrince2 Methodology
Prince2 Methodology
 
A Manager's Guide to OEE (Overall Equipment Effectiveness)
A Manager's Guide to OEE (Overall Equipment Effectiveness)A Manager's Guide to OEE (Overall Equipment Effectiveness)
A Manager's Guide to OEE (Overall Equipment Effectiveness)
 
Requirement Gathering in Azure DevOps
Requirement Gathering in Azure DevOps Requirement Gathering in Azure DevOps
Requirement Gathering in Azure DevOps
 
Project Scope Management,PMP Chapter 5,PMBOK,PMP Exam Preparation training
Project Scope Management,PMP Chapter 5,PMBOK,PMP Exam Preparation trainingProject Scope Management,PMP Chapter 5,PMBOK,PMP Exam Preparation training
Project Scope Management,PMP Chapter 5,PMBOK,PMP Exam Preparation training
 
SBS - SMED Training (Set Up Reduction)
SBS - SMED Training (Set Up Reduction)SBS - SMED Training (Set Up Reduction)
SBS - SMED Training (Set Up Reduction)
 
PMI-PgMP (Program Management Professional) Approach and plan
PMI-PgMP (Program Management Professional) Approach and planPMI-PgMP (Program Management Professional) Approach and plan
PMI-PgMP (Program Management Professional) Approach and plan
 
CMMI PPT.pptx
CMMI PPT.pptxCMMI PPT.pptx
CMMI PPT.pptx
 
AutoSpice Agile Hand in Hand
AutoSpice Agile Hand in HandAutoSpice Agile Hand in Hand
AutoSpice Agile Hand in Hand
 
Agile project management using scrum
Agile project management using scrumAgile project management using scrum
Agile project management using scrum
 
PMP Exam Prep_sample slides
PMP Exam Prep_sample slidesPMP Exam Prep_sample slides
PMP Exam Prep_sample slides
 
SMED Setup & Lead Time Reduction
SMED Setup & Lead Time ReductionSMED Setup & Lead Time Reduction
SMED Setup & Lead Time Reduction
 
Gestión ágil con scrum resumen del curso
Gestión ágil con scrum   resumen del cursoGestión ágil con scrum   resumen del curso
Gestión ágil con scrum resumen del curso
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfall
 
Identity and Entitlement Management Concepts
Identity and Entitlement Management Concepts Identity and Entitlement Management Concepts
Identity and Entitlement Management Concepts
 
Presentation about kaizen
Presentation about kaizenPresentation about kaizen
Presentation about kaizen
 
kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
 kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj... kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
kaizen presentation in 5th national kaizen competition at CICU ludhiana-Punj...
 
Kaizen bcic
Kaizen bcicKaizen bcic
Kaizen bcic
 
SMED Training
SMED Training SMED Training
SMED Training
 
Agile project management framework
Agile project management frameworkAgile project management framework
Agile project management framework
 
Pmbok6 to 7 transformation
Pmbok6 to 7 transformationPmbok6 to 7 transformation
Pmbok6 to 7 transformation
 

Destacado

Destacado (20)

Evolution Of Team Interaction Models
Evolution Of Team Interaction ModelsEvolution Of Team Interaction Models
Evolution Of Team Interaction Models
 
Managing Iterations
Managing IterationsManaging Iterations
Managing Iterations
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers Way
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile Maintenance
 
XP And Scrum Practices
XP And Scrum PracticesXP And Scrum Practices
XP And Scrum Practices
 
Continuous Deployment Demystified
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment Demystified
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
 
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
Our Journey Down the Yellow Brick Road (Agile Adoption @ Directi)
 
Refactoring Fest
Refactoring FestRefactoring Fest
Refactoring Fest
 
Distributed Agile
Distributed AgileDistributed Agile
Distributed Agile
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
TDD Overview
TDD OverviewTDD Overview
TDD Overview
 
Agile Overview
Agile OverviewAgile Overview
Agile Overview
 
Waterfall to Agile Demo
Waterfall to Agile DemoWaterfall to Agile Demo
Waterfall to Agile Demo
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven Development
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 

Similar a Agile Maintenance

Презентация
ПрезентацияПрезентация
Презентация
guest22d71d
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
guestc990b6
 
Dr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.pptDr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.ppt
Phial
 
Maintenance: the cost for software vendors and what it means to your organiza...
Maintenance: the cost for software vendors and what it means to your organiza...Maintenance: the cost for software vendors and what it means to your organiza...
Maintenance: the cost for software vendors and what it means to your organiza...
nick_hans
 
Process model rup
Process model rupProcess model rup
Process model rup
Aryan Ajmer
 
Chapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration auditChapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration audit
Cliftone Mullah
 

Similar a Agile Maintenance (20)

Презентация
ПрезентацияПрезентация
Презентация
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Test automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application ServerTest automation lessons from WebSphere Application Server
Test automation lessons from WebSphere Application Server
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Dr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.pptDr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.ppt
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
Maintenance: the cost for software vendors and what it means to your organiza...
Maintenance: the cost for software vendors and what it means to your organiza...Maintenance: the cost for software vendors and what it means to your organiza...
Maintenance: the cost for software vendors and what it means to your organiza...
 
Process model rup
Process model rupProcess model rup
Process model rup
 
2-models.pptx
2-models.pptx2-models.pptx
2-models.pptx
 
01- Lecture -Introduction to IT Agile Development.
01- Lecture -Introduction to IT Agile Development.01- Lecture -Introduction to IT Agile Development.
01- Lecture -Introduction to IT Agile Development.
 
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
 
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
 
ROLE OF iSAFE/iMobi IN SEAMLESS INTEGRATION OF THE DEVOPS ENVIRONMENT
ROLE OF iSAFE/iMobi IN SEAMLESS INTEGRATION OF THE DEVOPS ENVIRONMENTROLE OF iSAFE/iMobi IN SEAMLESS INTEGRATION OF THE DEVOPS ENVIRONMENT
ROLE OF iSAFE/iMobi IN SEAMLESS INTEGRATION OF THE DEVOPS ENVIRONMENT
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
 
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
 
Quality assuarance bharath anche (1)
Quality assuarance bharath anche (1)Quality assuarance bharath anche (1)
Quality assuarance bharath anche (1)
 
Software Lifecycle
Software LifecycleSoftware Lifecycle
Software Lifecycle
 
DevOps Engineering.pptx
DevOps Engineering.pptxDevOps Engineering.pptx
DevOps Engineering.pptx
 
Chapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration auditChapter 8 software quality assurance and configuration audit
Chapter 8 software quality assurance and configuration audit
 

Más de Naresh Jain

Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
Naresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 

Más de Naresh Jain (20)

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
 
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo KimGetting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
Getting2Alpha: Turbo-charge your product with Game Thinking by Amy Jo Kim
 

Último

MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdfMASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
Cocity Enterprises
 
abortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadh
abortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadhabortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadh
abortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadh
samsungultra782445
 
+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...
+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...
+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...
Health
 

Último (20)

Test bank for advanced assessment interpreting findings and formulating diffe...
Test bank for advanced assessment interpreting findings and formulating diffe...Test bank for advanced assessment interpreting findings and formulating diffe...
Test bank for advanced assessment interpreting findings and formulating diffe...
 
Strategic Resources May 2024 Corporate Presentation
Strategic Resources May 2024 Corporate PresentationStrategic Resources May 2024 Corporate Presentation
Strategic Resources May 2024 Corporate Presentation
 
Q1 2024 Conference Call Presentation vF.pdf
Q1 2024 Conference Call Presentation vF.pdfQ1 2024 Conference Call Presentation vF.pdf
Q1 2024 Conference Call Presentation vF.pdf
 
Shrambal_Distributors_Newsletter_May-2024.pdf
Shrambal_Distributors_Newsletter_May-2024.pdfShrambal_Distributors_Newsletter_May-2024.pdf
Shrambal_Distributors_Newsletter_May-2024.pdf
 
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdfMASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
 
uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...
uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...
uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...
 
abortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadh
abortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadhabortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadh
abortion pills in Jeddah Saudi Arabia (+919707899604)cytotec pills in Riyadh
 
Significant AI Trends for the Financial Industry in 2024 and How to Utilize Them
Significant AI Trends for the Financial Industry in 2024 and How to Utilize ThemSignificant AI Trends for the Financial Industry in 2024 and How to Utilize Them
Significant AI Trends for the Financial Industry in 2024 and How to Utilize Them
 
7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options
 
Group 8 - Goldman Sachs & 1MDB Case Studies
Group 8 - Goldman Sachs & 1MDB Case StudiesGroup 8 - Goldman Sachs & 1MDB Case Studies
Group 8 - Goldman Sachs & 1MDB Case Studies
 
Dubai Call Girls Deira O525547819 Dubai Call Girls Bur Dubai Multiple
Dubai Call Girls Deira O525547819 Dubai Call Girls Bur Dubai MultipleDubai Call Girls Deira O525547819 Dubai Call Girls Bur Dubai Multiple
Dubai Call Girls Deira O525547819 Dubai Call Girls Bur Dubai Multiple
 
Business Principles, Tools, and Techniques in Participating in Various Types...
Business Principles, Tools, and Techniques  in Participating in Various Types...Business Principles, Tools, and Techniques  in Participating in Various Types...
Business Principles, Tools, and Techniques in Participating in Various Types...
 
Mahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Mahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsMahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Mahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Stock Market Brief Deck (Under Pressure).pdf
Stock Market Brief Deck (Under Pressure).pdfStock Market Brief Deck (Under Pressure).pdf
Stock Market Brief Deck (Under Pressure).pdf
 
Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...
Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...
Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...
 
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdf
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdfSeeman_Fiintouch_LLP_Newsletter_May-2024.pdf
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdf
 
Toronto dominion bank investor presentation.pdf
Toronto dominion bank investor presentation.pdfToronto dominion bank investor presentation.pdf
Toronto dominion bank investor presentation.pdf
 
20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...
20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...
20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...
 
+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...
+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...
+97470301568>>buy weed in qatar,buy thc oil in qatar doha>>buy cannabis oil i...
 
logistics industry development power point ppt.pdf
logistics industry development power point ppt.pdflogistics industry development power point ppt.pdf
logistics industry development power point ppt.pdf
 

Agile Maintenance

  • 1. I hate Maintenance ! Maintenance SUCKS !
  • 2. Agile Maintenance Naresh Jain Copyright © ThoughtWorks, 2005
  • 3. Agenda of this discussion Glossary Why maintain software Types of Software Maintenance Traditional v/s Agile Maintenance Approach Agile Testing Agile Release Management Why maintenance is so expensive (and can be destructive) Agile Maintenance Best Practices Conclusion Q&A 3
  • 4. Glossary Software maintenance is defined as the process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment [IEEE 1990] Iterative Agile Development What’s the difference between Maintenance and Support? ADD MAX VALUE TO THE CLIENT ! 4
  • 5. Why maintain software? Stephen R Schach summarizes: • Model of reality. As the reality changes, the software must adapt or die. • Pressures from satisfied users, to extend the functionality of the product. • Software is much easier to change than hardware. As a result, changes are made to the software whenever possible. • Successful software survives well beyond the lifetime of the environment for which it was written. 5
  • 6. Types of Software Maintenance • Corrective maintenance is maintenance performed to correct faults in hardware or software [IEEE 1990] • Adaptive maintenance is software maintenance performed to make a computer program usable in a changed environment [IEEE 1990]. • Perfective maintenance is software maintenance performed to improve the performance, maintainability, or other attributes of a computer program. [IEEE 1990] • Preventative maintenance is maintenance preformed for the purpose of preventing problems before they occur [IEEE 1990] 6
  • 7. The Frequency of Each Type of Maintenance Types of Maintenance 4% 17% Corrective (fixing faults) Perfective (new functionality) Adaptive (environmental changes) 18% 61% Other 7
  • 8. Traditional v/s Agile Maintenance Approach Traditional approach Agile approach 1. Massive projects with waterfall model 1. Small projects with agile model 2. CR Form 2. Bug reports / story cards 3. Change control board [CCB] 4. CCB approves and prioritizes the bugs 3. Developers estimate 4. Customer prioritizes the bugs 5. Summary of the bugs handed over to 5. Common bug tracking database the developers – loss of context 6. Developers jump to the code and fix it 6. QAs test and write functional 7. Update all the design documents acceptance tests 7. Developers write failing unit tests 8. Developers fix it and run unit & functional tests 8. Regression testing 9. Regression testing 9. Patch release 10. New release 8
  • 9. Quick Fix or Iterative Development • Quick fix is often used in emergency, corrective maintenance. Emergency maintenance is unscheduled corrective maintenance performed to keep a system operational [IEEE 1998]. Also called Code & Fix • Iterative development process is based on the Evolutionary development paradigm [Takang and Grubb 1996] or Extreme Programming paradigm. • Iterative enhancement involves a five-staged cycle: Analysis (simulation) User acceptance tests and Unit tests Redesign and implementation Regression tests Release 9
  • 10. Agile Maintenance Testing • Acceptance Testing – xUnit, FIT, … • Unit Tests – Black box functional unit tests • Regression testing is selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still complies with its specified requirements [IEEE 1990] 10
  • 11. Agile Release Management Software release management, also known as software configuration management, is the management of activities surrounding release of one or more versions of software to one or more customers. Release management includes defining acceptable quality levels for release, authority to authorize the release, release procedures, and so on [IEEE 1990]. Best practices: • Automated release creation and verification process • Automated management of application specific configuration • Simulation of target deployment environments and automated testing • Release creation from the QA environment 11
  • 12. Maintenance Smells • A lot of regression bugs • Less than 50% of the time is dedicated to refactoring • Developers not pairing 100% • Test coverage not improving with time • Lack of team outings • People getting stuck on the project for more than a year 12
  • 13. Why Maintenance Is So Expensive (and Can Be Destructive)? • Team stability • Contractual responsibility • Staff skills • Transition plan for team members • Program age and structure • Stressful nature of work • Fluctuation in the workload and resourcing problems • Planning 13
  • 14. Agile Maintenance Best Practices • Automated regression testing • Continuous integration • Coding standard • Developers can focus on maintainability - Refactoring • Pair programming • Application logs • Bug Tracking database – Knowledge repository • Retrospectives 14
  • 15. Agile Maintenance Best • Practices… QA – Developer pairing • Debugging is parallelizable • Involve your customer – Daily status, Project Wiki in Customer environment, IM conversations, IPM, • Constantly improve the test coverage • Use some acceptance test framework • QA smoke test on the developer machine for immediate feedback • Short releases 15
  • 16. My 0.02 • Source code is the king • Untrustworthy documentation • The bug-tracking database stores knowledge • Reproduction is essential to obtaining a solution 16
  • 18. Thank you! email: njain@thoughtworks.com blog: http://jroller.com/page/njain