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

1

CHAPTER NO 3
AGILE DEVELOPMENT
WHAT IS AGILE?
Agile software development refers to a group of software development methodologies
based on iterative development, where requirements and solutions evolve through
collaboration between self-organizing teams.

Agile development model is also a type of Incremental model. Software is


developed in incremental, rapid cycles
It is used for time critical applications.
Extreme Programming (XP) is currently one of the most well known agile
development life cycle model.

Agility in context of software engineering


• Agility means rapid response to change, effective communication among all
stockholder.
• The agile process forces the development team to focus on software itself rather
than design and documentation.
• The agile process believes in iterative method.
PREPARED BY:
HABIBA SHOAIB
2

• The aim of agile process is to deliver the working model of software quickly to the
customer .
• For example: Extreme programming is the best known of agile process.

Principles of agile model


Twelve principles underlie the Agile Manifesto, including:
• Customer satisfaction by rapid delivery of useful software
• Welcome changing requirements, even late in development
• Working software is delivered frequently (weeks rather than months)
• Working software is the principal measure of progress
• Sustainable development, able to maintain a constant pace
• Close, daily co-operation between business people and developers
• Face-to-face conversation is the best form of communication (co-location)
• Projects are built around motivated individuals, who should be trusted
• Continuous attention to technical excellence and good design
• Simplicity
• Self-organizing teams
• Regular adaptation to changing circumstances

Extreme Programming (XP)

Proposed by KENT BECK

• The Extreme Programming is commonly used agile process model.


• It uses the concept of object-oriented programming.
• A developer focuses on the framework activities like planning, design,
coding and testing. XP has a set of rules and practices.

The XP Process
The XP process comprises of five framework activities:

PREPARED BY:
HABIBA SHOAIB
3

1. Planning
Planning starts with the requirements gathering which enables XP
team to understand the rules for the software.

In this stage customer writes user stories, which define the


functionality the customer would like to see, along with the business
value and priority of each of those features.
User stories don’t need to be exhaustive or overly technical they only
need to provide enough detail to help the team determine how long it’ll
take to implement those features.
From there, the team creates a release schedule and divides the
project into iterations (one to three weeks long).
Project managers might want to create a timeline or a simplified chart
to share the schedule with the team.

2. Managing

At this stage, the project manager will set the team.


Everyone needs to work collaboratively and effectively to avoid any
mistakes.
This stage involves:
• Creating an open workspace for your team
• Setting a sustainable pace (i.e. determining the right length for iterations)
• Scheduling a daily standup meeting
• Measuring project velocity (the amount of work getting done on your
project)
• Reassigning work to avoid knowledge loss
• Changing the rules if XP isn’t working perfectly for the team

3. Designing

Start with the simplest design because it will take less time to complete
than the complex solution.
Don’t add functionality early.
Refactor often to keep your code clean and concise.

PREPARED BY:
HABIBA SHOAIB
4

Create spike solutions to explore solutions to potential problems before


they put your team behind.
Kent Beck also created class-responsibility-collaboration (CRC)
cards to use as part of the XP methodology. These cards allow the entire
project team to design the system and see how objects interact.

4. Coding
Then the time finally comes to implement code.
XP practices collective code ownership:
Everyone reviews code and any developer can add functionality, fix bugs,
or refactor.
For collective code ownership to work, the team should:
• Choose a system metaphor (standardized naming scheme).
• Practice pair programming. Team members work in pairs, at a single
computer, to create code and send it into production. Only one pair
integrates code at a time.
• Integrate and commit code into the every few hours.
The customer should be available on site, during this entire process so
they can answer questions and establish requirements.

5. Testing

The team performs unit tests and fixes bugs before the code can be
released. They also run acceptance tests frequently.

Adaptive software development


• Adaptive software development (ASD) has been proposed by Jim
Highsmith as a technique for building complex software and
systems.
• It’s focused on rapid creation and evolution of software systems.
• There is no pre planned steps in this process.
• The structure of adaptive software development and rapid
application development are similar.
• It grew out of rapid application development.
• ASD life cycle incorporates three phases. The diagram illustrates the
life cycle of ASD.
• Speculation: Initiation and Planning

