SlideShare a Scribd company logo
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

More Related Content

What's hot

Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
Syed Zaid Irshad
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - Introduction
Tremeur Balbous
 
Agile Basics
Agile BasicsAgile Basics
Agile Basics
Alexey Krivitsky
 
Scrum vs Kanban
Scrum vs KanbanScrum vs Kanban
Scrum vs Kanban
Jaladhi Bhatt
 
Using JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentUsing JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentJeff Leyser
 
Managing Requirements in Agile Development - Best Practices for Tool-Based Re...
Managing Requirements in Agile Development - Best Practices for Tool-Based Re...Managing Requirements in Agile Development - Best Practices for Tool-Based Re...
Managing Requirements in Agile Development - Best Practices for Tool-Based Re...
pd7.group
 
Introduction to Enterprise Agile Frameworks
Introduction to Enterprise Agile FrameworksIntroduction to Enterprise Agile Frameworks
Introduction to Enterprise Agile Frameworks
Mehul Kapadia
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
Arun R
 
Scrum best practices
Scrum best practicesScrum best practices
Kanban 101 - 3 - Kanban Essentials
Kanban 101 - 3 - Kanban EssentialsKanban 101 - 3 - Kanban Essentials
Kanban 101 - 3 - Kanban Essentials
Michael Sahota
 
Université Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi BessieuUniversité Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi BessieuXL Formation
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Omar Al-Sabek
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
Muhammad Shoaib
 
Dmaic overview for slideshare
Dmaic overview for slideshareDmaic overview for slideshare
Dmaic overview for slideshare
Lean Strategies International LLC
 
La méthode DMAIC et ses secrets
La méthode DMAIC et ses secretsLa méthode DMAIC et ses secrets
La méthode DMAIC et ses secrets
XL Groupe
 
Agile
Agile Agile
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With Scrum
Tommy Norman
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
Nguyen Hai
 

What's hot (20)

Agile Project Management
Agile Project ManagementAgile Project Management
Agile Project Management
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - Introduction
 
Agile Basics
Agile BasicsAgile Basics
Agile Basics
 
Agile Software Development - Agile and Scrum Intro
Agile Software Development - Agile and Scrum IntroAgile Software Development - Agile and Scrum Intro
Agile Software Development - Agile and Scrum Intro
 
Scrum vs Kanban
Scrum vs KanbanScrum vs Kanban
Scrum vs Kanban
 
Using JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentUsing JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile Development
 
Managing Requirements in Agile Development - Best Practices for Tool-Based Re...
Managing Requirements in Agile Development - Best Practices for Tool-Based Re...Managing Requirements in Agile Development - Best Practices for Tool-Based Re...
Managing Requirements in Agile Development - Best Practices for Tool-Based Re...
 
Introduction to Enterprise Agile Frameworks
Introduction to Enterprise Agile FrameworksIntroduction to Enterprise Agile Frameworks
Introduction to Enterprise Agile Frameworks
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
 
Overview of agile methodology
Overview of agile methodologyOverview of agile methodology
Overview of agile methodology
 
Scrum best practices
Scrum best practicesScrum best practices
Scrum best practices
 
Kanban 101 - 3 - Kanban Essentials
Kanban 101 - 3 - Kanban EssentialsKanban 101 - 3 - Kanban Essentials
Kanban 101 - 3 - Kanban Essentials
 
Université Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi BessieuUniversité Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
Université Lean Six Sigma -- Projet Black Belt -- Rémi Bessieu
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Dmaic overview for slideshare
Dmaic overview for slideshareDmaic overview for slideshare
Dmaic overview for slideshare
 
La méthode DMAIC et ses secrets
La méthode DMAIC et ses secretsLa méthode DMAIC et ses secrets
La méthode DMAIC et ses secrets
 
Agile
Agile Agile
Agile
 
Project Management With Scrum
Project Management With ScrumProject Management With Scrum
Project Management With Scrum
 
