Unit 2
Unit 2
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
3
Waterfall Model
4
Waterfall Model
5
Where to use the waterfall model??
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
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…)
26
CRC Cards ( Class
Responsibility Collaborator)
collection of similar objects
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)
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:
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
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
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
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
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
58
59