PREPARED BY:
HABIBA SHOAIB
5

• Collaboration: Concurrent feature development


• Learning: quality review

Speculate:
• Speculate replaces the word planning, planning of product specifications or planning
of project management tasks.
• Speculation consists of Project initiation.
• During this phase, coders attempt to understand the exact nature
of the software and the requirements of the users.
• This phase relies on bug and user reports to guide the project.

Collaborate:
• Collaborate would require the ability to work jointly to produce results,
share knowledge or make decisions.
• This phase consists of Concurrent component engineering.
• Effective collaboration with customer is very important.
• Communication, teamwork, individual creativity is part of effective
collaboration.

Learn:
Learn aims both with the developers and the customers to use the results of each development
cycle to learn the direction of the next.

The team learns about the

• Changes in the product


• Changes regarding the assumptions of how products are developed.
• About product changes

As it is easier to learn from the small rather than large mistakes, the iterations are to be short.

PREPARED BY:
HABIBA SHOAIB
6

Dynamic Systems Development


Method (DSDM)
Promoted by DSDM Consortium

• DSDM is an agile software development methodology.


• It is an iterative, incremental approach that is largely based on the Rapid
Application Development (RAD ) methodology.
The method provides a four-phase framework consisting of:
1. Feasibility and business study
2. Functional model / prototype iteration
3. Design and build iteration
4. Implementation

There are 9 principles which are essential to any DSDM implementation,


ignoring one of them will break with the frameworks philosophy and
significantly increase project risks.

PREPARED BY:
HABIBA SHOAIB
7

1) Active user involvement – Imperative.


2) Teams must be empowered to make decisions.
3) Focus on frequent delivery.
4) Criterion for accepted deliverable (Fitness for Business).
5) Iterative and incremental development – Mandatory.
6) All changes during development must be reversible.
7) Requirements are base lined at high level.
8) Testing is integrated throughout the life cycle.
9) Collaborative and co-operative approach.

Scrum
Proposed by SCHWABER & BEEDLE.
Scrum is one of the most popular frameworks for implementing agile.
So popular, in fact, that many people think scrum and agile are the same
thing. (They're not.)
scrum has a unique flavor because of the short iterations of work.
It is designed for teams of three to nine members, who completed their work
within timeboxed iterations, called "sprints", no longer than one month and
most commonly two weeks,
then re-plan in 15-minute stand-up meetings, called daily scrums
Scrum is:
• Lightweight
• Simple to understand
• Difficult to master

PREPARED BY:
HABIBA SHOAIB
8

Crystal

Crystal Methods are a family of software development methodologies developed by Alistair


Cockburn.

Crystal focuses on six primary aspects: people, interaction, community, communication, skills,
and talents.

The methods are very flexible and avoid rigid processes because of its people-centric focus.

Alistair Cockburn is also one of the original signatories of the Agile Manifesto.

Feature-driven development

Proposed by peter coad


Feature-driven development (FDD) is an iterative and incremental software
development process.
It is a lightweight or Agile method for developing software.
Its main purpose is to deliver working software repeatedly in a timely manner

PREPARED BY:
HABIBA SHOAIB
9

Agile modeling

Agile modeling is a methodology for modeling and documenting software


systems.
It is a collection of values and principles, that can be applied on an (agile)
software development project.

Proposed by SCOTT AMBLER

CORE PRINCIPLES
• Model With A Purpose.
• Maximize Stakeholder
• Travel Light.
• Use Multiple Models.
• Rapid Feedback.
• Assume Simplicity.
• Embrace Change.
• Incremental Change.
• Quality Work.
• Working Software Is Your Primary Goal.
• Enabling The Next Effort Is Your Secondary Goal.

PREPARED BY:
HABIBA SHOAIB

You might also like