Chpater2_AgileDevelopment
Chpater2_AgileDevelopment
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.
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.
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.
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
Prototyping
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.
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.
● 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.
Disadvantages of DSDM