SlideShare a Scribd company logo
1 of 15
Software Development Methodology
An Insight into “Agile” and “XP”
Software Development Methodology
Current Challenges
Rapid Changes in the technology – availability of frameworks, tools
technologies etc
“Change is constant” - Frequent Changes in client requirements
Increasing customer awareness about software development and
tools & technologies
Traditional methodologies (like waterfall) not scaling to changes, focus
on documentation and are predictive & prescribed
heavily regimented, regulated and micromanaged.
Software Development Methodology
Goals of Software development Organization
Responsiveness to changes
Being competitive with quality and timeliness
Sustenance and Growth
Profitability
Establish ROI
Software Development Methodology
Importance of choice of methodology
The software development methodology can be thought of mechanism to
meet challenges simultaneously achieving goals
TCO (total cost of ownership) can be said to be largely depending on
methodology chosen
Different methodologies have different efficiencies (Efficiency can be
decided by the quality of ultimate software product, the number of bugs
and the development time consumed)
Software Development Methodology
Agile (Philosophy & Characteristics)
Adaptive
Iterative
Incremental
Fundamental issue is communication and not documentation
Document the stable things, not speculative things.
Evolutionary approach to documentation development (seeking and
acting on feedback)
Software Development Methodology
Agile (Philosophy & Characteristics)
Preference to executable work products such as customer test over static
work products such as plain old documentation
Concise documentation – product overviews/road maps preferred over
detailed documentation (describing more than nitty-gritty)
High quality source code and test suite – needing a lot less system
documentation
Documentation shall be barely just good enough.
Software Development Methodology
Agile (Philosophy & Characteristics)
Primary goal is developing software , secondary goal is to enable next
development efforts
The benefit of having documentation must be greater than the cost of
creating and maintaining it.
Create documentation only when you need it at the appropriate point in
the life cycle.
Software Development Methodology
Agile (Philosophy & Characteristics)
Update documentation only when it hurts
It is recognized that documentation is an intrinsic part of any
system, the benefits should outweigh the increased burden on
the team. It’s important to note that sometimes the benefits are
received by someone else other than the people experiencing
the costs, e.g. the development team is impacted by the costs of
creating system documentation that the maintenance
developers benefit from.
Software Development Methodology
XP (Philosophy & Characteristics)
Enough design Up front
On-Site customer
Pair Programming
Coding Standards
Simple design
User stories, CRC cards, sketches, test suite, acceptance tests
Concrete experiments
Software Development Methodology
XP (Philosophy & Characteristics)
If you need it to do it – simple artifacts (documents etc)
Collective Ownership
Travel light
Communication – open and honest communication
Software Development Methodology
Summary
Traditional software development methodologies were inherited from
hardware manufacture and strategies. In these methodologies, the
production cycle progresses sequentially. The basic belief is that the
considerable time spent in initial design effort would help correcting bugs
in advance. These were successfully implemented by many organizations
but the software industry has experienced the limitations of these
methods such as low ability to embrace changes, overall quality not in
correspondence with initial design efforts and overall cost & efficiency.
Software Development Methodology
Summary
Rise of new methodologies like Agile which represents the agility and
adaptability have given new direction to software development.
Efficiency of these methodologies have been established to be
better than traditional and also its resulting in better client
communication and satisfaction. Of course all such methodologies
have benefits and limitations and many a times the combination of
these methodologies could serve the purpose.
Software Development Methodology
Conclusion
Given the dynamics of current businesses, frequent changes,
increased competitiveness and awareness, the agile (and XP)
methodologies can be the best bet which would give ability to
remain ahead of the curve. Such methodologies can adapted to
specific environments and some characteristics from traditional
methodology can be combined to find a good match and
suitability. Employing such methodologies would have impact on
organization structures, architectures and employees and of course
the business.
Software Development Methodology
References
Wikipedia
IBM - resources
Software Development Methodology
Big Thanks

More Related Content

What's hot

ProductCamp Amsterdam Session 9 Rudy Katchow
ProductCamp Amsterdam Session 9 Rudy KatchowProductCamp Amsterdam Session 9 Rudy Katchow
ProductCamp Amsterdam Session 9 Rudy KatchowProductCamp Amsterdam
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Software Engineering - Lecture 01
Software Engineering - Lecture 01Software Engineering - Lecture 01
Software Engineering - Lecture 01Asifuzzaman Hridoy
 
Software project management Software economics
Software project management Software economicsSoftware project management Software economics
Software project management Software economicsREHMAT ULLAH
 
What Is the Rational Unified Process
What Is the Rational Unified ProcessWhat Is the Rational Unified Process
What Is the Rational Unified ProcessRobson Silva Espig
 
