SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Chapter 3 Agile software development
1
Chapter 3 – Agile Software
Development
Topics covered
Chapter 3 Agile software development
2
 Agile Development
 Extreme Programming (XP) Methodology
 Pair Programming
Rapid software development
Chapter 3 Agile software development
3
 Rapid development and delivery is now often the
most important requirement for software systems
 Businesses operate in a fast –changing requirement and it is
practically impossible to produce a set of stable software
requirements
 Software has to evolve quickly to reflect changing business needs.
 Rapid software development
 Specification, design and implementation are inter-leaved
 System is developed as a series of versions with stakeholders
involved in version evaluation
 User interfaces are often developed using an IDE and graphical
toolset.
What is Agile Development?
Chapter 3 Agile software development
4
 Agile is an emerging software development
methodology
 Programming-centric
 Few rules and practices
 Easy to follow
 Eliminate much of modeling and documentation
tasks – saves time
 Emphasize simple, iterative application development
Agile methods
Chapter 3 Agile software development
5
 Dissatisfaction with the overheads involved in software
design methods of the 1980s and 1990s led to the creation
of agile methods. These methods:
 Focus on the code rather than the design
 Are based on an iterative approach to software development
 Are intended to deliver working software quickly and evolve
quickly to meet changing requirements.
 The aim of agile methods is to reduce overheads in the
software process (e.g. by limiting documentation) and to be
able to respond quickly to changing requirements without
excessive rework.
Agile manifesto
Chapter 3 Agile software development
6
 We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
 Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
 That is, while there is value in the items on the right,
we value the items on the left more.
The principles of agile methods
Chapter 3 Agile software development
7
Principle Description
Customer involvement Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.
Extreme Programming
Chapter 3 Agile software development
8
 Perhaps the best-known and most widely used agile
method.
 Extreme Programming (XP) takes an ‘extreme’
approach to iterative development.
 New versions may be built several times per day;
 Increments are delivered to customers every 2 weeks;
 All tests must be run for every build and the build is only
accepted if tests run successfully.
Extreme Programming (cont.)
Chapter 3 Agile software development
9
 Extreme Programming is founded on four core
values:
 Communication
 Simplicity
 Feedback
 Courage
 Developers must provide rapid feedback to the end
users on a continuous basis
 XP requires developers to follow the KISS principle
Extreme Programming (cont.)
Chapter 3 Agile software development
10
 Developers must make incremental changes to grow
the system – must embrace change
 Developers must have a quality first mentality
 Three key principles used by XP to create successful
systems:
 Continuous testing
 Coding performed by pairs of developers
 Close interactions with end users
Extreme Programming (cont.)
Chapter 3 Agile software development
11
 XP project begins with user stories that describe
what the system needs to do
 Programmers code in small, simple modules and test
to meet those needs
 Users are required to be available to clear up
questions and issues
 Standards are very important to minimize confusion
 XP projects deliver results sooner than even the RAD
approaches
Problems with XP
Chapter 3 Agile software development
12
 For large projects, applying XP is not easy
 XP is only recommended for small groups of developers—no
more than 10 developers
 Project members need to work well and co-operate as part of a
team
 XP requires a great deal of discipline – otherwise projects will
become unfocused and chaotic
 Maintaining large systems built with XP is difficult – lack of
analysis and design documentation, only code documentation
 On-site customer availability not always possible
Testing in XP
Chapter 3 Agile software development
13
 Testing is central to XP and XP has developed an
approach where the program is tested after every
change has been made.
 XP testing features:
 Test-first development.
 User involvement in test development and validation.
 Automated test harnesses are used to run all component tests
each time that a new release is built.
Test-first development
Chapter 3 Agile software development
14
 Writing tests before code clarifies the requirements
to be implemented.
 Tests are written as programs rather than data so
that they can be executed automatically. The test
includes a check that it has executed correctly.
 Usually relies on a testing framework such as Junit.
 All previous and new tests are run automatically
when new functionality is added, thus checking that
the new functionality has not introduced errors.
Pair programming
Chapter 3 Agile software development
15
 In XP, programmers work in pairs, sitting together to
