Agile Software Development: Case Study
Agile Software Development: Case Study
Agile Software Development: Case Study
DEVELOPMENT
Case Study
MAHAM MAHMOOD
Table of Content
Contents
Introduction: - ........................................................................................................ 2
1.Extreme Programming (XP): - .............................................................................. 2
Extreme Programming Life Cycle: - ..................................................................... 3
2. Scrum: - .............................................................................................................. 4
Graphical introduction to Scrum: - ...................................................................... 5
3. Adaptive Software Development (ASD): - .......................................................... 6
Speculate: - ......................................................................................................... 7
Collaborate: - ...................................................................................................... 7
Learn: -................................................................................................................ 7
4. Dynamic System Development Method (DSDM): -............................................. 8
5. Crystal: - ............................................................................................................. 8
Crystal Method Family Members: - ..................................................................... 8
6.Feature Driven Development (FDD): - ................................................................. 9
Traditional Software Development Method (TSDM): - ......................................... 10
Agile Software Development: - ............................................................................ 10
Conclusion: - ........................................................................................................ 11
1
Agile Software Development February 25, 2019
Introduction: -
The term agile stands for ‘moving quickly’. Agile Software Development is a lightweight
software engineering framework that promotes iterative development throughout the life-cycle of
the project, close association between the development team and constant communication.
The twelve principles behind the Agile manifesto and we discussed some of the principles
below.
First priority is the customer satisfaction.
Welcome in changing requirement, even the late in development.
Business people and developer team must work together daily throughout the project.
Working software is delivered frequently to client in weeks rather than months.
The most effective method of conveying some information and within development team
is face-to-face conversation.
Communication: -
In XP we communicate face to face daily. We will work on everything of requirements of
code. And create the best solution to our problems. And also, in this a strong communication is
between the customer and developer.
2
Agile Software Development February 25, 2019
Simplicity: -
It means we will do things which is needed. The reason of this to avoid unnecessary things and
do only necessary things such as the design of the system as simple as possible so it is easier to
maintain and support. It also means mark only requirement that you about to know and don’t try to
predict future.
Feedback: -
Through constant feedback about their previous efforts, teams can identify areas for
improvement and revise their practices. Feedback also supports simple design. Your team builds
something, gathers feedback on your design and implementation, and then adjust your product going
forward.
Courage: -
You need courage to stop doing something that doesn’t work and try something else. You need
courage to accept and act on feedback, even when it’s difficult to accept.
Respect: -
The members of your group need to respect each other in order to join with each other, give
and take in take-back that honors your relation, and to work together to make out simplest
designs and solution.
There are four phases the life cycle of XP consists of planning, designing, coding and testing.
Planning Phase: -
In planning phase, the customer writes out the story cards that they desire to be included
in the first release. Each story card describes the feature to be added into the program. And then
3
Agile Software Development February 25, 2019
sets the priority for the stories and an agreement of the content of first small release is made. The
programmer first estimates how much effort each story requires and then the schedule is agreed
upon. The time go across of the list of details of the first release does not normally be
exceed to 2 months.
Designing Phase: -
In designing phase, the design is made is simple. Without a proper design, a system
implementation becomes too ramified and very difficult to understand the solution, thus it makes
maintenance expensive. A good diamond results suppuration of ramified dependencies within a
system. So, constructive use of suitable diamond is emphasized.
Coding Phase: -
Coding phase is the most important phase in XP life cycle. XP gives priority to the coding
over all other tasks. The concept of coding which is used in XP model is slightly variegated from
traditional coding. Here, coding activity includes drawing diagrams (modeling) that will be
transformed into code, scripting a web-based system and choosing among several volitional
solutions.
Testing: -
XP model gives higher importance on testing and considers it be the primary factor to
develop a fault-free software. XP combine testing with the development phase rather than at the
end of the development phase. All code must have unit test to reduce bugs. When a bug is found
tests are created. And the code passes all such unit tests for surpassing release.
2. Scrum: -
Scrum is an agile process most commonly used for product development, expressly
software development. Scrum is a project management framework that is workable to any project
with warlike deadlines, composite requirements and a stratum of uniqueness. In Scrum, projects
move forward via a series of iterations tabbed sprints. Every sprint is typically taking two to four
weeks.
An introduction to Scrum would not be well-constructed without knowing the Scrum terms you'll
be using. These terms are discussed below.
Scrum Team: -
A Scrum Team is a collection of individuals working together to deliver the requested and
committed product increments. To work effectively it is important for a Scrum Team that
everyone within the team
follows a common goal
A typical scrum team has between five and nine people, but Scrum projects can easily scale into
the hundreds. However, Scrum can easily be used by one-person teams and often is. This team
4
Agile Software Development February 25, 2019
does not include any of the traditional software engineering roles such as programmer, designer,
tester or architect. Everyone on the project works together to complete the set of work they have
collectively committed to complete within a sprint. Scrum teams develop a deep form of
camaraderie and a feeling that “we’re all in this together.”
Product Owner: -
Product owner is officially responsible for the project, managing, executive and making
visible the product reservoir list. He takes the full and final decisions of the tasks related to
product backlog.
Scrum Master: -
Scrum master is responsible for ensuring that the project is carried through according to
the practices, values and rules of scrum that it progresses as planned. The ‘Scrum master’ is an
organizer who organizes daily meetings, tracks the backlog of work to be done.
Product Backlog: -
The product backlog is a list containing every desired feature or change to the product.
The term ‘backlog’ can have a confusion because it is used for two different things. To simplify,
the product backlog is a list of desired features. The sprint backlog is a list of tasks to be
completed in a sprint.
Daily Scrum:
Each day during the sprint, a brief meeting called the daily scrum is conducted. This meeting
helps set the context for each day’s work and helps the team stay on track. All team members are
required to attend the daily scrum.
Sprint retrospective:
Also, at the end of each sprint, the team conducts a sprint retrospective, which is a meeting
during which the team (including its ScrumMaster and product owner) reflect on how well
Scrum is working for them and what changes they may wish to make for it to work even better.
5
Agile Software Development February 25, 2019
This graphic is associate introduction to the essential parts of victimization beginning for
agile software package development.
At the start of each sprint, the team selects some amount of work from the product backlog and
commits to completing that work during the sprint. Part of figuring out how much they can
commit to is creating the sprint backlog, which is the list of tasks (and an estimate of how long
each will take) needed to deliver the selected set of product backlog items to be completed in the
sprint.
At the end of each sprint, the team produces a potentially shippable product increment — i.e.
working, high-quality software. Each day during the sprint, team members meet to discuss their
progress and any impediments to completing the work for that sprint. This is known as the daily
scrum, and is shown as the smaller green circle above.
6
Agile Software Development February 25, 2019
Speculate: -
In Adaptive Software Development, the term plan is replaced by the term speculate. While
speculating, the team does not abandon planning, but it acknowledges the reality of uncertainty
in complex problems. Speculate encourages exploration and experimentation. Iterations with
short cycles are encouraged.
Collaborate: -
Composite applications are not built, they evolve. Complex applications require that a large
volume of information be collected, analyzed, and try to the problem.
Learn: -
The Learn part of the Lifecycle is vital for the success of the project. Team has to enhance their
knowledge constantly. Reviews should be washed-up without each iteration. Both, the developers and
customers examine their assumptions and use the results of each minutiae trundling to learn the
direction of the next.
Focused on the end users, which can lead to better and more intuitive products
Integrates testing into every stage, which can add to a project’s costs
Emphasis on rapid iterating and continuous feedback can lead to scope creep
7
Agile Software Development February 25, 2019
In each phase DSDM depends on several different activities based on these rules.
Projects evolve weightier through uncontrived and co-located collaboration between the
developers and the users.
Self-managed and empowered teams must have the validity to make time sensitive and
hair-trigger project-level decisions.
Design and minutiae are incremental and evolutionary in nature and is largely driven by
regular, iterative user feedback.
Working software deliverables are specified as systems that write the critical, current
merchantry needs versus systems that write less hair-trigger future needs.
Frequent and incremental wordage of working software is valued over infrequent
wordage of perfectly working software.
All changes introduced during minutiae must be reversible.
Continuous integration and quality warranty testing is conducted in-line, throughout the
project lifecycle.
Visibility and transparency are encouraged through regular liaison and collaboration
amongst all project stakeholders.
5. Crystal: -
Crystal technique is an agile package development approach that focuses totally
on individuals and their interactions once engaged on a project instead of on processes and
tools.
Which approach are most fitted for you comes depends on 3 dimensions:
Team size.
Criticality.
What the priority of the project is.
Generally, they are characterized by colors, equal to the number of people involved in the
project:
9
Agile Software Development February 25, 2019
5. The project plan is prepared before beginning the process of system development.
1. Team conducts experiments on varied techniques and step by step arrives at the
simplest attainable resolution
2. In agile, there's free flow of communication, anyone will gift their concepts at
intervals the team
10
Agile Software Development February 25, 2019
5. Project work is delivered to the shopper in bit, that is, as and once one module is
ready, an indication is given to the shopper, thus on ensure the work progress in a
right direction.
6. It has the idea of shared possession, such as each team member is equally to blame
for their individual contribution
7. Relies on incremental delivery of the product.
Conclusion: -
Both agile associated ancient model’s area unit essential for
an economical software system development method. However, within the method of
selecting associate acceptable model for software system development, one must
determine the scope and needs of the project to be developed. Accordingly, a model is
chosen that helps to deliver the correct things at the correct time. Agile
Model will overcome few deficiencies that the normal model
imbibes, however at constant time every model's professionals and cons should be weighed
before reaching an accord.
11