0% found this document useful (0 votes)
33 views20 pages

Unit 1 Agile Development

The document provides an overview of Agile development, detailing its principles, processes, and various models such as Extreme Programming (XP), Scrum, and Adaptive Software Development (ASD). It emphasizes the importance of customer satisfaction, adaptability to change, and effective team collaboration in software development. Additionally, it discusses scenarios where Agile methodology may not be effective and outlines the key activities involved in different Agile processes.

Uploaded by

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

Unit 1 Agile Development

The document provides an overview of Agile development, detailing its principles, processes, and various models such as Extreme Programming (XP), Scrum, and Adaptive Software Development (ASD). It emphasizes the importance of customer satisfaction, adaptability to change, and effective team collaboration in software development. Additionally, it discusses scenarios where Agile methodology may not be effective and outlines the key activities involved in different Agile processes.

Uploaded by

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

Unit-1

Agile
Development

Dr. Rachna Patel


P Outline
Looping
■ What is Agility?
■ Agile Process
■ Agility Principles
■ Where agile methodology not work?
■ Agile Process Models
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Scrum
• Feature Driven Development (FDD)
• Crystal
• Agile Modelling (AM)
Agility Agility is ability to move quickly and easily.

It is a property consisting of quickness, lightness, & ease of movement.


The ability to create and respond to change in order to profit in a unstable global business environment.
The ability to quickly reprioritize use of resources when requirements, technology, and knowledge shift.
A very fast response to sudden market changes and emerging threats by intensive customer interaction.
Use of evolutionary, incremental, and iterative delivery to converge on an optimal customer solution.
Maximizing BUSINESS VALUE with right sized, just- enough, and just-in-time processes and documentation.
ability to move quickly and easily.
ability to think and understand quickly.
What is Agility? Cont.
Current Functionality
Rapid and Incremental delivery of software
Effective
response
to change
Change Request

Organizing a team Effective


so that it is in communication
control to perform among all
the work stakeholders
Development

Drawing the Eliminate the


Team

customer onto “us and them”


the team attitude
Customer
Agile Process
Agile software process addresses few assumptions

Difficulty in predicting changes of requirements and customer priorities.

For many types of software; design and construction are interleaved (mixed).

Analysis, design, construction and testing are not as predictable as we might like.

An agile process must adapt incrementally.

To accomplish incremental adaptation, an agile team requires customer feedback (so that the
appropriate adaptations can be made).
Agility Principles
Highest priority is to satisfy the customer through early & continuous delivery of software
Welcome changing requirements
Deliver working software frequently
Business people and developers must work together
Build projects around motivated individuals
Emphasize face-to-face conversation
Working software is the measure of progress
Continuous attention to technical excellence and good design
Simplicity – the art of maximizing the amount of work done
The best designs emerge from self-organizing teams
The team tunes and adjusts its behaviour to become more effective
Where agile methodology not work

Project plan & Unclear understanding Big Enterprises where


requirements are clear of Agile Approach team collaboration is
& unlikely to change among Teams tough
Agile Process Models

Extreme Programming (XP)

Adaptive Software Development (ASD)

Dynamic Systems Development Method (DSDM)

Feature Driven Development (FDD)

Crystal

Agile Modelling (AM)


Extreme Programming (XP)
The most widely used approach to agile software development
A variant of XP called Industrial XP (IXP) has been proposed to target process for large
organizations
It uses object oriented approach as its preferred development model

XP Values
Communication: To achieve effective communication, it emphasized close & informal (verbal)
collaboration between customers and developers
Simplicity: It restricts developers to design for immediate needs not for future needs
Feedback: It is derived from three sources the implemented software, the customer and other
software team members, it uses Unit testing as primary testing
Courage: It demands courage (discipline), there is often significant pressure to design for future
requirements, XP team must have the discipline (courage) to design for today
Respect: XP team respect among members
The XP Process
It considers four framework activities
Planning
1. Planning ● 2. Design ● 3. Coding ● 4. Testing User Stories
• Customers assigns value (priority)
• Developers assigns cost (number of development
weeks)
Project velocity
• Computed at the end of first release
• Number of stories implemented in first release
• Estimates for future release
• Guard against over-commitment
The XP Process cont.
CRC card • Keep-it-Simple (Design of extra functionality is discouraged)
• Preparation of CRC card is work project
• CRC cards identify and organize object oriented classes
Design

• Spike Solutions (in case of difficult design problem is encountered)


