Unit 2 : Agile Developement
Prepared By,
Prof. Mohit Patel
New L.J. Institute of Engineering and Technology, Ahmedabad
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 Development in detail. (Winter 2016,
Winter 2017,W-19) (4) (7)
3) Explain Scrum with merits and demerits.(Summer
2017,2018) (7)
4) Explain Adaptive Software Development Process
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
Change
Functionality Request
Current
Functionality
© randomactsofleadership.com
14
Cont…
• Effective communication among all stakeholders
© www.clipartkid.com
15
Cont…
• Drawing the customer onto the team
• Eliminate the “us and them” attitude
Software Development Team
Customer
© marketculture.files.wordpress.com
16
Cont…
• Organizing a team so that it is in control to perform the
work
Top Management
Project Manager
Team Lead
Senior Developer
Developer
© www.eudigital.co
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 current
outcomes
25
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:
• It is difficult to Collaborate without Learning or to
Learn without Collaborating.
• It is 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
© http://www.conceptdraw.com/examples/scrum-guide
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 is most 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