develop code.
 This helps develop common ownership of code and spreads
knowledge across the team.
 It serves as an informal review process as each line of code
is looked at by more than 1 person.
 It encourages refactoring as the whole team can benefit
from this.
 Measurements suggest that development productivity with
pair programming is similar to that of two people working
independently.
Pair programming (cont.)
Chapter 3 Agile software development
16
 In pair programming, programmers sit together at
the same workstation to develop the software.
 Pairs are created dynamically so that all team
members work with each other during the
development process.
 The sharing of knowledge that happens during pair
programming is very important as it reduces the
overall risks to a project when team members leave.
 Pair programming is not necessarily inefficient and
there is evidence that a pair working together is more
efficient than 2 programmers working separately.
Advantages of pair programming
Chapter 3 Agile software development
17
 It supports the idea of collective ownership and
responsibility for the system.
 Individuals are not held responsible for problems with the
code. Instead, the team has collective responsibility for
resolving these problems.
 It acts as an informal review process because each
line of code is looked at by at least two people.
 It helps support refactoring, which is a process of
software improvement.
 Where pair programming and collective ownership are used,
others benefit immediately from the refactoring so they are
likely to support the process.
References
 Cornell University, USA
http://www.cs.cornell.edu/courses/cs501/2000fa/slides.html
 Picture collect from: Ivan Marsic, Rutgers
University
 Ian Sommerville, Software Engineering, 9th
edition, Pearson, 2011
 Roger s. pressman, Software Engineering a
practitioners approach, 7th ed
19
Chapter 3 Agile software development

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (19)

Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Chapter 5 Agile Software development
Chapter 5 Agile Software developmentChapter 5 Agile Software development
Chapter 5 Agile Software development
 
Software Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process modelsSoftware Quality assurance Introduction & Software process models
Software Quality assurance Introduction & Software process models
 
Resource1 spm
Resource1 spmResource1 spm
Resource1 spm
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
extreme programming
extreme programmingextreme programming
extreme programming
 
An introduction to software engineering
An introduction to software engineeringAn introduction to software engineering
An introduction to software engineering
 
CODE REVIEW AND COOPERATIVE PAIR PROGRAMMING BEST PRACTICE
CODE REVIEW AND COOPERATIVE PAIR PROGRAMMING BEST PRACTICECODE REVIEW AND COOPERATIVE PAIR PROGRAMMING BEST PRACTICE
CODE REVIEW AND COOPERATIVE PAIR PROGRAMMING BEST PRACTICE
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 

Andere mochten auch

Nearshoring 4 25 12
Nearshoring 4 25 12Nearshoring 4 25 12
Nearshoring 4 25 12
John Martino
 
Lien en luca(appaloosa)
Lien en luca(appaloosa)Lien en luca(appaloosa)
Lien en luca(appaloosa)
leerling5
 
"That Thing... - Lara Croft" Documentary Analysis
"That Thing... - Lara Croft" Documentary Analysis"That Thing... - Lara Croft" Documentary Analysis
"That Thing... - Lara Croft" Documentary Analysis
db04803167
 
Slide6 rp ranc_operasi
Slide6 rp ranc_operasiSlide6 rp ranc_operasi
Slide6 rp ranc_operasi
Zunnur Zamzam
 
Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...
Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...
Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...
Cook County Commissioner Bridget Gainer
 

Andere mochten auch (20)

Understanding Natural Language Queries over Relational Databases
Understanding Natural Language Queries over Relational DatabasesUnderstanding Natural Language Queries over Relational Databases
Understanding Natural Language Queries over Relational Databases
 
Idea v9 product profile
Idea v9 product profileIdea v9 product profile
Idea v9 product profile
 
K-Pop Bands
K-Pop BandsK-Pop Bands
K-Pop Bands
 
Nearshoring 4 25 12
Nearshoring 4 25 12Nearshoring 4 25 12
Nearshoring 4 25 12
 
MVC
MVCMVC
MVC
 
L’eutanasia
L’eutanasiaL’eutanasia
L’eutanasia
 
Fotosintesis
FotosintesisFotosintesis
Fotosintesis
 