Software Life Cylce Model
Software Life Cylce ModelSoftware Life Cylce Model
Software Life Cylce ModelJegadeesh Sam
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project managementRadu_Negulescu
 
Pragmatic Approaches to Project Costs Estimation
Pragmatic Approaches to Project Costs EstimationPragmatic Approaches to Project Costs Estimation
Pragmatic Approaches to Project Costs EstimationChristopher Akinlade
 
Brief overview on microsoft solution framework
Brief overview on microsoft solution frameworkBrief overview on microsoft solution framework
Brief overview on microsoft solution frameworkAhsan Kabir
 
Introduction to MSF
Introduction to MSFIntroduction to MSF
Introduction to MSFSean Achim
 
Software Engineering - Lecture 02
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02Asifuzzaman Hridoy
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software developmentbizpresenter
 
Lect4 software economics
Lect4 software economicsLect4 software economics
Lect4 software economicsmeena466141
 

What's hot (20)

8. project-management
8. project-management8. project-management
8. project-management
 
ProductCamp Amsterdam Session 9 Rudy Katchow
ProductCamp Amsterdam Session 9 Rudy KatchowProductCamp Amsterdam Session 9 Rudy Katchow
ProductCamp Amsterdam Session 9 Rudy Katchow
 
Slides chapter 5
Slides chapter 5Slides chapter 5
Slides chapter 5
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Slides chapter 15
Slides chapter 15Slides chapter 15
Slides chapter 15
 
Software Engineering - Lecture 01
Software Engineering - Lecture 01Software Engineering - Lecture 01
Software Engineering - Lecture 01
 
Project Management
Project ManagementProject Management
Project Management
 
Software project management Software economics
Software project management Software economicsSoftware project management Software economics
Software project management Software economics
 
What Is the Rational Unified Process
What Is the Rational Unified ProcessWhat Is the Rational Unified Process
What Is the Rational Unified Process
 
Software Life Cylce Model
Software Life Cylce ModelSoftware Life Cylce Model
Software Life Cylce Model
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project management
 
Pragmatic Approaches to Project Costs Estimation
Pragmatic Approaches to Project Costs EstimationPragmatic Approaches to Project Costs Estimation
Pragmatic Approaches to Project Costs Estimation
 
Brief overview on microsoft solution framework
Brief overview on microsoft solution frameworkBrief overview on microsoft solution framework
Brief overview on microsoft solution framework
 
3
33
3
 
Ch02 process a generic view
Ch02 process a generic viewCh02 process a generic view
Ch02 process a generic view
 
Introduction to MSF
Introduction to MSFIntroduction to MSF
Introduction to MSF
 
Software Engineering - Lecture 02
Software Engineering - Lecture 02Software Engineering - Lecture 02
Software Engineering - Lecture 02
 
Project Requriement Management Vs Agile software development
Project Requriement Management Vs  Agile software developmentProject Requriement Management Vs  Agile software development
Project Requriement Management Vs Agile software development
 
Lect4 software economics
Lect4 software economicsLect4 software economics
Lect4 software economics
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 

Similar to Agile and XP

Lightweight Processes: A Definition
Lightweight Processes: A DefinitionLightweight Processes: A Definition
Lightweight Processes: A DefinitionGlen Alleman
 
Strengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software DevelopmentStrengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software DevelopmentBrianna Johnson
 
An Agile Software Development Framework
An Agile Software Development FrameworkAn Agile Software Development Framework
An Agile Software Development FrameworkWaqas Tariq
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open DevelopmentRoss Gardler
 
Software Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative StudySoftware Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative Studyijsrd.com
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metricsPiyush Sohaney
 
Webinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringWebinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringOpenCredo
 
A Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And PracticesA Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And PracticesSean Flores
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsBlueFish
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashedlivgeni
 
Lecture - 16-19.pptx
Lecture - 16-19.pptxLecture - 16-19.pptx
Lecture - 16-19.pptxFarHana74914
 
Software Development Process (SDP).pdf
Software Development Process (SDP).pdfSoftware Development Process (SDP).pdf
Software Development Process (SDP).pdfSagarBhusal17
 

Similar to Agile and XP (20)

Ch17
Ch17Ch17
Ch17
 
M017548895
M017548895M017548895
M017548895
 
Agile software process
Agile software processAgile software process
Agile software process
 
Lightweight Processes: A Definition
Lightweight Processes: A DefinitionLightweight Processes: A Definition
Lightweight Processes: A Definition
 
Strengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software DevelopmentStrengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software Development
 
Chapter1
Chapter1Chapter1
Chapter1
 
An Agile Software Development Framework
An Agile Software Development FrameworkAn Agile Software Development Framework
An Agile Software Development Framework
 
