Download - Agile software development
![Page 1: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/1.jpg)
AGILE SOFTWARE DEVELOPMENT
PROCESS MODELS
![Page 2: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/2.jpg)
How Projects Really Work
![Page 3: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/3.jpg)
How the customer explained it
![Page 4: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/4.jpg)
How the project leader understood it
![Page 5: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/5.jpg)
How the analyst designed it
![Page 6: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/6.jpg)
How the programmer wrote it
![Page 7: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/7.jpg)
How the business consultant described it
![Page 8: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/8.jpg)
How the project was documented
![Page 9: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/9.jpg)
How much the project cost
![Page 10: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/10.jpg)
What the customer really needed
![Page 11: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/11.jpg)
![Page 12: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/12.jpg)
Challenged Projects - Reasons Lack of User Input Incomplete Requirements &
Specifications Changing Requirements & Specifications Lack of Executive Support Technology Incompetence Lack of Resources Unrealistic Expectations Unclear Objectives Unrealistic Time Frames New Technology
![Page 13: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/13.jpg)
Failed Projects - Reasons
Incomplete Requirements Lack of User Involvement Lack of Resources Unrealistic Expectations Lack of Executive Support Changing Requirements & Specifications Lack of Planning Didn't Need It Any Longer Lack of IT Management Technology Illiteracy
![Page 14: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/14.jpg)
Successful Projects - Reasons User involvement Executive management support Clear business objectives Optimizing scope Agile process Project manager expertise Financial management Skilled resources Formal methodology Standard tools and methodology
![Page 15: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/15.jpg)
What's wrong with “Waterfall”?
![Page 16: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/16.jpg)
What's wrong with “Waterfall”? Mistakes are hard to find in early stages Expensive to fix mistakes in later stages Customers don't know what they want
from the beginning Developers don't know how long a
project will take from the beginning Business needs change
![Page 17: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/17.jpg)
Effects of “Waterfall”
Death March projects ‒ Mis-estimated schedules lead to successive overtime ‒ Delays in one stage cause delays in succeeding stages Conflict between customers and developers ‒ Customers don't get the software that they want ‒ Developers don't get clear requirements Process and tool obsession ‒ People focus on creating artifacts but lose sight of the goal of working software ‒ Processes replace natural communication
![Page 18: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/18.jpg)
The Agile Manifesto
They are uncovering better ways of developing software by doing it and helping others do it. Through this work they 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 planThat is, while there is value in the items on the right,
they value the items on the left more.
![Page 19: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/19.jpg)
Selected Practices
Behavior-driven development (BDD)Continuous integration (CI)Domain-driven design (DDD)Scrum boardIterative and incremental development (IID)Test-driven development (TDD)User storyExtreme Programming (XP)
![Page 20: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/20.jpg)
Iterative Development
![Page 21: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/21.jpg)
Iterative Development
All steps of SDLC are done at each iteration
![Page 22: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/22.jpg)
Iterative Development
Working software produced at each iteration
– No such thing as “X% complete”, only done and not done
![Page 23: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/23.jpg)
Iterative Development
Benefits ‒ Customers can evaluate what they want and
adjust requirements ‒ Developers get better estimates of future tasks ‒ Better communication between customer and
developers and among developersTalk is about something concrete, not abstract
‒ Just enough artifacts are created to produce working softwareLess waste
![Page 24: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/24.jpg)
Test-Driven Development
Bugs are harder to find and fix when found later
Modifying code tends to introduce bugs- Difficult to know if one has introduced bugs without tests
Manual tests are expensive to repeat and provide limited information
![Page 25: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/25.jpg)
Test-Driven Development
Programmers should write automated tests as they code- Write test before implementation
Provides immediate feedback if their code works
Builds suite of automated tests that can be run each time code is modified
Makes it safe to modify existing code Frameworks: JUnit, NUnit, hundreds of
others...
![Page 26: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/26.jpg)
![Page 27: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/27.jpg)
TDD Benefits
Code is safe to modify Tests are excellent documentation
- Programmers hate writing documentation, but they like to code
Design improves- Programmers think of their code's behavior before coding- Programmers see their code from a second-person's point-of-view• Is my code readable? Easy to use?- Components become decoupled to facilitate testing
![Page 28: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/28.jpg)
XP
It concentrates on the development rather than managerial aspects of software projects
XP projects start with a release planning phase, followed by several iterations, each of which concludes with user acceptance testing. When the product has enough features to satisfy users, the team terminates iteration and releases the software
![Page 29: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/29.jpg)
A simplified XP process
![Page 30: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/30.jpg)
XP rules and concepts
Integrate often. Development teams must integrate changes into the development baseline at least once a day. This concept is also called continuous integration(CI).
Project velocity. Pair programming. User story.
![Page 31: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/31.jpg)
Scrum
Scrum methodology includes both managerial and development processes
After the team completes the project scope and high-level designs, it divides the development process into a series of short iterations called sprints. Each sprint aims to implement a fixed number of backlog items.
Before each sprint, the team members identify the backlog items for the sprint.
At the end of a sprint, the team reviews the sprint to articulate lessons learned and check progress.
![Page 32: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/32.jpg)
The Scrum process
![Page 33: Agile software development](https://reader033.vdocument.in/reader033/viewer/2022061109/54520238af7959013e8b6451/html5/thumbnails/33.jpg)
Scrum concepts
Burndown chart. This chart, updated every day, shows the work remaining within the sprint.
Product backlog. Product backlog is the complete list of requirements
ScrumMaster. The ScrumMaster is the person responsible for managing the Scrum project.
Sprint backlog. Sprint backlog is the list of backlog items assigned to a sprint, but not yet completed