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

Chpater2_AgileDevelopment

Agile development encompasses various methods and practices aimed at enhancing responsiveness to changes in software projects, emphasizing collaboration, iterative delivery, and customer involvement. Scrum is a prominent agile framework that organizes work through defined roles, events, and artifacts, promoting team collaboration and transparency. The Dynamic System Development Model (DSDM) further refines agile principles by focusing on business needs, timely delivery, and continuous communication, ensuring quality and adaptability throughout the development process.

Uploaded by

ashwini biradar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Chpater2_AgileDevelopment

Agile development encompasses various methods and practices aimed at enhancing responsiveness to changes in software projects, emphasizing collaboration, iterative delivery, and customer involvement. Scrum is a prominent agile framework that organizes work through defined roles, events, and artifacts, promoting team collaboration and transparency. The Dynamic System Development Model (DSDM) further refines agile principles by focusing on business needs, timely delivery, and continuous communication, ensuring quality and adaptability throughout the development process.

Uploaded by

ashwini biradar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Agile Development

● Agile development is a general term for a set


of methods and practices reflected in an agile
manifesto.
● A method is a way of working. Whenever we
do something we are following a process.
● Agile methods are processes that support the
agile philosophy.
● Agile methods consist of individual elements
called practices. Practices include using
version control, setting coding standards and
giving weekly demos to the stakeholders.
● Agile is a widely popular software development
method. Agile methods break the whole project
into small incremental modules.
What is agility?
● The ability to respond to changes - changes from
Requirements, Technology and People.
● According to Jacobson “Agility has become
today’s buzzword when describing a modern
software process. Everyone is agile.”
● An agile team in the software process is a nimble
team able to appropriately respond to changes.
● Changes in the software being built, changes to
team members, changes because of new
technology, changes of all kinds that may have an
impact on the product they build or the project that
creates the product.
● Support for changes should be built-in to
everything we do in software because it is the heart
and soul of software.
Agility is more than an effective response to change.
1. Agility emphasizes rapid delivery of operational
software and de-emphasizes the importance of
intermediate work products.
2. It adopts the customer as a part of the development
team and works to eliminate the “us and them”
attitude that continues to pervade many software
projects.
3. It recognizes that planning in an uncertain world
has its limits and that a project plan must be
flexible.
4. Agility increases team structures and attitudes that
make communication among team members,
between technologist and business or organization
people, between software engineer/developers and
their managers more facile.
5. Agile development is a set of umbrella activities
that describes several agile methodologies such as
Scrum, XP, Crystal, FDD and DSDM.
SCRUM
- Scrum is also an agile development method
- Concentrates particularly on how to manage tasks
within a team-based development environment.
- Most popular and widely used method as it is
relatively simple to implement and address many
of the management issues.
- It is an iterative and incremental agile software
development framework for managing software
projects and application development.
- Development team works as a unit to reach a
common goal
- Scrum is where the team comes together to move
the product forward.
- It is a framework with which the developers can
efficiently address difficult problems.
- Ken Schwaber and Jeff Sutherland developed
Scrum. Together they stand behind the Scrum
rules.
Scrum Definition:
Scrum is a framework within which people can
address complex adaptive problems, while
productively and creatively delivering products of the
highest possible values.
- The Scrum framework consists of Scrum teams
and their associated roles, events, artifacts and
rules.
- Each component within the framework serves a
specific purpose and is essential to Scrum’s
success and usage.
- Scrum is an empirical process, where decisions are
based on observation, experience and
experimentation. Scrum has three pillars:
transparency, inspection and adaptation.
- Adaptation. The team consistently revises its
approach to problems and takes on new ones as they
arise.
- Inspection. The team consistently reflects on and
evaluates its performance.
- Transparency. The team works in an open
environment, where all members have insight into each
other's process and are aware of the challenges others
face.
- One critical Scrum Team characteristic that binds
all of the elements together is Trust.
- If Trust is not present on a Scrum Team, there will
likely be tension and bottlenecks in the way of
getting work done.
Scrum Process Framework

In Scrum, the prescribed events are used to create


