SDLC - Agile Software Development - Notepub

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

07/05/2021 SDLC - Agile Software Development - Notepub


Publish & Share Note

SDLC – Agile Software Development


The agile software development methodology is considered the fastest development process,
and this is achieved by avoiding anything that wastes time and eliminates unnecessary
activities. It follows the incremental and evolutionary model principles and decomposes the
requirements into many small incremental parts, and these parts are developed over one to
four weeks. It incorporates the changes requested by the customer efficiently and produces
very little documentation.

Agile Manifesto – Important for Agile Development

Individuals and interactions over process and tools: Individual interactions are much
more important than the process itself or any used tools.
Working software over comprehensive documentation: Producing working code is
much more important than writing extensive documentation.
Customer collaboration over contract negotiation: Consciously, the customer must be
involved in the project, possibly by making some customer representatives part of the
team.
Responding to change over following a plan: The contract negotiation that binds the
customer to a contract and then finally makes them sign and obeys should not focus;
rather, changes are welcome over the following plan.

Agile Methodologies

Agile is actually an umbrella term, and there are many development methodologies actually
qualify as agile. These are Extreme programming (XP), Scrum, Unified Process, Crystal,
DSDM, and Lean.

Agile Model – Principle Techniques

The agile model has four important manifestos which emphasize many techniques.


User Stories: The requirements should be in the form of user stories or, in other words,
informal ways to under the user’s requirements. This approach is simpler than use cases.
https://notepub.io/notes/software-engineering/software-development-life-cycle/what-is-agile-software-development-in-sdlc-process-models/ 1/5
07/05/2021 SDLC - Agile Software Development - Notepub

Metaphors: The development should start based on the user stories and customer
feedback, which can be refined over time. Metaphors are actually the overall design of the
software or a common vision of what is required.

Spike: The spike is like a prototype or program written to explore potential solutions and
evaluate the alternatives.

Refactor: Once the software works and customers agreed, then go for refactoring without
affecting the behavior. This mainly improves efficiency and structure or management of the
codebase.

Agile Model – Nitty Gritty

Only one increment is planned, developed, deployed at the customer site, and no long-
term plans are made.
Each iteration may add even a small amount of code, but still, after a time box, an
increment is made, and that is deployed at the customer site. Sometimes the
incremental feature may be tiny, but still, these are deployed.
Face-to-face communication is favored over written documents. The team members
should communicate with each other rather than passing documents.
The development team should share single office space to facilitate face-to-face
communication, and the team size, when it is small, works best. The size should be
between five to nine people for the development of small projects.
The effectiveness of communication mode is face-to-face communication using a
whiteboard. If not possible, then video conversation. If not, then phone or videotape
or email conversation or audiotape. However, the worst mode of communication is via
documents.
The primary measure of progress is the incremental release of working software.

Agile Model – Requirement Management

In the agile model, the requirements are keep coming as in any evolutionary model. All the
requirements are maintained in terms of their priority. Each time a requirement (as the user
story) comes, these are put in the appropriate place based on the priority. For every next
incremental development, always consider the higher priority requirements. However, it may
be possible that queued requirements priority can go up or down or even be removed based
on the customer feedback.

Agile Model – Documentation


https://notepub.io/notes/software-engineering/software-development-life-cycle/what-is-agile-software-development-in-sdlc-process-models/ 2/5
07/05/2021 SDLC - Agile Software Development - Notepub

It should be concise, describe the less likely to change information, and sufficiently accurate,
consistent, and detailed.

Agile Model – Advantages

The agile model has many advantages that help deliver high-quality software products in the
least time and least cost.

Frequent delivery of versions – once every few weeks.


Requirements change requests are easily accommodated.
Close cooperation between customers and developers.
Face-to-face communication among team members.

Agile Model – Disadvantages

The definition of the agile model is rather sketchy, several interpretations may be possible,
and therefore, high-quality people skills are required. The long terms plan is not made here,
and it only focuses on the increments. Consequently, it is harder to manage features and
customer expectations as requirements are kept on coming. Also, upfront, it would be not
easy to quantify the cost, time, and quality because here, we do not know how many
increments or exact features are there.

The other difficulties are there, like the knowledge is shared among the developers through
verbal communication rather than any formal document. Therefore, after the developers
disperse, that knowledge may vanish, and sometimes the verbal communication can be
misinterpreted. When the project is complete, and the team disperses that time,
maintenance may become difficult.

Agile Model – Popularity

Agile models are used extensively in the industry, and the reason for that is the project
characteristics have changed. Earlier, all programs were developed from scratch, and it was
taking years, which was the reason for the popularity of waterfall-based models. However,
nowadays, service-oriented projects have become prevalent, a lot of code reuse has been
made, and customer involvement and satisfaction are crucial. This is achieved with
incremental development and deployment of software at the customer site. So, this is the
reason why the agile models are extensively used and popular.

Reference
https://notepub.io/notes/software-engineering/software-development-life-cycle/what-is-agile-software-development-in-sdlc-process-models/ 3/5
07/05/2021 SDLC - Agile Software Development - Notepub

1. Fundamentals of Software Engineering Book & NPTEL Video Lectures by Rajib Mall.

Share this:

Tweet Share 0 Share Save  Print  WhatsApp  Telegram  More


Customize buttons

Like this:

Like
Be the first to like this.

← Previous Post Next Post →

Software Development Life Cycle

Need for SDLC: Software Crisis

Need for SDLC: Exploratory Software Development Process

Software Engineering

Software crises still exist

Software Development Life Cycle (SDLC)

SDLC – Classical Waterfall Model

SDLC – Iterative Waterfall Model

SDLC – V Model

SDLC – Prototyping Model

Major difficulties of Waterfall Based Models

SDLC – Incremental Model

SDLC – Evolutionary Model



SDLC – Rapid Application Development (RAD) Model

https://notepub.io/notes/software-engineering/software-development-life-cycle/what-is-agile-software-development-in-sdlc-process-models/ 4/5
07/05/2021 SDLC - Agile Software Development - Notepub

SDLC – Unified Process

SDLC – Spiral Model

SDLC – Incremental vs Evolutionary Software Development Process

SDLC – Iterative vs Incremental

SDLC – RAD vs Iterative Waterfall Model

SDLC – Prototyping vs Rapid Application Development Model

SDLC – Rapid Application Development vs Evolutionary model

Copyright © 2021 Notepub | All Right Reserved

https://notepub.io/notes/software-engineering/software-development-life-cycle/what-is-agile-software-development-in-sdlc-process-models/ 5/5

You might also like