Agile Development Ultimate Slides
-
Upload
gilashikwa -
Category
Technology
-
view
4.266 -
download
2
description
Transcript of Agile Development Ultimate Slides
![Page 1: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/1.jpg)
Agile development
Extreme Programming (XP)
Abder-Rahman AliM.S.Software Engineering
DePaul [email protected]
![Page 2: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/2.jpg)
Just before we begin…
Agile development is a:
Software development process model.
.
![Page 3: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/3.jpg)
Software development Process
Task (1)
Task (2)
Task (3)
.
.
.
Task (n)
Goal HIGH QUALITY SOFTWARE
Action
![Page 4: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/4.jpg)
In other words…
![Page 5: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/5.jpg)
THE ROADMAP THAT YOU FOLLOW
![Page 6: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/6.jpg)
Software development Process Models
![Page 7: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/7.jpg)
Nature of SoftwareC
hange
![Page 8: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/8.jpg)
Change in what?
• Software being built (i.e. requirements).
• Team members.
• New technology appearing.
![Page 9: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/9.jpg)
Implications…
• Change is the HEART of software.
• Support for changes should be built in everything we do in software
![Page 10: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/10.jpg)
So, what is Agility?
A rapid and effective response to change.
![Page 11: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/11.jpg)
So, what is Agility?
Effective communication among stakeholders.
![Page 12: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/12.jpg)
So, what is Agility?
Drawing the customer into the team.
![Page 13: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/13.jpg)
This yields to…
![Page 14: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/14.jpg)
Rapid & incremental delivery of software.
![Page 15: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/15.jpg)
An Agile team…
A team that is able to appropriately to changes.
![Page 16: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/16.jpg)
Extreme Programming (XP)
PlanningDesign
Test
Coding
Release
The XP Process
The most widely used Agile process, and it is originally proposed by Kent Benck.
![Page 17: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/17.jpg)
Planning
![Page 18: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/18.jpg)
Design
KIS Principle
We just want the design to provide an implementation guidance for the story as it is written---nothing less, nothing more.
Don’t try to design extra functionality because you assume it will be required later.
![Page 19: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/19.jpg)
Design
CRC Cards
ClassResponsibility Collaborator
![Page 20: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/20.jpg)
Design
Spike Solutions
1- A design problem occurs.
2- Create a PROTOTYPE of that portion of the design.
3- Implement and evaluate the prototype.
Intent:
To lower risk when true implementation starts.
![Page 21: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/21.jpg)
Design
Refactoring
Changing a software system in such a way that:
1- The internal structure is improved.
2- The external behavior is not altered (not changed).
Design occurs CONTINUOUSLY as the system is constructed.
Also means:
![Page 22: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/22.jpg)
Testing
TEST FIRST
![Page 23: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/23.jpg)
Testing
Unit tests are written before the code.
Tests are run to ensure that our software fails.
A good test case is one that ensures that the software fails.
Test is rerun until it passes.
![Page 24: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/24.jpg)
Testing
All unit tests are executed daily.
This can raise warning flags early if things are going wrong.
![Page 25: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/25.jpg)
Testing
Acceptance tests (customer tests):
They are specified by the customer.
They focus on the overall system features and functionality that are visible and reviewable by the customer.
They are derived from user stories.
![Page 26: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/26.jpg)
Testing
Fixing small problems every few hours takes less time than fixing huge problems just before the deadline.
Fact:
![Page 27: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/27.jpg)
Coding
Pair P
rogramm
ing
![Page 28: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/28.jpg)
Coding
Two people work together at one computer to create code for a story.
This provides a mechanism for real-time problem solving and real-time quality assurance.
Keeps the developers focused on the problem at hand.
As pair programmers complete their work, the code they develop is integrated with the work of others.
![Page 29: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/29.jpg)
Coding
ROI
![Page 30: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/30.jpg)
Coding
ROI
![Page 31: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/31.jpg)
Release
Project Velocity
The number of stories that we performed in this release.
![Page 32: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/32.jpg)
When to use XP?
Dynamically changing requirements.
Risky projects.
Small development groups (up to 100).
Non-fixed price contract.
![Page 33: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/33.jpg)
XP Rules…
Planning• User Stories• Release Planning• Small Releases• Measure Project Velocity• Divide project to iterations• Iterations Planning• Move People around• Stand up meeting
Designing• Simplicity• CRC cards• Spike solutions• Refactor
![Page 34: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/34.jpg)
XP Rules…
Coding• Customer available• Code standards• Test-Driven• Pair Programming• Sequential change integration• Integrate often• Collective code ownership• Don’t optimize early• No overtime
Testing
• Unit test everything• All tests pass before release• Bug == new test• Acceptance tests
![Page 35: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/35.jpg)
We Must Ask Ourselves…
Do we need Agile or any other
Software Development Process
models in our lab?
![Page 36: Agile Development Ultimate Slides](https://reader033.fdocuments.in/reader033/viewer/2022061201/54793633b47959a9098b46fa/html5/thumbnails/36.jpg)
Questions?