regularity. All events are time-boxed events, such that
every event has a maximum duration.
Sprint:
● Sprint is a predefined interval or the time frame
(time box) in which the work has to be completed
and make it ready for review or ready for
production deployment.
● The time box usually lies between 2 weeks or 1
month.
● Sprints consist of the Sprint planning, daily
scrums, the development work, the Sprint review,
and the Sprint retrospective.
● In Sprint planning, the work to be performed in the
Sprint is planned collaboratively by the Scrum
Team.
● The Daily Scrum Meeting is a 15-minute time-
boxed event for the Scrum Team to synchronize
the activities and create a plan for that day.
● A Sprint Review is held at the end of the Sprint to
inspect the Increment and make changes to the
Product Backlog, if needed.
● The Sprint Retrospective occurs after the Sprint
Review and prior to the next Sprint Planning. In
this meeting, the Scrum Team is to inspect itself
and create a plan for improvements to be enacted
during the subsequent Sprint.
User Story:
User stories are nothing but the requirements or
features which have to be implemented.
In scrum there are no huge requirements documents,
rather the requirements are defined in a single
paragraph.
The User Story Structure
The User Story structure is as follows -
As a <Type of User>,
I want <To Perform Some Task>,
So that <I can achieve some goal/benefit/value>.
Let us take a look at how a user story is framed for the
scenario of Bank Customer withdrawing cash from an
ATM.
User Story: Customer’s Cash Withdrawal
As a Customer,
I want to withdraw cash from an ATM,
So that I don't have to wait in line at the Bank
Story Points:
A story is the smallest unit of work for a Scrum team,
expressed from the perspective of the end-user.
Stories are often written as a simple sentence, for
example: “As an online banking customer, I want to be
able to add payees to my account so I can transfer
money.”
Story points in Scrum are units of measurement used to
estimate the effort required to complete a story. When
planning for an upcoming sprint, Scrum teams use
story point estimation to gauge how much effort is
needed to develop a new software feature or update.
Scrum Roles:
The Scrum Team consists of three roles, namely a
ScrumMaster, a Product Owner, and the Team.
1. Scrum Master:
The ScrumMaster is the keeper of the scrum process. Is
not the team leader, but acts as a buffer between the
team and any distracting interfaces. He/she is
responsible for-
a. making the process run smoothly
b. removing obstacles that impact productivity

c. organizing and facilitating the critical meetings

2. Product Owner
- The Product Owner is responsible for maximizing
the value of the product and the work of the Team.
- How this is done may vary widely across
organizations, Scrum Teams, and individuals.
- The Product Owner is the sole person responsible
for managing the Product Backlog.
Product Backlog
- It is an ordered list of ‘requirements' that is
maintained for a product.
- It consists of features, bug fixes, non-functional
requirements, whatever needs to be done in order
to successfully deliver a working software system.
- In scrum it is not required to start a project with a
lengthy upfront effort to document all
requirements.
- The Scrum product backlog is further allowed to
grow and change as more is learned about the
product and its customers.
- The Product Owner may do the above work, or
have the Team do it. However, the Product Owner
remains accountable for these tasks.
- The Product Owner is one person, not a committee.
The Product Owner may represent the desires of a
committee in the Product Backlog, but those
wanting to change a Product Backlog item’s
priority must address the Product Owner.
For the Product Owner to succeed, the entire
organization must respect his or her decisions.
3. Development Team
- Made up of 3-9 people with cross functional skills
who do the actual work.
- The Team is self-organizing and cross-functional.
That means the team comprises analysts, designers,
developers, testers, etc. as appropriate and as
relevant to the project.
- The scrum team works together closely, on a daily
basis, to ensure the smooth flow of information and
the quick resolution of issues.
- The scrum team delivers products iteratively and
incrementally, maximizing opportunities for
feedback.
Sprint Backlog
- A sprint backlog is a subset of the product backlog
and lists the work items to complete in one specific
sprint.
- The purpose of the sprint backlog is to identify
items from the product backlog that the team will
work on during the sprint. This occurs during the
sprint planning process.
How does a Scrum Process Work?
Advantages of Scrum Software Development
1. This methodology enables projects where the
business requirements documentation is not
considered very significant for the successful
development.
2. Emphasizes on frequent updating of the progress
therefore project development steps are visible.
3. Daily meetings easily help developers to make it
possible to measure individual productivity.
4. Decision-making is entirely in the hands of the
teams.
Disadvantages of Scrum Software Development
1. It suffers if the estimating project costs and time
will not be accurate.
2. Good for small, fast moving projects but not
suitable for large size projects.
3. Needs experienced team members only. If the
team consists of novices, the project can not be
completed within an exact time frame.
Dynamic System Development Model
- It is an agile software development approach.
- Provides framework for building and maintaining
systems
- DSDM was developed to fill in some of the gaps in
the RAD method.
- DSDM Consortium was created in 1994 with the
goal of promoting a common industry framework
for rapid software delivery.
- It is based on some key principles that allows
teams to maintain focus and achieve project goals.
The Key Principles of DSDM:
1. Focus on the business need
- DSDM has a strong business-driven approach. A
business case must be established for the project
and the team must understand project priorities.
- Every decision the team makes during the project
should help achieve the project goal and the team
must ensure the project is delivered on time.