Agile Process Introduction
Agile Process IntroductionAgile Process Introduction
Agile Process Introduction
 

Viewers also liked

Evolution Of Team Interaction Models
Evolution Of Team Interaction ModelsEvolution Of Team Interaction Models
Evolution Of Team Interaction Models
Naresh Jain
 
Managing Iterations
Managing IterationsManaging Iterations
Managing Iterations
Naresh Jain
 
Software Development The Trekkers Way
Software Development The Trekkers WaySoftware Development The Trekkers Way
Software Development The Trekkers Way
Naresh Jain
 
Offshore Agile Maintenance
Offshore Agile MaintenanceOffshore Agile Maintenance
Offshore Agile Maintenance
Naresh Jain
 
XP And Scrum Practices
XP And Scrum PracticesXP And Scrum Practices
XP And Scrum Practices
Naresh Jain
 
Continuous Deployment Demystified
Continuous Deployment DemystifiedContinuous Deployment Demystified
Continuous Deployment Demystified
Naresh Jain
 
The Limited Red Society
The Limited Red SocietyThe Limited Red Society
The Limited Red Society
Naresh Jain
 
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)
Directi Group
 
Refactoring Fest
Refactoring FestRefactoring Fest
Refactoring Fest
Naresh Jain
 
Distributed Agile
Distributed AgileDistributed Agile
Distributed Agile
Naresh Jain
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Naresh Jain
 
TDD Overview
TDD OverviewTDD Overview
TDD Overview
Naresh Jain
 
Agile Overview
Agile OverviewAgile Overview
Agile Overview
Naresh Jain
 
Waterfall to Agile Demo
Waterfall to Agile DemoWaterfall to Agile Demo
Waterfall to Agile Demo
Naresh Jain
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
Naresh Jain
 
MVP Hacks
MVP HacksMVP Hacks
MVP Hacks
Naresh Jain
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven Development
Naresh Jain
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
Naresh Jain
 
Agile Is the New Waterfall
Agile Is the New WaterfallAgile Is the New Waterfall
Agile Is the New Waterfall
Naresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
Naresh Jain
 