Software developer
Software developerSoftware developer
Software developer
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open Development
 
Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels Software Engineering and Introduction, Activities and ProcessModels
Software Engineering and Introduction, Activities and ProcessModels
 
Unit2
Unit2Unit2
Unit2
 
Software Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative StudySoftware Development Life Cycle: Traditional and Agile- A Comparative Study
Software Development Life Cycle: Traditional and Agile- A Comparative Study
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Importance of software quality metrics
Importance of software quality metricsImportance of software quality metrics
Importance of software quality metrics
 
Webinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringWebinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform Engineering
 
A Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And PracticesA Systematic Study On Agile Software Development Methodlogies And Practices
A Systematic Study On Agile Software Development Methodlogies And Practices
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projects
 
Agile Development unleashed
Agile Development unleashedAgile Development unleashed
Agile Development unleashed
 
Lecture - 16-19.pptx
Lecture - 16-19.pptxLecture - 16-19.pptx
Lecture - 16-19.pptx
 
Software Development Process (SDP).pdf
Software Development Process (SDP).pdfSoftware Development Process (SDP).pdf
Software Development Process (SDP).pdf
 

Agile and XP

  • 1. Software Development Methodology An Insight into “Agile” and “XP”
  • 2. Software Development Methodology Current Challenges Rapid Changes in the technology – availability of frameworks, tools technologies etc “Change is constant” - Frequent Changes in client requirements Increasing customer awareness about software development and tools & technologies Traditional methodologies (like waterfall) not scaling to changes, focus on documentation and are predictive & prescribed heavily regimented, regulated and micromanaged.
  • 3. Software Development Methodology Goals of Software development Organization Responsiveness to changes Being competitive with quality and timeliness Sustenance and Growth Profitability Establish ROI
  • 4. Software Development Methodology Importance of choice of methodology The software development methodology can be thought of mechanism to meet challenges simultaneously achieving goals TCO (total cost of ownership) can be said to be largely depending on methodology chosen Different methodologies have different efficiencies (Efficiency can be decided by the quality of ultimate software product, the number of bugs and the development time consumed)
  • 5. Software Development Methodology Agile (Philosophy & Characteristics) Adaptive Iterative Incremental Fundamental issue is communication and not documentation Document the stable things, not speculative things. Evolutionary approach to documentation development (seeking and acting on feedback)
  • 6. Software Development Methodology Agile (Philosophy & Characteristics) Preference to executable work products such as customer test over static work products such as plain old documentation Concise documentation – product overviews/road maps preferred over detailed documentation (describing more than nitty-gritty) High quality source code and test suite – needing a lot less system documentation Documentation shall be barely just good enough.
  • 7. Software Development Methodology Agile (Philosophy & Characteristics) Primary goal is developing software , secondary goal is to enable next development efforts The benefit of having documentation must be greater than the cost of creating and maintaining it. Create documentation only when you need it at the appropriate point in the life cycle.
  • 8. Software Development Methodology Agile (Philosophy & Characteristics) Update documentation only when it hurts It is recognized that documentation is an intrinsic part of any system, the benefits should outweigh the increased burden on the team. It’s important to note that sometimes the benefits are received by someone else other than the people experiencing the costs, e.g. the development team is impacted by the costs of creating system documentation that the maintenance developers benefit from.
  • 9. Software Development Methodology XP (Philosophy & Characteristics) Enough design Up front On-Site customer Pair Programming Coding Standards Simple design User stories, CRC cards, sketches, test suite, acceptance tests Concrete experiments
  • 10. Software Development Methodology XP (Philosophy & Characteristics) If you need it to do it – simple artifacts (documents etc) Collective Ownership Travel light Communication – open and honest communication
  • 11. Software Development Methodology Summary Traditional software development methodologies were inherited from hardware manufacture and strategies. In these methodologies, the production cycle progresses sequentially. The basic belief is that the considerable time spent in initial design effort would help correcting bugs in advance. These were successfully implemented by many organizations but the software industry has experienced the limitations of these methods such as low ability to embrace changes, overall quality not in correspondence with initial design efforts and overall cost & efficiency.
  • 12. Software Development Methodology Summary Rise of new methodologies like Agile which represents the agility and adaptability have given new direction to software development. Efficiency of these methodologies have been established to be better than traditional and also its resulting in better client communication and satisfaction. Of course all such methodologies have benefits and limitations and many a times the combination of these methodologies could serve the purpose.
  • 13. Software Development Methodology Conclusion Given the dynamics of current businesses, frequent changes, increased competitiveness and awareness, the agile (and XP) methodologies can be the best bet which would give ability to remain ahead of the curve. Such methodologies can adapted to specific environments and some characteristics from traditional methodology can be combined to find a good match and suitability. Employing such methodologies would have impact on organization structures, architectures and employees and of course the business.