TMP3413
Software
Engineering Lab
Lecture 04:
The Development
Strategy
Development Strategy
The development strategy is the “big picture” view of
the development effort.
Development increments and builds.
General version content and freeze points.
Prototypes needed.
Integration and test strategy.
Devise strategy for doing the work that has been
planned in the launch step.
Create a conceptual product design.
Make a preliminary estimate of the product’s size.
Estimate the development time.
Revise the strategy if the estimated time exceeds the
available time until the work fits the available time.
TSP
requires that you make a plan before you
produce the requirements.
How to
plan??
Planning Before Committing
There are three reasons for planning before
starting a project:
1. In the process of developing a plan, teams gain
a common appreciation of the work they must
do.
2. The plan provides the basis for tracking the
work. This information helps teams to estimate
when they will finish and it provides early
warning of likely problems.
3. If they don’t start by making a plan and
reviewing it with their managers (or instructors),
teams end up committed to the managers’
date whether or not they believe they can
meet it.
Planning for This Course
You have been given a product definition and a fixed
course schedule on which to build it.
What do you
think??
Can you do the
job or not??
Developing a strategy is the first step to find out.
Start by making a plan – examine the job and tell the
instructor what you can do and how long it will take.
Planning for This Course … cont
The focus of this course is to expose
students to the methods needed for larger
projects.
Thestrategy and planning steps will take a
larger proportion of this project.
Therefore, students will get valuable
experience with the kind of schedule-
resource-requirements negotiations you will
face in the future.
In TSP, we have already made a basic strategic
decision:
We will develop the product with a cyclic process.
The number of development cycles was decided by
the instructor when the course was scheduled, but
the content of the cycles is up to you(student).
The development process starts with:
First cycle – you design, implement and test a basic
product version;
Second cycle – you enhance this product to produce
a second version;
Finally, if there is time, you produce a third product
version.
Conceptual design is the starting point for
project planning. The reason you need a
conceptual design is that you must make a plan
for building a product.
To make a conceptual design, we need to ask
ourselves these four questions:
1. Based on what I know, how would I build this
product?
2. What are the principal components I will need to
build this product?
3. What functions must these components provide?
4. How big do I think these components will be?
Must not be too detailed until it produce much
of the product design during planning.
Should produce the design concept and
general product structure, but leave any real
design work until you have analysed and
inspected the requirements.
Important info. on conceptual design:
Can estimate the product size and time required
to develop it.
Only a planning tool.
In establishing a strategy, we must:
1. Define the strategy criteria.
2. Determine the possible alternative strategies.
3. Identify the risks and benefits of each
alternative strategy.
4. Make a comparative evaluation of these
alternatives.
5. Make the strategic decision.
6. Document the selected strategy.
Something Something
that may RISK that may not
happen happen
Managing risks early in the project is
beneficial because most risks can be
avoided or controlled if you think about
them in advance and take adequate
mitigation steps.
Examples of Risks Students May
Face in This Course
Attempt to build too large a product, causing
student to run out of time.
Students encounter one or more functions
that they don’t know how to design.
Run into support systems problems that delay the
work.
The product may be so defective that
testing takes too long.
Students might lose control of the product or
product changes and waste time reconstructing
programs they have already developed.
The team may not be able to work
together effectively.
Managing Risk
For the risks mentioned earlier, effective
mitigation actions might include the following:
1. Too large a product. Start with a small kernel
product and then add functions in later
development cycles.
2. Difficult or complex functions. Prototype these
functions at the beginning of the project, when
you have time to consider alternatives.
3. Support system problems. Build an early
prototype or small product version to make sure
that you know how the support system works.
Managing Risk … cont
4. Testing Time. If you consistently follow the TSP and
use disciplined PSP methods, your product will
have few defects and testing will not be a
problem.
5. Product Control. It is easy for teams to lose
control of their products. This is why TSP addresses
configuration management at the beginning of
the project.
6. Teamwork Problems. If your team is having
trouble working together, discuss the problems
openly to see whether you can resolve them. If
the problems persist, get help from the instructor.
Reuse Strategy
Reuse @ Reusability – Definition:
The likelihood that a segment of source code can
be used again to add new functionalities with
slight or no modification.
Useful for managing risk in code growth of
software project, in which functions require
more code than expected.
This strategy can reduce the required
development effort, implementation time and
testing time (assuming prior testing has been
conducted to eliminate bugs).
The TSP Strategy Script
Entry Criteria
The instructor has reviewed and discussed
the TSP process.
The instructor has described the overall
product objectives.
Development teams have been formed
and roles assigned.
The teams have agreed on goals for their
teams.
The TSP Strategy Script
Step 1: Strategy Overview
The instructor describes the development
strategy:
What the strategy is, how it is produced, and
how it is used.
Criteria for an effective strategy.
The need for and ways to produce the size
and time estimates.
The TSP Strategy Script
Step 2: Establish Strategy Criteria
The development manager leads discussion
of strategy criteria.
The meeting reporter (quality/process
manager) documents these criteria and
provides copies to the team members and
instructor.
The TSP Strategy Script
Step 3: Produce the Conceptual Design
The development manager leads the team
in producing the conceptual design for the
overall product.
The TSP Strategy Script
Step 4: Select the Development Strategy
The development manager leads the team
in producing the development strategy. This
involves:
Proposing and evaluating alternative
strategies.
Allocating product functions to each
development cycle.
Defining how to subdivide and later integrate
the product.
The TSP Strategy Script
Step 5: Produce the Preliminary Estimate
The planning manager leads the team
through producing the preliminary size and
time estimates, which must include:
Size and time estimates for all the current-
cycle products.
Rough estimates for the products of
subsequent cycles.
The TSP Strategy Script
Step 6: Assess Risks
Identify
and assess project risks and
document them.
The TSP Strategy Script
Step 7: Document the Strategy
The meeting reporter documents the
selected strategy.
The TSP Strategy Script
Step 8: Update the Development Strategy
The support manager leads the team in
reviewing and updating the development
strategy.
The TSP Strategy Script
Exit Criteria
A completed and documented development
strategy.
Completed and documented size and time
estimates for all product elements to be
produced during the next cycle.
Completed and documented estimates for the
products to be produced in the subsequent
development cycles.
Documented risks and issues.
Conceptual design.
Updated project notebook.