Practices
Supporting Iterative Development<title/>
|
Most practices in this
book support iterative development.
|
Most practices in this book support iterative
development, directly or indirectly. The following list includes
some of the more critical practices:
-
Practice 1: Manage
Risk
explains how to identify and prioritize key risks. Key
risks are used to determine what to focus on in the
next
iteration.
-
Practic 2: Execute
Your Project in Iterations
describes how to plan iterative
development and think about dividing up your project into a series
of iterations.
-
Practice 3: Embrace
and Manage Change
describes what changes to
encourage
and
discourage at what time within a project. Discouraging certain
types of changes late in the project is essential to manage risk
effectively.
-
Practice 4: Measure
Progress Objectively
explains how to assess progress better
through iterative development.
-
Practice 5: Test Your
Own Code
details how developers can approach testing their
own code holistically and includes techniques that will
potentially
participate in a broader test automation strategy.
-
Practice 6: Leverage
Test Automation Appropriately
describes how automating
appropriate amounts of the test effort can also realize improved
product quality and shorter product development schedules.
-
Practice 7: Everyone
Owns the Product!
addresses how all team
members
need to
orient
their mindset to enable effective iterative development.
-
Practice 10:
Prioritize Requirements for Implementation
shows how to
determine which requirements to address first to deliver customer
value and to mitigate key risks.
-
Practice 14: Manage
Versions
discusses how to manage the complexity of evolving
hundreds of artifacts as you iterate.
If you want to move toward iterative
development, these practices should be on your shortlist to
adopt.
Practices
Improving Your Ability to Manage Requirements
Problems with requirements management are often
quoted as a primary source for project failures. As an example, the
1995 Chaos Report by the Standish Group listed requirements
management issues as five of the top ten reasons for project
failure. A number of practices in this book will help you improve
the management of requirements:
-
Practice 2: Execute
Your Project in Iterations
describes how to plan iterative
development and think about dividing up your project into a series
of iterations, so that you can get feedback on the
requirements.
-
Practice 7: Everyone
Owns the Product!
addresses how all team members need to
orient their mindset to enable effective iterative development.
-
Practice 8: Understand
the Domain
describes how to document key aspects of the
problem domain to minimize communication issues and to increase
every team member's understanding of the problem domain.
-
Practice 9: Describe
Requirements from the
User
Perspective
outlines how to
document requirements in the form of use cases, scenarios, and user
stories and how to support your requirements with storyboards and
user-interface
prototypes
.
-
Practice 10:
Prioritize Requirements for Implementation
shows how to
determine which requirements to address first to deliver customer
value and to mitigate key risks.
|
No matter how good you
are, you will make many incorrect assumptions regarding
requirements.
|
No matter how good you are at managing
requirements, you will make many incorrect assumptions regarding
them, and the best medicine for flawed requirements is often
iterative development, because it allows you to showcase a partial
solution to make sure that you are on track. Therefore, also take a
close look at all the practices for iterative development.
Practices
Improving Your Ability to Do Architecture, Design, and
Implementation
A majority of people in most projects are
involved in architecture, design, and implementation activities.
Making these people more effective is hence of great value. The
following practices will help you improve in this area:
-
Practice 5: Test Your
Own Code
details how developers can approach testing their
own code holistically and includes techniques that will potentially
participate in a broader test automation strategy.
-
Practice 6: Leverage
Test Automation Appropriately
describes how automating
appropriate amounts of the test effort can also realize improved
product quality and shorter product development schedules.
-
Practice 7: Everyone
Owns the Product!
addresses how all team members need to
orient their mindset to enable effective iterative development.
-
Practice 10:
Prioritize Requirements for Implementation
shows how to
determine which requirements to address first to deliver customer
value and to mitigate key risks.
-
Practice 11: Leverage
Legacy Systems
provides information about reuse of another
type of asset, that is, how to leverage the many
valuable
assets
you have in your organization.
-
Practice 15: Leverage
Patterns
explains how patterns allow you to produce an
architecture more effectively and how patterns can be used to help
enforce the architecture.
-
Practice 16: Architect
with
Components
and Services
describes the benefits of
developing with components and services and explains how to go
about developing a component- and services-based architecture.
-
Practice 17: Actively
Promote Reuse
offers guidelines for how to enable and
promote reuse of assets.
-
Practice 18: Model Key
Perspectives
explains how models can help you understand,
communicate, and accelerate development.
|
Practices around
architecture, design, and implementation are
rapidly
evolving.
|
{% if main.adsdop %}{% include 'adsenceinline.tpl' %}{% endif %}
This is an area where practices are rapidly
evolving. New technologies help us architect, design, and implement
our applications more effectively, while innovative approaches to
design and implementation, such as agile approaches, make us look
at how we work from new perspectives.
Practices
Improving Your Ability to Do Testing
|
Testing needs to be
initiated early in the project.
|
Testers may be some of the most undervalued
resources in a project, often thrown in at the bitter end in an
attempt to raise quality. Throughout the book we have provided
guidance on how testing needs to be initiated early in the project
and to continue throughout the project. A number of practices in
this book focus on testing and quality assurance:
-
Practice 1: Manage
Risk
explains how to identify and prioritize key risks. Key
risks are used to determine what to focus on in the next
iteration.
-
Practice 2: Execute
Your Project in Iterations
describes how to plan iterative
development and think about dividing up your project into a series
of iterations, so that you can start testing early in the
project.
-
Practice 4: Measure
Progress Objectively
explains how to assess progress better
through iterative development.
-
Practice 5: Test Your
Own Code
details how developers can approach testing their
own code holistically and includes techniques that will potentially
participate in a broader test automation strategy.
-
Practice 6: Leverage
Test Automation Appropriately
describes how automating
appropriate amounts of the test effort can also realize improved
product quality and shorter product development schedules.
-
Practice 7: Everyone
Owns the Product!
addresses how all team members need to
change their mindset to take more responsibility for the ultimate
quality of the application you are developing.
-
Practice 20:
Continuously Reevaluate What You Do
offers guidelines for
how you can improve your working procedures by always challenging
what you do.
Testing is where the rubber hits the road. It
provides invaluable feedback on how well you are doing and allows
your
teams
to improve the way they work.
|