County Pension Committee Meeting: December 4, 2012
County Pension Committee Meeting: December 4, 2012County Pension Committee Meeting: December 4, 2012
County Pension Committee Meeting: December 4, 2012
 
Cam
CamCam
Cam
 
Lien en luca(appaloosa)
Lien en luca(appaloosa)Lien en luca(appaloosa)
Lien en luca(appaloosa)
 
Informatica
InformaticaInformatica
Informatica
 
DevsTeam Services | A Trusted Internet Marketing Service Provider
DevsTeam Services | A Trusted Internet Marketing Service ProviderDevsTeam Services | A Trusted Internet Marketing Service Provider
DevsTeam Services | A Trusted Internet Marketing Service Provider
 
"That Thing... - Lara Croft" Documentary Analysis
"That Thing... - Lara Croft" Documentary Analysis"That Thing... - Lara Croft" Documentary Analysis
"That Thing... - Lara Croft" Documentary Analysis
 
Quis2013 slideshare
Quis2013 slideshareQuis2013 slideshare
Quis2013 slideshare
 
LIMC 01: SPEECHES
LIMC 01: SPEECHESLIMC 01: SPEECHES
LIMC 01: SPEECHES
 
Documentaries
DocumentariesDocumentaries
Documentaries
 
Gokhan butunler portfolio
Gokhan butunler portfolioGokhan butunler portfolio
Gokhan butunler portfolio
 
Slide6 rp ranc_operasi
Slide6 rp ranc_operasiSlide6 rp ranc_operasi
Slide6 rp ranc_operasi
 
Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...
Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...
Commissioner Bridget Gainer: 2010 Citizens' Guide - Uptown Health Needs Asses...
 
Representation
RepresentationRepresentation
Representation
 

Ähnlich wie 03. Agile Development

03 - Agile Software Development.pptx
03 - Agile Software Development.pptx03 - Agile Software Development.pptx
03 - Agile Software Development.pptx
ALI2H
 
Upstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentUpstate CSCI 540 Agile Development
Upstate CSCI 540 Agile Development
DanWooster1
 

Ähnlich wie 03. Agile Development (20)

Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
Chapter 3 software engineering.pptx
Chapter 3 software engineering.pptxChapter 3 software engineering.pptx
Chapter 3 software engineering.pptx
 
03 - Agile Software Development.pptx
03 - Agile Software Development.pptx03 - Agile Software Development.pptx
03 - Agile Software Development.pptx
 
Ch3
Ch3Ch3
Ch3
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3
 
Lecture - 20-23.pptx
Lecture - 20-23.pptxLecture - 20-23.pptx
Lecture - 20-23.pptx
 
Agile - Software - Development Powerpoint
Agile - Software - Development PowerpointAgile - Software - Development Powerpoint
Agile - Software - Development Powerpoint
 
Upstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentUpstate CSCI 540 Agile Development
Upstate CSCI 540 Agile Development
 
Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptx
 
agile.ppt
agile.pptagile.ppt
agile.ppt
 
agile.ppt
agile.pptagile.ppt
agile.ppt
 
agile.ppt
agile.pptagile.ppt
agile.ppt
 
Agile
AgileAgile
Agile
 
agile.ppt
agile.pptagile.ppt
agile.ppt
 
Scrun Safe Ppt.pptx
Scrun Safe Ppt.pptxScrun Safe Ppt.pptx
Scrun Safe Ppt.pptx
 
ch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdfch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdf
 
LU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptxLU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptx
 
Ch3 - Agile SW Dev
Ch3 - Agile SW DevCh3 - Agile SW Dev
Ch3 - Agile SW Dev
 
Agile software process
Agile software processAgile software process
Agile software process
 
SE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptxSE-Lecture 4 - Agile Software Development.pptx
SE-Lecture 4 - Agile Software Development.pptx
 

Mehr von Ashis Kumar Chanda

Mehr von Ashis Kumar Chanda (20)

Word 2 vector
Word 2 vectorWord 2 vector
Word 2 vector
 