MoSCoW prioritisation
- To adhere to this principle, DSDM teams have
several tools at their disposal.
- For example, the MoSCoW technique helps the
team prioritise which of the business requirements
Must be, Should be, Could be or Won’t be
delivered.
- Timeboxing helps to separate work into
manageable chunks of time, with each chunk
having its own deliverables and deadline.
- The Foundation phase in DSDM also helps the
team build focus.
- During this phase, team roles are established.
- The team then form the overall strategy, decide
how risk/quality will be assessed, how technology
will be used and how the project will be managed.
2. Deliver on time
Fixed time periods
- DSDM is an agile framework that plans work in
fixed time periods (timeboxes).
- The aim is to deliver a usable software product at
the end of each timebox (iteration).
- DSDM is thus an incremental approach, as well as
an iterative development approach to delivering
software.
- DSDM places a strong emphasis on prompt
delivery, proposing that even projects without any
need for a fixed deadline still benefit from one.
- This is because having deadlines is the best way to
control changing requirements.
- To stick to this principle, DSDM teams should
focus on priorities, hit deadlines and manage their
time by using the MoSCoW and timeboxing
techniques.

3. Collaborate
- Team spirit and collaboration is highly important
for DSDM teams.
- Teams should instead work as one unit and
collaborate to encourage understanding, higher
performance and shared ownership.
- Business and technical staff work together
- DSDM teams fulfill this principle by having
business and technical staff together in the team,
instead of separately.
- The team involves stakeholders throughout the
project and ensures each team member feels
empowered to make decisions.
- The team uses ‘workshops’ to meet stakeholders
and involve them in the project.

4. Never compromise quality


- Quality is always fixed on DSDM projects and
must be decided at the start.
- The final product shouldn’t be any more or any
less than the quality decided upon.

Continuous testing
- To adhere to this principle, DSDM teams must
ensure quality doesn’t become a variable by testing
continuously and reviewing constantly.
- This testing and reviewing occurs during the
‘exploration’ and ‘engineering’ iterative
development phases.
- Testing should happen early in the project. Again,
MoSCoW and timeboxing can be used to ensure
testing is appropriate and organized.

5. Build incrementally from firm foundations


- DSDM differs from other agile methods as it
requires the foundations of the project to be agreed
early.
- The foundations don’t need to be in too much
detail – just agree on what the problem is and how
to solve it.
- Once foundations are established, the solution must
be delivered incrementally.

Just enough design up front


- To adhere to this principle, DSDM teams must
ensure they perform analysis and ‘enough design
up front’ (EDUF) at the start of the project.

6. Develop iteratively
- DSDM proposes that nothing is created perfectly
the first time and projects operate in a constantly
changing world.
- Incremental delivery allows for such change to be
embraced and leads to higher stakeholder
satisfaction.
- Each iteration is combined with testing,
demonstrations and feedback.
- This ensures that each iteration improves upon the
last and leads to a decent final product.

Feedback loop
- DSDM teams can adhere to this principle by
building feedback into each iteration.
- During each iteration, they should encourage
creativity and experimentation, which will lead to
learning and improvement.
- Constant review and feedback allow for change
and progress to occur.

To deliver an incremental working release of software


at the end of each iteration DSDM recommends the
MoSCoW prioritisation technique to prioritise
requirements to be worked on by the team during a
timebox. Requirements are typically captured in the
form of user stories.

7. Communicate continuously and clearly


- Bad communication often leads to project failure
and traditional non-agile approaches fail to address
this.
- DSDM aims to improve communication by using
frequent face-to-face meetings, visual
communication (modelling), advance releases of
prototypes and workshop sessions.

Daily stand-ups
- DSDM teams can fulfil this principle with several
methods.
- One way is to encourage team interaction through
daily stand-up meetings.
- These informal meetings allow the team to meet
and discuss issues or ideas together.
- Facilitated workshops are also an effective way for
stakeholders to improve their understanding and
discuss requirements.
- DSDM teams commonly use modeling and
prototyping to further improve communication.
Modeling

- Modeling is a visual form of communication


utilizing diagrams.
- This allows for complex systems, designs and
products to be better understood.

DSDM makes use of prototyping by creating


prototypes of the product early in development, to
allow stakeholders to ‘test-drive’ early versions of the
solution.

- The idea is to build something fast, get feedback


quickly, and to break it sooner, rather than later.

Prototyping

- Prototyping means creating prototypes of the


product early in development, to allow
stakeholders to ‘test-drive’ early versions of the
solution.

