0% found this document useful (0 votes)
25 views

Unit 2

The document discusses various agile process models including Extreme Programming (XP), Adaptive Software Development (ASD), Scrum, Dynamic Systems Development Method (DSDM), Feature Driven Development (FDD), and Crystal. It provides details on the key aspects of XP such as planning, design, coding, and testing. It also summarizes the three phases of ASD: speculation, collaboration, and learning. The document contains questions that have been asked in previous GTU exams related to agile development processes and models.

Uploaded by

mian19234
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)
25 views

Unit 2

The document discusses various agile process models including Extreme Programming (XP), Adaptive Software Development (ASD), Scrum, Dynamic Systems Development Method (DSDM), Feature Driven Development (FDD), and Crystal. It provides details on the key aspects of XP such as planning, design, coding, and testing. It also summarizes the three phases of ASD: speculation, collaboration, and learning. The document contains questions that have been asked in previous GTU exams related to agile development processes and models.

Uploaded by

mian19234
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/ 59

Unit 2 : Agile Developement

Syllabus
Topics
Agility and Agile Process Model
Other Process Model of Agile Development and
Tools
-Extreme Programming
-ASD ( Adaptive Software development)
-Scrum
- DSDM (Dynamic system development
method)
-Crystal
-FDD (feature driven development)

2
Questions asked in GTU

1) List the different Agile process model and Explain any


one with suitable example.( Summer 2016) (7)
2) Explain Agile Developmentin detail. (Winter 2016,
Winter 2017,W-19) (4) (7)
3) Explain Scrum with merits and demerits.(Summer
2017,2018) (7)
4) Explain Adaptive Software DevelopmentProcess
Model.( Summer 2018) (7)
5) Discuss the concept of Agility. (Summer 2018) (3)

6) Explain Extreme programming (W-19)

3
Waterfall Model

• It is also called as linear sequential model.


• In this model whole application is developed in a
sequential approach.
• In this model each phase must be completed
fully before the next phase begin.

4
Waterfall Model

5
Where to use the waterfall model??

• Requirements are very well known.


• Product definition is stable.
• Technology is understood.
• New version of an existing product.

6
Advantages
• This model is simple
• Easy to understand and use.
• In this model phases are processed
and completed one at a time. Phases do not
overlap.
• Waterfall model works well for smaller
projects where requirements are very well
understood.

7
Disadvantages
• It is only suitable for the small size projects.
• Constant testing of the design is needed.
• If requirements may change the Waterfall
model may not work.
• High amounts of risk and uncertainty.
• Once an application is in the testing stage, it is
very difficult to go back and change something
that was not well-thought out in the concept
stage.

8
9
10
Waterfall Vs. Agile
Sr No. Waterfall Agile

1 Waterfall methodology is a sequential It follows an incremental approach


design process.
2 Software development process is It separates the project
divided into distinct phases. development lifecycle into iterations
3 There is no scope of changing the Agile is quite a flexible method
requirements once the project which allows changes to be made in
development starts. the project development
requirements even if the initial
planning has been completed.
4 In Agile methodology, testing is
In this methodology, the "Testing"
performed concurrently with
phase comes after the "Build" phase
software development.
5 Software development will be Agile can be considered as a
completed as one single project. collection of many different
projects.
6 Less flexible More Flexible 11
Agility
• Effective response to change
• Effective communication among all stakeholders
• Drawing the customer onto the team
• Organizing a team so that it is in control
of the work performed

12
13
Cont.
• Effective response to change
..

Change
Current Request
Functionality

14
Cont
• Effective communication among all
… stakeholders

15
Cont

• Drawing the customer onto the team
• Eliminate the “us and them” attitude
Software Development Team

Customer

16
Cont

• Organizing a team so that it is in control to perform the
work

Top Management

Project Manager

Team Lead
Senior Developer

Developer

17
Principles to achieve agility
• Highest priority -> satisfy the customer
• Welcome change requirements
• Deliver working software frequently in short time scale
• Customers, Business people and developers must
work together
• Complete the task with motivated developers
• Emphasize face-to-face conversation
• Continuous attention to technical excellence and good design
• Simplicity – Non technical person also can easily use
the software
• The team tunes and adjusts its behavior to become more
effective
18
Agility and cost of change

19
• Conventional process is that the cost of change
increases non linearly as a project progresses.
• A well designed agile process flattens the Cost of
change curve.
• Allowing a software team to accommodate the
changes late in software project without dramatic
cost and time impact in Agile.

20
Agile Process Models
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Feature Driven Development (FDD)
• Scrum
• Crystal
• Agile Modelling (AM)