Multi-class Image Classification using deep convolutional networks on extreme...
Multi-class Image Classification using deep convolutional networks on extreme...Multi-class Image Classification using deep convolutional networks on extreme...
Multi-class Image Classification using deep convolutional networks on extreme...
 
Full resolution image compression with recurrent neural networks
Full resolution image compression with  recurrent neural networksFull resolution image compression with  recurrent neural networks
Full resolution image compression with recurrent neural networks
 
Software Cost Estimation
Software Cost EstimationSoftware Cost Estimation
Software Cost Estimation
 
Risk Management
Risk ManagementRisk Management
Risk Management
 
Project Management
Project ManagementProject Management
Project Management
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
4. UML
4. UML4. UML
4. UML
 
2. Software process
2. Software process2. Software process
2. Software process
 
1. Introduction
1. Introduction1. Introduction
1. Introduction
 
Periodic pattern mining
Periodic pattern miningPeriodic pattern mining
Periodic pattern mining
 
FPPM algorithm
FPPM algorithmFPPM algorithm
FPPM algorithm
 
Secure software design
Secure software designSecure software design
Secure software design
 
Sequential logic circuit optimization
Sequential logic circuit optimizationSequential logic circuit optimization
Sequential logic circuit optimization
 
Introduction to CS
Introduction to CSIntroduction to CS
Introduction to CS
 
Iterative deepening search
Iterative deepening searchIterative deepening search
Iterative deepening search
 
CloudBus
CloudBusCloudBus
CloudBus
 
Linear Machine Decision Tree
Linear Machine Decision TreeLinear Machine Decision Tree
Linear Machine Decision Tree
 
Logical Operations on BDD
Logical Operations on BDDLogical Operations on BDD
Logical Operations on BDD
 
Frequent Pattern growth algorithm
Frequent Pattern growth algorithmFrequent Pattern growth algorithm
Frequent Pattern growth algorithm
 

Kürzlich hochgeladen

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 

Kürzlich hochgeladen (20)

