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

More Related Content

What's hot

Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Chapter 5 Agile Software development
Chapter 5 Agile Software developmentChapter 5 Agile Software development
Chapter 5 Agile Software developmentDidarul Amin
 
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 modelsJesminBinti
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XPVashira Ravipanich
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesJon McNestrie
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
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 PRACTICEijseajournal
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) ModelDamian T. Gordon
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)dcsunu
 
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 DevOpsAgile ME
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSibel Kuzgun AKIN
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationComputaris
 

What's hot (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
 

Viewers also liked

Viewers also liked (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
 

Similar to 03. Agile Development

Chapter 3 software engineering.pptx
Chapter 3 software engineering.pptxChapter 3 software engineering.pptx
Chapter 3 software engineering.pptx02LabiqaIslam
 
03 - Agile Software Development.pptx
03 - Agile Software Development.pptx03 - Agile Software Development.pptx
03 - Agile Software Development.pptxALI2H
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Ahmed Alageed
 
Lecture - 20-23.pptx
Lecture - 20-23.pptxLecture - 20-23.pptx
Lecture - 20-23.pptxFarHana74914
 
Agile - Software - Development Powerpoint
Agile - Software - Development PowerpointAgile - Software - Development Powerpoint
Agile - Software - Development Powerpointjohncalebtan
 
Upstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentUpstate CSCI 540 Agile Development
Upstate CSCI 540 Agile DevelopmentDanWooster1
 
Lecture - 24-25.pptx
Lecture - 24-25.pptxLecture - 24-25.pptx
Lecture - 24-25.pptxFarHana74914
 
ch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdfch3-150102101842-conversion-gate02.pdf
ch3-150102101842-conversion-gate02.pdfabdallhelkahlout1
 
LU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptxLU 3 Agile SW Dev.pptx
LU 3 Agile SW Dev.pptxTAISEEREISA
 
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.pptxTangZhiSiang
 

Similar to 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
 

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

Recently uploaded

Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage examplePragyanshuParadkar1
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture designssuser87fa0c1
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 

Recently uploaded (20)

Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
DATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage exampleDATA ANALYTICS PPT definition usage example
DATA ANALYTICS PPT definition usage example
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture design
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 

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

Editor's Notes

  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