• Operational prototype intended to clear confusion
• Refactoring
• Modify internals of code, No observable change

• Develops a series of Unit test for stories included in current release


• Complete code perform unit-test to get immediate feedback
Coding

• XP recommend pair-programming, “Two heads are better than one”


• Integrate code with other team members, this “continuous integration” helps to avoid
compatibility & interfacing problems, “smoke testing” environment to uncover errors
early

• Unit test by developers & fix small problems


Testing

• Acceptance tests - Specified by customer


• This encourages regression testing strategy whenever code is modified
What is Scrum? Scrum is an agile process model which is used for developing the complex software systems.

It is a lightweight process framework.


Lightweight means the overhead of the process is kept as small
as possible in order to maximize the productivity.

Product Backlog Product Owner

Product
A scrum is a method of restarting

Sprint
Daily Scrum Meeting
play in rugby that involves players
packing closely together with their
heads down and attempting to gain
Scrum is an empirical process,
possession of the ball. where decisions are based on
observation, experience and
experimentation.
Scrum framework at a glance
Inputs from Customers,
Team Selects starting at top
Team, Managers
as much as it can commit to
deliver by end of sprint Scrum
Daily Scrum
Master
Meetings

Sprint Review

Product Owner

Finished Work

Product Sprint Planning Sprint


Backlog Meeting Backlog

Sprint end date and team Sprint Retrospective


Prioritized list of what is required: deliverable do not change
features, bugs to fix...
Scrum cont.
Backlog
It is a prioritized list of project requirements or features that must be provided to the customer.
The items can be included in the backlog at any time.
The product manager analyses this list and updates the priorities as per the requirements.

Sprint
These are the work units that are needed to achieve the requirements mentioned in the backlogs.
Typically the sprints have fixed duration or time box (of 2 to 4 weeks, 30 days).
Change are not introduced during the sprint.
Thus sprints allow the team members to work in stable and short-term environment
Scrum cont.
Scrum Meetings
There are 15 minutes daily meetings to report the completed activities, obstacles and plan for next
activities.
Following are three questions that are mainly discussed during the meetings.
1. What are the tasks done since last meeting ?
2. What are the issues that team is facing ?
3. What are the next activities that are planned?
The scrum master leads the meeting and analyses the response of each team member.
Scrum meeting helps the team to uncover potential problems as early as possible
It leads to “knowledge socialization” & promotes “self-organizing team structure”
Demo
Deliver software increment to customer
Implemented functionalities are demonstrated to the customer
Adaptive Software development (ASD)
This is a technique for building complex software systems using iterative approach.
ASD focus on working in collaboration and team self-organization.

ASD incorporates three phases Speculation


1. Speculation, 2. Collaboration & 3. Learning The adaptive cycle planning is conducted.
In this cycle planning mainly three types of
information is used
Customer’s mission statement

Project constraints
(Delivery date, budgets etc…)

Basic requirements of the project


Adaptive Software development (ASD) cont.
Collaboration Learning
In this, collaboration among the members of Emphasize is on learning new skills and
development team is a key factor. techniques.
For successful collaboration and coordination There are three ways by which the team
it is necessary to have following qualities in members learn
every individual
Focus groups
The feedback from the end-users is obtained.
Assist each other without resentment (offense)
Formal technical review
Work hard Posses the required skill set This review is conducted for better quality.
Postmortems
Communicate problems and help each other Team analyses its own performance and makes
Criticize without any hate appropriate improvements.
Dynamic Systems Development Methods (DSDM)
Various phases of this life cycle model

Feasibility study: By analysing the business requirements and constraints the viability of the
application is determined
Business study: The functional and informational requirements are identified and then the
business value of the application is determined
Functional model iteration: The incremental approach is adopted for development
Design and build iteration: If possible design and build activities can be carried out in parallel
Implementation: The software increment is placed in the working environment
Feature Driven Development (FDD)

It is practical
process model for
object oriented
software
engineering

In FDD, the feature means client valued function.


Feature Driven Development (FDD) cont.
1. Develop overall model Design by feature
The high-level walkthrough of scope and For each feature the sequence diagram is
detailed domain walkthrough are conducted created
to create overall models.
Build by feature
2. Build feature list
Finally the class owner develop the actual
List of features is created and expressed in code for their classes
the following form
<action> the <result> <by for of to> a(n) <object>
For Ex. “Display product-specifications of the product”

3. Plan by feature
After completing the feature list the
development plan is created

You might also like