(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 

03. Agile Development

  • 1. Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development
  • 2. Topics covered Chapter 3 Agile software development 2  Agile Development  Extreme Programming (XP) Methodology  Pair Programming
  • 3. Rapid software development Chapter 3 Agile software development 3  Rapid development and delivery is now often the most important requirement for software systems  Businesses operate in a fast –changing requirement and it is practically impossible to produce a set of stable software requirements  Software has to evolve quickly to reflect changing business needs.  Rapid software development  Specification, design and implementation are inter-leaved  System is developed as a series of versions with stakeholders involved in version evaluation  User interfaces are often developed using an IDE and graphical toolset.
  • 4. What is Agile Development? Chapter 3 Agile software development 4  Agile is an emerging software development methodology  Programming-centric  Few rules and practices  Easy to follow  Eliminate much of modeling and documentation tasks – saves time  Emphasize simple, iterative application development
  • 5. Agile methods Chapter 3 Agile software development 5  Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods. These methods:  Focus on the code rather than the design  Are based on an iterative approach to software development  Are intended to deliver working software quickly and evolve quickly to meet changing requirements.  The aim of agile methods is to reduce overheads in the software process (e.g. by limiting documentation) and to be able to respond quickly to changing requirements without excessive rework.
  • 6. Agile manifesto Chapter 3 Agile software development 6  We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:  Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan  That is, while there is value in the items on the right, we value the items on the left more.
  • 7. The principles of agile methods Chapter 3 Agile software development 7 Principle Description Customer involvement Customers should be closely involved throughout the development process. Their role is provide and prioritize new system requirements and to evaluate the iterations of the system. Incremental delivery The software is developed in increments with the customer specifying the requirements to be included in each increment. People not process The skills of the development team should be recognized and exploited. Team members should be left to develop their own ways of working without prescriptive processes. Embrace change Expect the system requirements to change and so design the system to accommodate these changes. Maintain simplicity Focus on simplicity in both the software being developed and in the development process. Wherever possible, actively work to eliminate complexity from the system.
  • 8. Extreme Programming Chapter 3 Agile software development 8  Perhaps the best-known and most widely used agile method.  Extreme Programming (XP) takes an ‘extreme’ approach to iterative development.  New versions may be built several times per day;  Increments are delivered to customers every 2 weeks;  All tests must be run for every build and the build is only accepted if tests run successfully.
  • 9. Extreme Programming (cont.) Chapter 3 Agile software development 9  Extreme Programming is founded on four core values:  Communication  Simplicity  Feedback  Courage  Developers must provide rapid feedback to the end users on a continuous basis  XP requires developers to follow the KISS principle
  • 10. Extreme Programming (cont.) Chapter 3 Agile software development 10  Developers must make incremental changes to grow the system – must embrace change  Developers must have a quality first mentality  Three key principles used by XP to create successful systems:  Continuous testing  Coding performed by pairs of developers  Close interactions with end users
  • 11. Extreme Programming (cont.) Chapter 3 Agile software development 11  XP project begins with user stories that describe what the system needs to do  Programmers code in small, simple modules and test to meet those needs  Users are required to be available to clear up questions and issues  Standards are very important to minimize confusion  XP projects deliver results sooner than even the RAD approaches
  • 12. Problems with XP Chapter 3 Agile software development 12  For large projects, applying XP is not easy  XP is only recommended for small groups of developers—no more than 10 developers  Project members need to work well and co-operate as part of a team  XP requires a great deal of discipline – otherwise projects will become unfocused and chaotic  Maintaining large systems built with XP is difficult – lack of analysis and design documentation, only code documentation  On-site customer availability not always possible
  • 13. Testing in XP Chapter 3 Agile software development 13  Testing is central to XP and XP has developed an approach where the program is tested after every change has been made.  XP testing features:  Test-first development.  User involvement in test development and validation.  Automated test harnesses are used to run all component tests each time that a new release is built.
  • 14. Test-first development Chapter 3 Agile software development 14  Writing tests before code clarifies the requirements to be implemented.  Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly.  Usually relies on a testing framework such as Junit.  All previous and new tests are run automatically when new functionality is added, thus checking that the new functionality has not introduced errors.
  • 15. Pair programming Chapter 3 Agile software development 15  In XP, programmers work in pairs, sitting together to develop code.  This helps develop common ownership of code and spreads knowledge across the team.  It serves as an informal review process as each line of code is looked at by more than 1 person.  It encourages refactoring as the whole team can benefit from this.  Measurements suggest that development productivity with pair programming is similar to that of two people working independently.
  • 16. Pair programming (cont.) Chapter 3 Agile software development 16  In pair programming, programmers sit together at the same workstation to develop the software.  Pairs are created dynamically so that all team members work with each other during the development process.  The sharing of knowledge that happens during pair programming is very important as it reduces the overall risks to a project when team members leave.  Pair programming is not necessarily inefficient and there is evidence that a pair working together is more efficient than 2 programmers working separately.
  • 17. Advantages of pair programming Chapter 3 Agile software development 17  It supports the idea of collective ownership and responsibility for the system.  Individuals are not held responsible for problems with the code. Instead, the team has collective responsibility for resolving these problems.  It acts as an informal review process because each line of code is looked at by at least two people.  It helps support refactoring, which is a process of software improvement.  Where pair programming and collective ownership are used, others benefit immediately from the refactoring so they are likely to support the process.
  • 18. References  Cornell University, USA http://www.cs.cornell.edu/courses/cs501/2000fa/slides.html  Picture collect from: Ivan Marsic, Rutgers University  Ian Sommerville, Software Engineering, 9th edition, Pearson, 2011  Roger s. pressman, Software Engineering a practitioners approach, 7th ed
  • 19. 19 Chapter 3 Agile software development

Hinweis der Redaktion

  1. Quick / alert team
  2. Windows XP = experience. But here XP = Extreme Programming
  3. Suppose, a Skeleton code/framework of forum based web. Then all forum based webpage order will follow this framework
  4. communication between software engineers and other stakeholders simplicity: XP restricts developers to design only for immediate need KISS = keep it simple & stupid (simple code in stupid way, not smart) Earn = X*45% + ( (X/y *.034)^1/2 ) )% 4 Write this code in separate lines
  5. RAD = Rapid action development