Viewers also liked (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 to 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 Wisdmguestc990b6
 
Unified Process
Unified ProcessUnified Process
Unified Process
guy_davis
 
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
Robbie Minshall
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
Dr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.pptDr.Jonathan Software verification validation.ppt
Dr.Jonathan Software verification validation.ppt
Phial
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
kim.mens
 
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
 
Continuous Automation and its Impact on the CI_CD Pipeline.pdf
Continuous Automation and its Impact on the CI_CD Pipeline.pdfContinuous Automation and its Impact on the CI_CD Pipeline.pdf
Continuous Automation and its Impact on the CI_CD Pipeline.pdf
kalichargn70th171
 
Process model rup
Process model rupProcess model rup
Process model rupAryan Ajmer
 
2-models.pptx
2-models.pptx2-models.pptx
2-models.pptx
ssuserd0fdaa
 
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.
mailtoahmedhassan
 
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...
TEST Huddle
 
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
TEST Huddle
 
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
Indium Software
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
Mauricio Ferreyra
 
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...
RapidValue
 
Quality assuarance bharath anche (1)
Quality assuarance bharath anche (1)Quality assuarance bharath anche (1)
Quality assuarance bharath anche (1)
bharathanche
 
Software Lifecycle
Software LifecycleSoftware Lifecycle
Software Lifecycle
Soumen Sarkar
 
DevOps Engineering.pptx
DevOps Engineering.pptxDevOps Engineering.pptx
DevOps Engineering.pptx
AbalBoot
 

Similar to 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...
 
Continuous Automation and its Impact on the CI_CD Pipeline.pdf
Continuous Automation and its Impact on the CI_CD Pipeline.pdfContinuous Automation and its Impact on the CI_CD Pipeline.pdf
Continuous Automation and its Impact on the CI_CD Pipeline.pdf
 
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
 

More from Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
Naresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
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 Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
Naresh Jain
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
Naresh Jain
 
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
Naresh Jain
 
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
Naresh Jain
 

More from 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
 

Recently uploaded

655264371-checkpoint-science-past-papers-april-2023.pdf
655264371-checkpoint-science-past-papers-april-2023.pdf655264371-checkpoint-science-past-papers-april-2023.pdf
655264371-checkpoint-science-past-papers-april-2023.pdf
morearsh02
 
Scope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theoriesScope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theories
nomankalyar153
 
Which Crypto to Buy Today for Short-Term in May-June 2024.pdf
Which Crypto to Buy Today for Short-Term in May-June 2024.pdfWhich Crypto to Buy Today for Short-Term in May-June 2024.pdf
Which Crypto to Buy Today for Short-Term in May-June 2024.pdf
Kezex (KZX)
 
US Economic Outlook - Being Decided - M Capital Group August 2021.pdf
US Economic Outlook - Being Decided - M Capital Group August 2021.pdfUS Economic Outlook - Being Decided - M Capital Group August 2021.pdf
US Economic Outlook - Being Decided - M Capital Group August 2021.pdf
pchutichetpong
 
Turin Startup Ecosystem 2024 - Ricerca sulle Startup e il Sistema dell'Innov...
Turin Startup Ecosystem 2024  - Ricerca sulle Startup e il Sistema dell'Innov...Turin Startup Ecosystem 2024  - Ricerca sulle Startup e il Sistema dell'Innov...
Turin Startup Ecosystem 2024 - Ricerca sulle Startup e il Sistema dell'Innov...
Quotidiano Piemontese
 
how can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYChow can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYC
DOT TECH
 
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
beulahfernandes8
 
how can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securelyhow can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securely
DOT TECH
 
Chương 6. Ancol - phenol - ether (1).pdf
Chương 6. Ancol - phenol - ether (1).pdfChương 6. Ancol - phenol - ether (1).pdf
Chương 6. Ancol - phenol - ether (1).pdf
va2132004
 
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
Falcon Invoice Discounting
 
This assessment plan proposal is to outline a structured approach to evaluati...
This assessment plan proposal is to outline a structured approach to evaluati...This assessment plan proposal is to outline a structured approach to evaluati...
This assessment plan proposal is to outline a structured approach to evaluati...
lamluanvan.net Viết thuê luận văn
 
how can i use my minded pi coins I need some funds.
how can i use my minded pi coins I need some funds.how can i use my minded pi coins I need some funds.
how can i use my minded pi coins I need some funds.
DOT TECH
 
Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...
Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...
Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...
beulahfernandes8
 
what is a pi whale and how to access one.
what is a pi whale and how to access one.what is a pi whale and how to access one.
what is a pi whale and how to access one.
DOT TECH
 
APP I Lecture Notes to students 0f 4the year
APP I  Lecture Notes  to students 0f 4the yearAPP I  Lecture Notes  to students 0f 4the year
APP I Lecture Notes to students 0f 4the year
telilaalilemlem
 
一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理
一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理
一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理
ydubwyt
 
Commercial Bank Economic Capsule - May 2024
Commercial Bank Economic Capsule - May 2024Commercial Bank Economic Capsule - May 2024
Commercial Bank Economic Capsule - May 2024
Commercial Bank of Ceylon PLC
 
PF-Wagner's Theory of Public Expenditure.pptx
PF-Wagner's Theory of Public Expenditure.pptxPF-Wagner's Theory of Public Expenditure.pptx
PF-Wagner's Theory of Public Expenditure.pptx
GunjanSharma28848
 
What price will pi network be listed on exchanges
What price will pi network be listed on exchangesWhat price will pi network be listed on exchanges
What price will pi network be listed on exchanges
DOT TECH
 
The European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population agingThe European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population aging
GRAPE
 

Recently uploaded (20)

655264371-checkpoint-science-past-papers-april-2023.pdf
655264371-checkpoint-science-past-papers-april-2023.pdf655264371-checkpoint-science-past-papers-april-2023.pdf
655264371-checkpoint-science-past-papers-april-2023.pdf
 
Scope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theoriesScope Of Macroeconomics introduction and basic theories
Scope Of Macroeconomics introduction and basic theories
 
Which Crypto to Buy Today for Short-Term in May-June 2024.pdf
Which Crypto to Buy Today for Short-Term in May-June 2024.pdfWhich Crypto to Buy Today for Short-Term in May-June 2024.pdf
Which Crypto to Buy Today for Short-Term in May-June 2024.pdf
 
US Economic Outlook - Being Decided - M Capital Group August 2021.pdf
US Economic Outlook - Being Decided - M Capital Group August 2021.pdfUS Economic Outlook - Being Decided - M Capital Group August 2021.pdf
US Economic Outlook - Being Decided - M Capital Group August 2021.pdf
 
Turin Startup Ecosystem 2024 - Ricerca sulle Startup e il Sistema dell'Innov...
Turin Startup Ecosystem 2024  - Ricerca sulle Startup e il Sistema dell'Innov...Turin Startup Ecosystem 2024  - Ricerca sulle Startup e il Sistema dell'Innov...
Turin Startup Ecosystem 2024 - Ricerca sulle Startup e il Sistema dell'Innov...
 
how can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYChow can I sell pi coins after successfully completing KYC
how can I sell pi coins after successfully completing KYC
 
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
The Evolution of Non-Banking Financial Companies (NBFCs) in India: Challenges...
 
how can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securelyhow can I sell/buy bulk pi coins securely
how can I sell/buy bulk pi coins securely
 
Chương 6. Ancol - phenol - ether (1).pdf
Chương 6. Ancol - phenol - ether (1).pdfChương 6. Ancol - phenol - ether (1).pdf
Chương 6. Ancol - phenol - ether (1).pdf
 
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
innovative-invoice-discounting-platforms-in-india-empowering-retail-investors...
 
This assessment plan proposal is to outline a structured approach to evaluati...
This assessment plan proposal is to outline a structured approach to evaluati...This assessment plan proposal is to outline a structured approach to evaluati...
This assessment plan proposal is to outline a structured approach to evaluati...
 
how can i use my minded pi coins I need some funds.
how can i use my minded pi coins I need some funds.how can i use my minded pi coins I need some funds.
how can i use my minded pi coins I need some funds.
 
Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...
Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...
Exploring Abhay Bhutada’s Views After Poonawalla Fincorp’s Collaboration With...
 
what is a pi whale and how to access one.
what is a pi whale and how to access one.what is a pi whale and how to access one.
what is a pi whale and how to access one.
 
APP I Lecture Notes to students 0f 4the year
APP I  Lecture Notes  to students 0f 4the yearAPP I  Lecture Notes  to students 0f 4the year
APP I Lecture Notes to students 0f 4the year
 
一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理
一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理
一比一原版BCU毕业证伯明翰城市大学毕业证成绩单如何办理
 
Commercial Bank Economic Capsule - May 2024
Commercial Bank Economic Capsule - May 2024Commercial Bank Economic Capsule - May 2024
Commercial Bank Economic Capsule - May 2024
 
PF-Wagner's Theory of Public Expenditure.pptx
PF-Wagner's Theory of Public Expenditure.pptxPF-Wagner's Theory of Public Expenditure.pptx
PF-Wagner's Theory of Public Expenditure.pptx
 
What price will pi network be listed on exchanges
What price will pi network be listed on exchangesWhat price will pi network be listed on exchanges
What price will pi network be listed on exchanges
 
The European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population agingThe European Unemployment Puzzle: implications from population aging
The European Unemployment Puzzle: implications from population aging
 

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