You are on page 1of 12

AGILE SOFTWARE

DEVELOPMENT
Case Study

MAHAM MAHMOOD

FEBRUARY 25, 2019


Agile Software Development February 25, 2019

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.

Agile Software Development Methods: -


The agile methods have been used widely in business sectors where requirements are
relatively unstable. There are some Agile development methods discussed below.

1. Extreme Programming (XP).


2. Scrum.
3. Adaptive Software Development (ASD).
4. Dynamic System Development Method (DSDM).
5. Crystal.
6. Feature Driven Development (FDD).

1.Extreme Programming (XP): -


This the most widely and best known used agile process originally proposed by Kent
Beck. XP takes an extreme approach to iterative development. In XP tests must be run for every
build and the build is only accepted if tests run successfully.
There are five values of XP communication, simplicity, feedback, courage, and respect and are
described in below.

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.

Extreme Programming Life Cycle: -

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

 adheres the same norms and rules


 shows respect to each other

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.

Sprint Planning Meeting: -


At the start of each sprint, a sprint planning meeting is held, during which the product owner
presents the top items on the product backlog to the team. The Scrum team selects the work they
can complete during the coming sprint. That work is then moved from the product backlog to a
sprint backlog, which is the list of tasks needed to complete the product backlog items the team
has committed to complete in the 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 Review Meeting: -


At the end of each sprint, the team demonstrates the completed functionality at a sprint
review meeting, during which, the team shows what they accomplished during the sprint.
Typically, this takes the form of a demonstration of the new features, but in an informal way; for
example, PowerPoint slides are not allowed. The meeting must not become a task in itself nor a
distraction from the process.

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

Graphical introduction to Scrum: -

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.

3. Adaptive Software Development (ASD): -


Adaptive Software Development (ASD) is an uncontrived outgrowth of an older
wiry framework, Rapid Application Development (RAD). It aims to enable teams to quickly and
powerfully transmute to waffle requirements or market needs by evolving their products with
lightweight planning and continuous learning. The ASD have three phases
 Speculate.
 Collaborate.
 Learn.

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.

ASD’s strengths include:

 Focused on the end users, which can lead to better and more intuitive products

 Allows for on-time and even early delivery

 Encourages more transparency between developers and clients

ASD’s weaknesses include:

 Demands extensive user involvement, which can be difficult to facilitate

 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

4. Dynamic System Development Method (DSDM): -


DSDM is an agile software minutiae methodology. It is an iterative, incremental
tideway that is largely based on the Rapid Application Minutiae (RAD) methodology.
This method has four phases.

 Feasibility and business study


 Functional model / prototype iteration
 Design and build iteration
 Implementation

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.

Crystal Method Family Members: -


The things that Cockburn discovered is that the project properties reverted
depending on the number of the people involved in the project and the level of difficulty of the
project at hand. In other words, the increasingly people you have on the team, the increasingly
hair-trigger the project is and the increasingly ramified the tideway needs to be. Therefore, there
is no one single Crystal method; there are variegated Crystal methodologies for variegated types
of projects. To make this simple to know, Cockburn named the methodology Crystal
and categorized it all the same 2 dimensions size and criticality that matching those of
minerals - color and hardness .
8
Agile Software Development February 25, 2019

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:

6.Feature Driven Development (FDD): -


Feature Driven Development (FDD) is an agile framework that, as its name suggests, organizes
software development around making progress on features. Features in the FDD context, though,
are not necessarily product features in the commonly understood sense. They are, rather, more
akin to user stories in Scrum. In other words, “complete the login process” might be considered a
feature in the Feature Driven Development (FDD) methodology. FDD was designed to follow a
five-step development process, built largely around discrete “feature” projects. That project
lifecycle looks like this:

1. Develop an overall model


2. Build a features list
3. Plan by feature
4. Design by feature
5. Build by feature.

FDD’s strengths include:

 Simple five-step process allows for more rapid development

 Allows larger teams to move products forward with continuous success

 Leverages pre-defined development standards, so teams are able to move quickly

9
Agile Software Development February 25, 2019

FDD’s weaknesses include:

 Does not work efficiently for smaller projects

 Less written documentation, which can lead to confusion

 Highly dependent on lead developers or programmers

Traditional Software Development Method (TSDM): -


One of well-known ancient software system development ways is that
the falls model. The waterfall model utilizes a structured progression
between outlined phases: designing, analysis, design, implementation, and maintenance.
Traditional Software Development have these key points:

1. Follows a high down approach, and creating changes isn't straightforward as


finishing one part ends up in another.

2. It has a leadership style of working.

3. Pre-planning is done to carry out the different phases.

4. Customer is concerned simple within the initial phases of needs gathering.

5. The project plan is prepared before beginning the process of system development.

6. The ownership lies on the Project manager.

7. Believes in one-time delivery of the product.

Agile Software Development: -


Agile strategies took over the normal strategies, to beat the rigidity of the
normal model. Agile follows a dynamic approach to software development.
It is associate degree interactive associate degreed team primarily based methodology that
aims to deliver an application in a very short span of your time.
Agile Software Development have these key points:

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

3. This is additional versatile as compared to ancient model, because


it will amendment it's work flow supported any new request for modifications

4. Customer involvement is crucial for this model to prove its heart

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

You might also like