Professional Documents
Culture Documents
Ch.2. Agile Development
Ch.2. Agile Development
Ch.2. Agile Development
To achieve
agility there • The highest priority is customer satisfaction
are 12 with a continue delivery of a valuable software.
• Changing the requirement are welcome at any
principles stage of development.
which still • Operational or working part of software will be
serves is a delivered frequently within weeks of starting it.
• Customer and development team should work
good agile together on day to day bases to complete the
model to software fast.
workout. This • Project has to build around motivated
individuals and support them by giving good
are also called work environment.
as agility
principles.
Face to face conversation is the best way to communication
within the team.
Mutual trust and respect: team members should respect and trust
each others.
4.1 XP Values:
1. Communication: Most project fails because of poor communication.
So implemented practices that force communication in a positive
fashion.
2. Simplicity: Develop the simplest product that meets the customer’s
needs.
3. Feedback : Developers must obtain and value feedback from the
customer, from system, and from each other.
4. Courage and discipline : Be prepared to make hard decisions
that support the other principles and practices.
5. Respect: The Agile XP team gains respect among stakeholders
and members by following the above values. Respect for XP
process also grows as and when the team delivers increment
successfully.
4.2 XP Process
The Four keys activities are involved in XP given as follow:
1. Planning.
2. Design.
3. Coding.
4. Testing.
A) Planning:
a) User Stories: It trying to describe the required
output,features,functionality that is to be build. The stories are
written by the customer and also assigns the values i.e. priority.
b) Cost evaluation: The developer will examined the user stories and
assigned the cost. If the time of development exceeds three
weeks then the user is asked to split the story into smaller one
and cost assessment is done again.
c) Accommodating changes: New stories can be added and existing
stories can be removed at any time.
d) Deciding new release: Customer and developer comes together and decide
on stories to be clubbed together in next increment, date of release etc.
e) Computing Project Velocity: The number of customer stories implemented
in the first release. It is used for determining the delivery dates, schedules of
next releases and also for checking whether over commitment is happening
over the entire project.
B) Design :
i. KIS(Keep It Simple) principle: Xp tries to focus on designing the system as per
the User Stories. It depresses design of extra functionalities required in future
and insists of keeping the design as simple as possible.
ii. Use of CRC cards: CRC cards are produced as outcome of XP design process.
These cards identify and design classes corresponding to current
release/increments.
iii. Spike solution: In case of any difficulty in designing a particular story, XP
recommends creation of operational prototype of the story which is called
spike solution.
iv. Refactoring : It is a method of optimizing the design of a system. It
allows to modify code without changing its functionality or output.
C) Coding :
v. Test First programming:
• The team develops unit tests for each story before doing the actual
coding. Also it gives immediate feedback for the code developed and
ensure quality of code.
• This is also referred as Test-Driven Development(TDD).
i. Pair Programming: While writing the code two developers sit together
at a single station. It helps in developing better code and provides real
time quality assurance.
ii. Continuous Integration: when pair programmers complete their code,
it is integrated with the code developed by other pairs.
D) Testing:
iii. Unit testing : A unit test is a way of testing a unit - the smallest piece of
code that can be logically isolated in a system.
Acceptance Testing:
• It is also called as Customer Testing as it is performed with respect to the
User stories.
• Overall functionalities and features of the release is checked and the
feedback is given for updates to be incorporated in the next
release/increments.
4.3 Industrial XP
• Recent variation of XP called Industrial XP(IXP).
• The main difference between XP and IXP is that IXP tries to increase the
customer and management involvement through upgraded technical
practices.
• The 6 new practices used by IXP are:
1. Readiness Assessment.
2. Project Community.
3. Project Chartering.
4. Test-driven Management.
5. Retrospectives.
6. Continuous Learning.
Adaptive Software Development.(ASD)
• It is one of the techniques for developing complex software proposed by
‘Jim Highsmith’.
• It consists of 3 phases as follow:
1. Speculation.
2. Collaboration.
3. Learning.
1. Speculation : The requirements are gathered and plan for iterative and
adaptive release/increments is created . Plan reviewed and updated as per
feedback in each cycle.
2. Collaboration : People working together must respect individual strengths
and weakness. People in a team should criticize and assists each other
without any irritation.
3. Learning : Learning helps the team to understand and improve their
technical skill set, project and process understanding. The team learns
through focused groups, technical reviews and project investigations.
Scrum
Scrum uses easy and simple rules of communication which adapted by Agile teams.
The three main roles are Product Owner, Scrum Master and team members.
The product owner together with the team prioritize the requirement of system to
build Product backlog.
Software is built in an iterative manner , this is called as Sprint. Each sprint consist of
set of functionalities from the backlog, which has to implemented within certain time
period.
Scrum meeting are conducted everyday in order to asses progress and problems faced
during the development, this scrum meetings are led by scrum master.
At the end, sprint review is conducted, working model is demonstrated to owner and
customers, feedback received during the review is used to improve the next sprint.
Dynamic System Development Model (DSDM)
• The Dynamic System Development Method (DSDM)
is dynamic as it is a Rapid Application Development
method that uses incremental prototyping.
• DSDM is an iterative and incremental approach that
highlights customer involvement.
• Its goal is to deliver projects on time and on budget
while adjusting for changing requirements along the
way.
• This method is particularly useful for the systems to
be developed in short time span and where the
requirements cannot be decided at the start of the
application building.
DSDM defines three different • These three cycles are preceded
iterative cycles – by two additional life cycle
activities
• Functional model iteration : • Feasibility study : Identifies the
Here the working basic requirements and
model/increment of the system constraints related to the system
is produced ,this helps in getting to be built.
feedback from the client. • Business study : This phase
• Design and build iteration : identifies the business value of
Design is refined with every the application to be developed.
iteration in order to Architecture and maintainability
accommodate the essential and requirements are also finalized.
operational business values.
• Implementation : The latest
software increment developed is
always implemented in the
operational environment. Of the
user.
Agile Unified Process(AUP)