Learn about Agile Methodology of Software Engineering and study concepts like What is Agile, Why Agile is there, Agile Principles, Agile Manifesto with Pros & Cons of it.
Presentation also include Agile Testing Methodology like Scrum, Crystal Methodologies, DSDM, Feature Driven Development, Lean Software Development & Extreme Programming.
If you watch this one please rate it and do share this presentation to others so then can easily learn more about the Agile Methodology.
2. • It describes a set of principles for software development where,
• Requirements and solutions evolve through the collaborative effort of self-
organizing + cross-functional teams
• It advocates
• Adaptive planning
• Evolutionary development
• Early delivery
• Continuous improvement
• Encourages rapid and flexible response to change
THESE PRINCIPLES SUPPORT THE DEFINITION AND
CONTINUING EVOLUTION OF MANY SOFTWARE
DEVELOPMENT METHODS
3. What isAgile?• Agile model believes,
• Every project needs to be handled
differently
• Existing methods need to be tailored to
best suit the project requirements
• Tasks are divided to time boxes (small
time frames) to deliver specific features
for a release
• Iterative approach is taken &
working software build is delivered
after each iteration
• Each build is incremental in terms of
features
• Final build holds all the features
required by the customer
4. WhyAgile?
• provides opportunities to assess the direction of a project throughout
the development
• achieved through regular cadences of work, known as sprints or iterations
• at the end of a sprint teams must present a potentially shippable product increment.
• focusing on the repetition of delievered work cycles as well as the
functional product they yield, agile methodology is described as
“iterative” and “incremental”
• In waterfall
• development teams only have one chance to get each aspect of a project right
• In an agile paradigm
• every aspect of development — requirements, design, etc. — is continually revisited
throughout the lifecycle. When a team stops and re-evaluates the direction of a
project every two weeks, there’s always time to steer it in another direction
5. • The results of this “inspect-and-adapt” approach
• reduce both development costs and time to market
• Because teams can develop software at the same time they’re gathering
requirements, the phenomenon known as “analysis paralysis” is less likely
to impede a team from making progress
• Agile development methodology helps companies build the right
product
• Instead of committing to market a piece of software that hasn’t even
been written yet
• agile empowers teams to continuously replan their release to optimize its value
throughout development, allowing them to be as competitive as possible in the
marketplace
6. The Manifesto forAgile Software Development
• Individuals and interactions
• in agile development, self-organization and motivation are important, as are
interactions like co-location and pair programming.
• Working software
• Demo working software is considered the best means of communication with the
customer to understand their requirement, instead of just depending on
documentation.
• Customer collaboration
• As the requirements cannot be gathered completely in the beginning of the project
due to various factors, continuous customer interaction is very important to get
proper product requirements.
• Responding to change
• agile development is focused on quick responses to change and continuous
development.
7. Agile principles
• The Agile Manifesto is based on twelve principles
1) Customer satisfaction by early and continuous delivery of valuable software
2) Welcome changing requirements, even in late development
3) Working software is delivered frequently (weeks rather than months)
4) Close, daily cooperation between business people and developers
5) Projects are built around motivated individuals, who should be trusted
6) Face-to-face conversation is the best form of communication (co-location)
7) Working software is the principal measure of progress
8) Sustainable development, able to maintain a constant pace
9) Continuous attention to technical excellence and good design
10) Simplicity—the art of maximizing the amount of work not done—is essential
11) Best architectures, requirements, and designs emerge from self-organizing teams
12) Regularly, the team reflects on how to become more effective, and adjusts accordingly
8. Agile Model Pros and Cons
Pros Cons
• Is a very realistic approach to software development
• Promotes teamwork and cross training.
• Functionality can be developed rapidly and demonstrated.
• Resource requirements are minimum.
• Suitable for fixed or changing requirements
• Delivers early partial working solutions.
• Good model for environments that change steadily.
• Minimal rules, documentation easily employed.
• Enables concurrent development and delivery within an
overall planned context.
• Little or no planning required
• Easy to manage
• Gives flexibility to developers
• Not suitable for handling complex dependencies.
• More risk of sustainability, maintainability and extensibility.
• An overall plan, an agile leader and agile PM practice is a
must without which it will not work.
• Strict delivery management dictates the scope,
functionality to be delivered, and adjustments to meet the
deadlines.
• Depends heavily on customer interaction, so if customer is
not clear, team can be driven in the wrong direction.
• There is very high individual dependency, since there is
minimum documentation generated.
• Transfer of technology to new team members may be
quite challenging due to lack of documentation.
widely accepted in the software world recently, however, this method may not always be
suitable for all products.
10. There are various methodologies that are collectively known as agile, as they
promote the values of the agile manifesto and they are consistent with the above
principles. The most popular ones are,
• Scrum is also an agile development method
• concentrates particularly on how to manage tasks within a team-based development environment.
• most popular and widely adopted agile method
• XP (Extreme Programming) is a more radical agile methodology
• focusing more on the software engineering process and addressing the analysis, development and test phases with
novel approaches that make a substantial difference to the quality of the end product
• DSDM is probably the original agile development method
• was around before the term ‘agile’ was even invented, but is absolutely based on all the principles we’ve come to
know as agile
DSDM IS PROBABLY THE MOST COMPLETE AGILE METHODOLOGY, WHEREAS
SCRUM AND XP ARE EASIER TO IMPLEMENT AND COMPLEMENTARY BECAUSE THEY
TACKLE DIFFERENT ASPECTS OF SOFTWARE DEVELOPMENT PROJECTS AND ARE
BOTH FOUNDED ON VERY SIMILAR CONCEPTS.
11. Scrum
• concentrates specifically on how to manage tasks within a team-based
development environment
• believes in empowering the development team and advocates working in small
teams.
• It consists of three roles, and their responsibilities are explained as follows
• Scrum Master
responsible for setting up the team, sprint meeting
and removes obstacles to progress
• Product owner
creates product backlog, prioritizes the backlog
and is responsible for the delivery of the
functionality at each iteration
• Scrum Team
manages its own work and organizes the work to
complete the sprint or cycle
12. Product Backlog
• where requirements are tracked with details on the no of requirements to be completed for
each release maintained and prioritized by scrum master, and it should be distributed to
the scrum team Team can also request for a new requirement addition or modification
or deletion
• Scrum Practices
13. Process flow of Scrum Methodologies
• Process flow of scrum testing is as follows
• Each iteration of a scrum is known as Sprint
• Product backlog is a list where all details are entered to get end product
• During each Sprint, top items of Product backlog are selected and turned into Sprint
backlog
• Team works on the defined sprint backlog
• Team checks for the daily work
• At the end of the sprint, team delivers product functionality
14. eXtreme Programming (XP)
• Extreme Programming technique is very helpful
• when there is constantly changing demands or requirements from the customers
• when they are not sure about the functionality of the system
• It advocates frequent "releases" of the product in short development cycles
• inherently improves the productivity of the system and also introduces a checkpoint where any customer
requirements can be easily implemented
• The XP develops software keeping customer in the target
15. • Business requirements are gathered in terms of stories stories are stored in a
place called the parking lot.
• In this type of methodology
• Releases are based on the shorter cycles called Iterations with span of 14 days time
period
• Each iteration includes phases like coding, unit testing and system testing where at
each phase some minor or major functionality will be built in the application.
16. Phases of eXtreme programming
1) Planning
• Identification of stakeholders and sponsors
• Infrastructure Requirements
• Security related information and gathering
• Service Level Agreements and its conditions
2) Analysis
• Capturing of Stories in Parking lot
• Prioritize stories in Parking lot
• Scrubbing of stories for estimation
• Define Iteration SPAN(Time)
• Resource planning for both Development and QA teams
17. 3) Design
• Break down of tasks
• Test Scenario preparation for each task
• Regression Automation Framework
4) Execution
• Coding
• Unit Testing
• Execution of Manual test scenarios
• Defect Report generation
• Conversion of Manual to Automation regression
test cases
• Mid Iteration review
• End of Iteration review
5) Wrapping
• Small Releases
• Regression Testing
• Demos and reviews
• Develop new stories based on the need
• Process Improvements based on end of
iteration review comments
6) Closure
• Pilot Launch
• Training
• Production Launch
• SLA Guarantee assurance
• Review SOA strategy
• Production Support
18. Crystal Methodologies
Crystal Methodology is based on three concepts
1) Chartering
Various activities involved in this phase are creating a development team, performing a
preliminary feasibility analysis, developing an initial plan and fine-tuning the development
methodology are done
2) Cyclic delivery: The main development phase consists of two or more delivery
cycles, during which the
1) Team updates and refines the release plan
2) Implements a subset of the requirements through one or more program test integrate iterations
3) Integrated product is delivered to real users
4) Review of the project plan and adopted development methodology
3) Wrap Up
The activities performed in this phase are deployment into the user environment, post-
deployment reviews and reflections are performed
19. Dynamic Software Development Method (DSDM)
• DSDM is a Rapid Application Development (RAD) approach and provides an agile project
delivery framework
• important aspect of DSDM is that the users are required to be involved actively, and the teams
are given the power to make decisions
• Frequent delivery of product becomes the active focus with DSDM.
• The techniques used in DSDM are
• Time Boxing
• MoSCoW Rules
• Prototyping
• The DSDM project consists of 7 phases
1) Pre-project
2) Feasibility Study
3) Business Study
4) Functional Model Iteration
5) Design and build Iteration
6) Implementation
7) Post-project
20. Feature Driven Development (FDD)
• Focused around "designing & building" features.
• FDD describes very specific and short phases of work that has to be
accomplished separately per feature
• It includes domain walkthrough, design inspection, promote to build, code
inspection and design
• FDD developed product keep following things in the target:
• Inspections
• Configuration Management
• Regular Builds
• Visibility of progress and results
• Domain object Modelling
• Development by feature
• Component / Class Ownership
• Feature Teams
21. Lean Software Development
• It based on the principle “Just in time production”
• It aims at increasing speed of software development and decreasing cost
• Lean development can be summarized in seven steps:
1) Eliminating Waste
2) Amplifying learning
3) Defer commitment (deciding as late as possible)
4) Early delivery
5) Empowering the team
6) Building Integrity
7) Optimize the whole