21
Extreme Programming (XP)
• The most widely used agile process, originally
proposed by Kent Beck.
• XP uses an object-oriented approach
• Defines four key activities:
• Planning
• Design
• Coding
• Testing

22
XP
Values

• Communication
• Simplicity
• Feedback
• Courage
• Respect

23
Extreme Programming (XP) (Cont…)

CRC: class-responsibility collaborator


24
1. XP - Planning
• User story
• Instead of creating large requirement documents user stories
are written by the customer. In which what they need is
mentioned.
• Release planning
• Release plan for overall project is prepared
• From which developers may do a quick exploration of user
stories to estimate its time & cost.
• Iteration planning
• User stories to be implemented in current iteration are
broken into task and this task are assigned to developer. A
working software is produce after each iteration.
• Stand up meetings
• The stand up meetings must be conducted for the 25
current outcomes
2. XP - Design
• Simple design
• It is always good to keep the things simple to meet the
current requirements
• Encourage the use of CRC card
• Spike solution
• For answering the tough technical problem
• Refactoring
• Reduction in the redundancy, elimination of unused
functionalities

26
CRC Cards ( Class
Responsibility Collaborator)
collection of similar objects

anything that a class Someone/Something


knows or does that you work with

27
3. XP - Coding
• Customer availability
• In XP customer should be the part of the project development
• Paired programming
• All code must be coded by groups of two people working at
the same computer
• Collective code ownership
• By having collective code ownership approach,
• Everyone contributes new ideas
• Anyone can change any line of code to fix a bug

28
4. XP - Testing
• Unit testing
• All the code must be tested by unit testing using test
cases before its release
• Continuous integration
• As soon as one task is finished integrate it into the
whole system
• Acceptance tests
Acceptance tests are also called customer tests, are specified
by the customer and executed to assess customer visible
functionality. Acceptance tests are derived from user stories

29
Adaptive Software Development
(ASD)
• Adaptive Software Development (ASD) was proposed by
Jim Highsmith.
• This is a technique for building complex software
systems using iterative approach.
• ASD has three phases :
Speculation
Collaboration
Learning

30
Adaptive Software Development (ASD)

JAD : Joint Application Development


31
Speculation
• The adaptive cycle planning is conducted.
• Speculation recognizes the uncertain nature of complex
problems and encourages exploration and
experimentation.
• 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

32
Collaboration
• In this, collaboration among the members of development team is
a key factor.
• For successful collaboration and coordination it is necessary
to have following qualities in every individual
• Assist each other without offense
• Work hard
• Communicate problems and help each other
• Criticize without any hate

33
Learning
• Emphasize is on learning new skills and techniques.
• There are three ways by which the team members learn
• Customer Focus groups
• The feedback from the end-users is obtained.
• Formal technical review
• This review is conducted for better quality.
• Postmortems
• Team analyses its own performance and makes
appropriate improvements.

34
We observe the following from an Adaptive
framework:

• Itis difficult to Collaborate without Learning or


to Learn without Collaborating.
• Itis difficult to Speculate without Learning or
to Learn without Speculating.
• It is difficult to Speculate without Collaborating or to
Collaborate without Speculating.

35
Characteristics of ASD
1. Mission Driven
The activities in the each development cycle must be
justified against the overall project mission.
2. Feature Based
Features are the functionality that are developed during
an iteration based on the customer’s priorities.
3. Iterative
ASD is iterative and focuses on frequent releases in order
to obtain feedback, assimilate the resulting learning and
setting the right direction for further development.

36
4. Time Boxed
Setting fixed delivery times for projects
5. Change Tolerant
Able to incorporate change is viewed as a competitive
advantage (not as a problem).
6. Risk Driven
The iterations are driven by identifying and evaluating the
critical risks.

37
Scrum

• This model is developed by Jeff Sutherland and Ken Schwaber in


1995.
• Scrum is an agile process model which is used for developing the
complex software systems.
• It is an Iterative and Incremental software development method.
• It is a lightweight process framework.
• Lightweight process is a software development method that has
only a few rules, or that are easy to follow to maximize productivity

38
Scrum

39
40
Roles (Scrum)
• Product owner
-Users, Customer, Stakeholders
-Responsible for product backlog
• Scrum master
-The scrum master leads the meeting and analyses the response
of each team member.
-The potential problems are discussed and solved in meeting with
the help of scrum master.
• Team members
-These are the persons working in a team to develop the
software solutions.