8. Demonstrate control
- It is vital to keep control of the project.
- DSDM proposes that it is only possible to do this
by using a plan aligned to the project aims, with
both being accessible to the entire team.

Ensure progress is visible


- DSDM teams, especially the project manager and
team leader, can fulfill this principle by ensuring
plans and progress are visible to everyone.

Measure progress by delivery


- Also, progress must be measured by looking at
what has been delivered, rather than activities
completed.
- Timeboxing helps to control who is doing what
and when.

Summary
● The eight DSDM principles embody the principles
of the agile manifesto.
● The focus on iterative delivery, effective
communication, collaboration and continuous
delivery all align with the agile philosophy.
● Tools and techniques recommended by DSDM –
modeling, prototyping and workshops, timeboxing,
MoSCoW – are used by other agile methods.

Model of DSDM Software Development Process


Below diagram describe the DSDM life cycle:

● Feasibility Study:
It establishes the essential business necessities and
constraints related to the application to be designed
then assesses whether or not the application could
be a viable candidate for the DSDM method.
● Business Study:
It establishes the use and knowledge necessities
that may permit the application to supply business
value; additionally, it is the essential application
design and identifies the maintainability necessities
for the application.
● Functional Model Iteration:
It produces a collection of progressive prototypes
that demonstrate practicality for the client.
(Note: All DSDM prototypes are supposed to
evolve into the deliverable application.) The intent
throughout this unvarying cycle is to collect further
necessities by eliciting feedback from users as they
exercise the paradigm.
● Design and Build Iteration:
It revisits prototypes designed throughout useful
model iteration to make sure that everything has
been designed during a manner that may alter it to
supply operational business price for finished
users. In some cases, useful model iteration and
style and build iteration occur at the same time.
● Implementation:
It places the newest code increment (an
“operationalized” prototype) into the operational
surroundings.
Advantages of DSDM
1. DSDM provides High level of customer satisfaction
from fast time to market and a high quality solution.

2. DSDM provides Low cost of ownership as the


process is efficient and effective.

3. DSDM provides Development teams with a better


work/life balance, with shorter hours and more time off
which results in enhanced productivity and creativity.

5.DSDM ensures a more predictable schedule and cost.

6. DSDM facilitates better control with increased use


of formal inspections.

7. DSDM provides more thorough testing.

8. DSDM provides Better team satisfaction, enhanced


morale and decreased turnover through the use of
teams that are co-located for all or most of their time
together.
9. DSDM facilitates early definition of quality goals
and processes.

10. DSDM facilitates more accurate project estimation.

11. DSDM requires shorter development time.

12. A major advantage of DSDM is that it has been


developed from a process which is widely used in
industry, with many companies across the world
successfully using the method.

Disadvantages of DSDM

1 . Need a disciplined approach to project management,


or it will fail.

2. Time must be allocated early in the project to


determine how much time each part of the project will
take, or initial estimates will be inaccurate.

3. DSDM Requires a relatively large number of


experienced staff. Which can be taxing and cause a lot
of hassle sometimes.

4. Time scales are very tight – five months from brief


to first working model.
5. It requires significant user involvement.

Agile Unified Process

1. Agile unified process (AUP) is a simplified version


of the rational unified process (RUP) developed by
Scott Ambler.
2. It describes a simple, easy to understand approach
to developing business application software using
agile techniques.
3. The AUP applies agile techniques including test-
driven development (TDD), agile modeling (AM),
agile change management, and database refactoring
to improve productivity.
4. A big part of agile software development and AUP
is being flexible and able to easily accommodate
changes and variations.
As in RUP, the AUP workflows go through four
phases:

5. The AUP iterations are required to be short (about


two weeks).
AUP Iteration consist of following activities

1. Model. Understand the business of the


organization, the problem domain being addressed
by the project, and identify a viable solution to
address the problem domain.
2. Implementation. Transform model(s) into
executable code and perform a basic level of
testing, in particular unit testing.
3. Test. Perform an objective evaluation to ensure
quality. This includes finding defects, verifying
that the system works as designed, and validating
that the requirements are met.
4. Deployment. Plan for the delivery of the system
and to execute the plan to make the system
available to end users.
5. Configuration management. Manage access to
project artifacts. This includes not only tracking
artifact versions over time but also controlling and
managing changes to them.
6. Project management. Direct the activities that
take place within the project. This includes
managing risks, directing people (assigning tasks,
tracking progress, etc.), and coordinating with
people and systems outside the scope of the project
to be sure that it is delivered on time and within
budget.
7. Environment. Support the rest of the effort by
ensuring that the proper process, guidance
(standards and guidelines), and tools (hardware,
software, etc.) are available for the team as needed.

You might also like