0% found this document useful (0 votes)
19 views

SE-03-Agile Software Development

Uploaded by

ranaibrahim453
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

SE-03-Agile Software Development

Uploaded by

ranaibrahim453
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Agile Software Development

Agile Method
• Agile means “move quickly”

• Agile methods are incremental development methods that focus on rapid development

• The Agile methodology is a way to manage a project by breaking it up into several phases
or parts called iterations.

• It involves constant collaboration with stakeholders and continuous improvement at


every stage.

• Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks.
Phases of Agile Model

1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
• Agile model believes that every project needs to be
handled differently and the existing methods need to be
tailored to best suit the project requirements. In Agile,
the tasks are divided to time boxes (small time frames)
to deliver specific features for a release.
• Iterative approach is taken and working software build is
delivered after each iteration. Each build is incremental
in terms of features; the final build holds all the features
required by the customer.
• Here is a graphical illustration of the Agile Model −
Agile Manifesto principles
• Following are the Agile Manifesto principles
• 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 customers to understand their
requirements, 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.
Agile Vs Traditionel SDLC Model

• Agile is based on the adaptive software development


methods, whereas the traditional SDLC models like the
waterfall model is based on a predictive approach.
Predictive teams in the traditional SDLC models usually
work with detailed planning and have a complete
forecast of the exact tasks and features to be delivered in
the next few months or during the product life cycle.
• Predictive methods entirely depend on the requirement
analysis and planning done in the beginning of cycle.
Any changes to be incorporated go through a strict
change control management and prioritization.
Advantages/ disadvantages of Agile Model

Advantages
• Frequent delivery
• Face to face communication with client
• Changes are easy
• Less time
Disadvantages
• Less documentation
• maintenance
Agile Software development Approaches

• Scrum
• Extreme Programing
• Crystal
• Dynamic Systems Development Method (DSDM)
• kanban
Scrum
• Scrum is the type of Agile framework. It is a
framework within which people can address complex
adaptive problem while productivity and creativity of
delivering product is at highest possible values. Scrum
uses Iterative process
Silent features of Scrum
• Scrum is light-weighted framework
• Scrum emphasizes self-organization
• Scrum is simple to understand
• Scrum framework help the team to work together
Lifecycle of Scrum
• Sprint:
A Sprint is a time-box of one month or less. A new Sprint starts
immediately after the completion of the previous Sprint.
• Release:
When the product is completed then it goes to the Release
stage.
• Sprint Review:
If the product still have some non-achievable features then it
will be checked in this stage and then the product is passed to
the Sprint Retrospective stage.
• Sprint Retrospective:
In this stage quality or status of the product is checked.
• Product Backlog:
According to the prioritize features the product is
organized.
• Sprint Backlog:
Sprint Backlog is divided into two parts Product
assigned features to sprint and Sprint planning meeting.
Scrum Explanation
• During sprint planning, the team pulls a small chunk from the top of that wish list, a
sprint backlog, and decides how to implement those pieces.

• The team has a certain amount of time, a sprint, to complete its work – usually two to
four weeks – but meets each day to assess its progress (daily scrum).

• Along the way, the Scrum Master keeps the team focused on its goal.

• At the end of the sprint, the work should be potentially shippable, as in ready to hand
to a customer, put on a store shelf, or show to a stakeholder.

• The sprint ends with a sprint review and retrospective.

• As the next sprint begins, the team chooses another chunk of the product backlog and
begins working again.
Scrum benefits
• The product is broken down into a set of manageable and understandable chunks.

• Unstable requirements do not hold up progress.

• The whole team have visibility of everything and consequently team


communication is improved.

• Customers see on-time delivery of increments and gain feedback on how the
product works.

• Trust between customers and developers is established and a positive culture is


created in which everyone expects the project to succeed. 17
Scrum Drawbacks
• The chances of project failure are high if individuals aren't very committed or
cooperative

• Adopting the Scrum framework in large teams is challenging

• The framework can be successful only with experienced team members

• Daily meetings sometimes frustrate team members

• If any team member leaves in the middle of a project, it can have a huge negative
impact on the project

• Quality is hard to implement until the team goes through an aggressive testing process
Extreme Programing (XP)

• Extreme programing is one of the agile software development method.

• 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.
The extreme programming release cycle

20
Extreme programming practices (a)
Principle or practice Description
Incremental planning Requirements are recorded on story cards and the stories to be
included in a release are determined by the time available and
their relative priority. The developers break these stories into
development ‘Tasks’. See Figures 3.5 and 3.6.

Small releases The minimal useful set of functionality that provides business
value is developed first. Releases of the system are frequent
and incrementally add functionality to the first release.

Simple design Enough design is carried out to meet the current requirements
and no more.
Test-first development An automated unit test framework is used to write tests for a
new piece of functionality before that functionality itself is
implemented.
Refactoring All developers are expected to refactor the code continuously as
soon as possible code improvements are found. This keeps the
code simple and maintainable.

Chapter 3 Agile software development 21


Extreme programming practices (b)
Pair programming Developers work in pairs, checking each other’s work and
providing the support to always do a good job.
Collective ownership The pairs of developers work on all areas of the system, so that
no islands of expertise develop and all the developers take
responsibility for all of the code. Anyone can change anything.
Continuous integration As soon as the work on a task is complete, it is integrated into
the whole system. After any such integration, all the unit tests in
the system must pass.
Sustainable pace Large amounts of overtime are not considered acceptable as
the net effect is often to reduce code quality and medium term
productivity
On-site customer A representative of the end-user of the system (the customer)
should be available full time for the use of the XP team. In an
extreme programming process, the customer is a member of the
development team and is responsible for bringing system
requirements to the team for implementation.

Chapter 3 Agile software development 22


XP Requirements scenarios

• In XP, a customer or user is part of the XP team and is responsible for making
decisions on requirements.

• User requirements are expressed as scenarios or user stories.

• These are written on cards and the development team break them down into
implementation tasks. These tasks are the basis of schedule and cost estimates.

• The customer chooses the stories for inclusion in the next release based on their
priorities and the schedule estimates.
23
Refactoring in XP

• Programming team look for possible software improvements and make these
improvements even where there is no immediate need for them.

• This improves the understandability of the software and so reduces the need
for documentation.

• Changes are easier to make because the code is well-structured and clear.

• However, some changes requires architecture refactoring and this is much


more expensive.
24
Scrum vs XP
• Extreme programming focuses on programming, coding, and test-driven
methodology. Scrum focuses largely on management. Extreme
programming requires just one to two weeks of teamwork. In Scrum, teams
work in “sprints,” which can last from a few weeks to a few months

• Scrum teams typically work in iterations (called sprints) that are from two weeks to one
month long. XP teams typically work in iterations that are one or two weeks long.

• Scrum teams do not allow changes into their sprints. XP teams are much more open to
change within their iterations.

• Scrum product owner prioritizes the product backlog but the team determines the
sequence in which they will develop the backlog items. XP teams work in a strict
priority order. Features to be developed are prioritized by the customer and the team
is required to work on them in that order.

You might also like