41
Scrum Development Activities
1. Backlog
• It is a 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.
2. Sprint
• These are the work units that are needed to achieve the
requirements mentioned in the backlogs.
• It is a time period in which development occurs.
• Typically the sprints have fixed duration or time box (of 2 to 4
weeks).
• Thus sprints allow the team members to work in stable
and short-term environment. 42
Scrum Development Activities
3. 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 ?
4. Demo
• During this phase implemented functionalities are
demonstrated to the customer.

43
Scrum Principles
1. There are small working teams on the projects due to
which there is maximum communication and minimum
overhead.
2. The task of people must be partitioned .
3. The process must accommodate the technical or
business changes if they occur.
4. The process should produce software increments.
5. During product building the constant testing
and documentation must be conducted.
6. The SCRUM process must produce the working
model of the product whenever required.
44
Advantages of scrum
• Iterative in nature
• It takes continuous feedback from the user.
• Due to short sprints and constant feedback, it
becomes easier to cope with the changes.
• Daily meetings make it possible to measure
individual productivity. This leads to the
improvement in the productivity of each of the
team members.
• Issues are identified well in advance through the
daily meetings and hence can be resolved in
speedily It is easier to deliver a quality product in a
scheduled time. 45
Disadvantages of scrum

• If a task is not well defined, estimating project


costs and time will not be accurate. In such a case,
the task can be spread over several sprints.
• If the team members are not committed, the
project will either never complete or fail.
• It is good for small, fast moving projects as it
works well only with small team.

46
Dynamic Systems Development Methods
(DSDM)
• DSDM is an agile software development approach that “provides a
framework for building and maintaining systems which meet tight
time constraints through the use of incremental prototyping in a
controlled project environment”
• 80 percent of an application can be delivered in 20 percent of the
time it would take to deliver the complete (100 percent)
application.

47
Various phases of this life cycle model:

• Feasibility study
• By analysing the requirements and constraints
• Business study
• The functional and non-functional requirements
are identified
• Functional model iteration
• The incremental approach is adopted . Gather
additional requirements by taking feedback
from users
• Design and build iteration
• If possible design and build activities can be
carried out in parallel 48
• Implementation
• The software increment is placed in the working
environment

• The DSDM can be combined with XP method or ASD concepts to


create combinational model.

49
Feature Driven Development
(FDD)
• Originally Peter Coad suggested this approach for object
oriented software engineering.
• Stephen Palmer and John Flesing has extended and
enhanced Coad’s work.
• FDD is a model-driven, short-iteration process.
• In FDD, the feature means client valued function.

50
Feature Driven Development
(FDD)

51
• Various phases in the FDD life cycle

1. Develop overall model


• The high-level walkthrough of scope and detailed
domain walkthrough are conducted to create
overall models. Detailed domain models are
created and then these models are progressively
merged into overall model.
2. Build feature list
• A feature is a small, client valued output.
Information gathered in 1st step is now deduced
to make a list of required features

52
3. Plan by feature
• After completing the feature list the development plan is
created
• Now the development of features is planned. It is all about
in which order the features will be implemented. Teams
are selected and assigned feature sets.
4. Design by feature
• For each feature the sequence diagram is created
5. Build by feature
• Finally the class owner develop the actual code for their
classes, unit tested and inspected and approved by Chief
Programmer who then gives an ok and the completed
feature is added to the main build.

53
Crystal
• Alistair and Highsmith suggested the crystal family of agile
methods.
• In this method, a set of methodologies are defined which contains
the core elements that are common to all.
• This method also contains roles, process patterns, work products
and practice that are unique to each.
• Thus the crystal family is actually a set of agile processes that are
useful for different types of projects.
• The agile team has to select the members of the crystal family that
ismost appropriate for their ongoing project and
environment.

54
Crystal method focus on..
• People
• Interaction
• Community
• Skills
• Talent
• communication

55
Crystal methodology

• Crystal Clear
• Crystal Yellow
• Crystal Orange
• Crystal Orange
Web
• Crystal Red
• Crystal Maroon
• Crystal Diamond
• Crystal Sapphire
56
A Set of Methodologies

• Every project is special so that for every project a


new
methodology may be developed.
• Therefore, there should be a set of methodologies.
• For each project, a suitable methodology can be selected
from the set.
• Crystal employs this strategy. Therefore, Crystal has a set of
methodologies.
• In Crystal, the most suitable methodology is selected from
the family of methodologies, and it can be tailored also.
57
Three Dimensions of Crystal

• A methodology from the set of the methodologies


is selected according to the following dimensions:
–Project Size
–Criticality
–Objectives

58
59

You might also like