Scheduling/Estimating
Controlling Software Projects: Management, Measurement and Estimation, Tom Demarco,
Barry W. Boehm, Yourdon, 1986 ISBN 0131717111
This guide for software scheduling and estimating shows managers how to organize software
projects so that they are objectively measurable, and prescribes techniques for making early and
accurate projections of time and cost to deliver.
Critical Chain, Eliyahu M. Goldratt, North River Press, 1997 ISBN 0884271536
Goldratt's original work, in novel form, on the Critical Chain method of project scheduling. The
Critical Chain method models the limitations and constraints on resources more effectively than
traditional planning methods, yielding more realistic schedules and more effective schedule
management. A controversial book with both fanatical supporters and disappointed detractors, it
should be read by anyone interested in one of the toughest problems of project management.
Critical Chain Project Management , Lawrence Leach, Artech House, 2000 ISBN 1580530745
The author combines current project management knowledge and practice with his own extensive
project management experience to extend the vision in Eli Goldratt's writings into a complete
guide on implementing critical chain project management and measuring its impact on project
success.
Estimating Software Costs, T. Capers Jones, McGraw Hill, 1998 ISBN 0079130941
Written by one of the pioneers in software estimating, this guidebook discusses the fundamentals
of effective software estimating, what tools are available, and how to handle real-world issues
such as creeping requirements and excessive schedule pressure.
Do all of the projects in your organization fit with your strategic plan?
Will your project portfolio enable you to meet your strategic goals?
Is there a structured process for selecting which projects will be pursued, to ensure
the most important projects are getting resource time and budget?
Are you sure the benefits of each project outweigh the true costs (including effort
hours)?
Does the senior management team, as a group, decide which projects will be
initiated, to ensure that the above questions are answered before a project is
approved?
If your answer to these questions is yes, then youre in the distinct minority and you may stop
reading now. If the answer to any of these questions is no, then youre reading the right guideline.
What Is Project Selection and Who Does It?
The questions just posed relate to project selection, the first phase of a Project Portfolio
Management process, sometimes called a project steering process (PSP). A project steering
process needs to be in place in order to manage the portfolio of projectsthe group of projects
that together will achieve the strategic goals of the organization in a particular time period.
The portfolio should be managed by the cross-functional team of senior managers responsible for
the organization meeting its business goals. Portfolio or Steering processes typically designate an
explicit group of these executives, referred to as a Portfolio Management Committee or Project
Steering Council, to guide the portfolio of projects from inception to completion. (A project or
program office can be helpful in providing the data and reports needed by the management team
to make sound portfolio decisions, but the accountability for steering the portfolio lies with
management.)
This diagram depicts the steering process as an overlay on project planning and execution in the
organization, with an explicit project selection process at the front end to control project starts.
The purpose of project selection is to decide which project ideas meet the first hurdle for
inclusion in the portfolio. The Steering Committees job is to apply strategic filters to their project
decision-making, to ensure that any project idea is truly worthy of proceeding.
Project
Selection
Benefits and
cost
investigation
Backlog
Queue
of
approve
d
Projects
Project Execution
Plan & Design
Project
Ideas
What are the overall benefits of the project and how important are those to the
business?
NOTE: This is not the time to look at detailed specifics. Youre merely trying to get a handle on
the overview of the projectthe big picture and major parameters.
Steps in the Project Selection Process
The Project Selection process starts with a new project idea and finishes when a projects fate
has been decided:
Business analysis What is the business case for this project? What are the
business requirements?
Market analysis What is the market for the product/service being proposed?
Product/service definition What does the end user need/want from a new or
improved product or service?
Process problem definition What is the process problem being experienced that
this project would address?
Such initial studies are typically undertaken by a small group of people commissioned to do so. A
full-blown project team has not yet been commissioned, because this idea has not yet been
approved as a funded project. Essentially the executives have simply approved a limited
investigation. Some companies treat this as a Phase 0 concept and feasibility period.
Step 3 Feasibility and rough project sizing to understand cost implications
Along with clearly defining the benefits, the steering committee needs to understand the feasibility
and cost side of the equation. Studies can be commissioned, again usually to be done by a small
group of people, to explore:
Problem analysis What are the root causes of the problem being experienced and
what are possible approaches to solving the problem?
Project sizing What would a full project likely cost in terms of time, resources from
various cross-functional groups, and other expenses?
The answers to these questions will allow the executives to determine whether the project is
doable and whether the benefits will outweigh the costs.
Step 4 Review of cost-benefit by PSC, approval to officially proceed, or start
Once the detailed benefits and costs of the project are known based on both the benefits
investigation and the initial project feasibility and sizing, the project is resubmitted to the PSC for
the next level of funding consideration. The PSC decides how to prioritize the project, and
whether to fund it immediately or not, depending on the resources available. It is at this point that
the project is allowed to officially start and move to the next level of resource commitment. The
early work has provided the initial sanity check that this project idea is worth pursuing further.
As noted previously, companies often use this initial selection or concept phase for a quick-hit
investigation with a small group of people, before putting an entire core cross-functional team to
work. The rationale is to sanity check the project idea quickly before tying up a full range of
valuable resources.
Once the small investigative team brings their results back to the PSC, the committee typically
lets the project move into a full kickoff or Initiation phase. A full core cross-functional team is then
assigned to go forward with the project idea, define detailed requirements, do more detailed work
on potential solutions, and create detailed project plans as decisions are made on the detailed
project and solution approach.
The PSC then should have another funding decision point as the official project team finishes this
more detailed work. While the early sanity check work during the initial project selection period
ensured this project was worth further investigation, sometimes other problems with the feasibility
and cost-benefit equation do not surface until the more detailed definition and work is underway.
The PSC should weigh in on the project idea again as costs and risks are further understood, and
ultimately approve funding for full project execution past the planning stage.
Why the Selection Process Makes Sense Resource and Cost Impacts Without It
In organizations without a defined selection time for evaluating proposed project ideasfor the
sanity-check concept and feasibility worka cross-functional team is formed and goes straight to
detailed investigation and planning on each project idea. There is no executive go/no-go decision
until a full project plan has been created.
The problem with this approach is that every team pursues time and budget-consuming work on
every project idea without the soundness of the project concept ever being evaluated by the PSC.
The organization invests resources in every project idea, even those that the PSC might
determine is has no interest inafter all that work has been done!
Another pitfall with this approach is that with so many ideas getting full-blown attention without a
prior sanity check, resources are stretched too thin across ideas that might not even be allowed
to move into full execution. Not only is this unfair to the team, it also undermines the resource
allocation process. Its better to evaluate each concept first and then decide if it warrants
investing resources to study it further and develop a detailed project plan.
A sound project selection process is the first step to developing a portfolio of projects that will
enable you to meet your strategic goals. If youre not convinced that project selection is important,
ask yourself this question, Why expend a lot of resources working on a portfolio of junk?
INTRODUCTION:
What This Is
Context diagrams graphically depict a system's boundaries, the information that flows in and out of the
system, and the other systems and people that will use it and benefit from it. Representing the system as
a single black box process interacting with its environment, context diagrams provide a picture of project
scope.
Context diagrams can be very simple sketches or detailed graphical interface specifications, depending
on what you need for a given communication or interaction.
Careful determination of system boundaries helps limit costs, decrease development time,
and improve system analysis and design.
Clear communication of the system and its benefits to other systems and people will help you
enlist appropriate stakeholders.
Approaching the system from the top-most level will ensure that your analysis makes sense
at a high level before you invest time developing the details.
In some circumstances, a simple picture is a better way to rapidly gain clarity than a written
specification. Context models are the simplest of all modeling diagrams and are easy to
sketch.
How to Use It
Use an appropriate level of detail for the circumstances. In a quick conversation with a stakeholder, show
only those details relevant to your discussion. When creating a comprehensive specification to begin your
system analysis, be sure to include all the details you can think of and use a rigorous naming convention.
Around the circle, draw one rectangle for each external entity (source or destination of
information or control). These can be either external systems or people.
Draw the data and control events that flow between the system and the external entities. Use
solid arrows for data and dashed arrows for control events. Label each arrow in terms
relevant to the business. Stay at a high level. Arrows should only go in one direction.
Show the diagram to potential users and other stakeholders. Check it against your other
models. Refine the diagram as you adjust project scope and system requirements.
Use additional notation sparingly. Stick figures representing external user roles or rectangles
that group related diagram objects may be useful, but adding too much stuff to the diagram or
using clipart shapes instead of rectangles confuses people.
represents a unique system behavior and use case. What would you call the two flows to
differentiate them?
What you leave off is as important as what you include. If something is outside the scope of
your system, leave it off the diagram. For example, if your invoicing system generates billing
information for the purchasing department instead of sending invoices directly to vendors, leave
the vendors and invoices off the diagram. Show the interaction with the purchasing department
accurately. When your stakeholders ask where the invoices actually are sent, then your
discussion about system scope can begin.
Do not show data stores on context diagrams.
On data flow diagrams, data stores appear as two parallel lines and represent data at rest (in the
sense that flows are data in motion). Usually they only appear on lower-level data flow diagrams
representing internal processes. However, some authors advocate using them on context
diagrams. We disagree. If the database is part of the system, it is hidden inside the system
boundary. If it is external to the system, it is just another external entity. Because most data
relevant at a system level is stored in databases with their own API, administrators, and
organizational stakeholders, they deserve the status of an external system anyway.
Represent people as people.
Classes of users are common sources and sinks of data and control information. All systems
have customers. In all current notations these are represented as rectangles like any other
external entity. But consider using UML actor symbols instead. This has two advantages. 1) It
makes it instantly obvious where people are using and benefiting from the system; this has
strategic political benefits to the savvy project manager during stakeholder negotiations. 2) It
allows you to correlate and cross-check your context diagram to your top level use case diagram.
Sketch informal, partial context diagrams on the spot, at every opportunity. This notation is
so simple; you can use it on whiteboards, spare copier paper, or even on napkins as you discuss
the system with stakeholders. Drawing as you speak engages your listener. Being able to quickly
sketch the system during a conversation greatly facilitates understanding and demonstrates your
command of the subject matter.
It
helps you
understand
requirements better.
their
Technical Support will read release notes and documentation and submit bug
reports.
System administrators will keep the system running and apply updates and patches
from the SCM system software vendor.
What are the SCM System Administrators doing? Theres some indication that they
are important to the system (or they wouldnt be on the diagram) but we dont know
what they need or what they produce. Are they really external to the system at all?
Why does the Technical Writer only have data flowing out? What information does
this role need to do their job? Are they expected to check in their work or submit bug
reports?
The Test Harness Automation Scripts apparently are triggered by a check-in event. Is
there other information required with this event, or does the Harness just go off and
run the same tests each time?
Are the Bug reports the Manufacturing Engineer generates really the same as the
Bug reports the Development engineer generates? Is the difference important to
the system?
The Project Manager requires Status and produces Prioritizationthis is far too
vague. We need more details about what information this role needs and how it will
use the system.
Are the Release notes produced by the Development Engineer the same as the
Release Notes produced by the Technical Writer? Are these identical to those
required by other externals?
The system apparently needs to interface with Development Tools in addition to the
Development Engineer. Is this simply an inappropriate implementation interfacing
detail or is this a legitimate separate connection that deserves special mention on the
context diagram?
The Manufacturing group doesnt seem to be very connected to the system. Are
there more things we can do to provide benefits to them?
The IT group is responsible for the system itself and its proper operation. Are they
really an external entity? If not, how do we represent their requirements?
Where is the customer on this diagram? Is our vision of the system too internally
focused? What affect will a Product Development SCM system have on our ability to
delight the customer and how can we represent this?
Where is senior management on this diagram? What benefits does the system
provide them? What inputs can they provide? Where is the business value flowing on
this diagram?
Compare it with your use case diagrams. Are all of your use case actors represented
in some way by external entities?
Compare it with your use cases. Each data and control flow should participate in a
use case. Are there use cases that require information that is missing from your
diagram?
Compare it with your data model. Does every flow correspond to one or more data
objects?
In all these cases, there may not be a simple, one-to-one correspondence between items in one
model with items in another.
Most importantly, revisit the diagram and keep it up to date with every project iteration.
USING CONTEXT DIAGRAMS
A context diagram is useful to the project manager in several ways.
show it to all your stakeholders, scribble all over it, and revise it. Put it up on the wall
of your projects war room. Sketch parts of it every time you discuss the system.
Identifying your dependencies. Any data source you dont control makes you
dependent on external, uncontrolled factors. Perhaps these should be brought inside
the system boundary as a risk-mitigation tactic. Perhaps you can delay the
requirement to use troublesome data sources, or eliminate them entirely.
Determining your development partners. External sources and sinks that cannot
be controlled, cannot be eliminated, and cannot be brought inside must still be
managed. External data sources are your supply chain. External consumers of data
are your customers. Visit the key stakeholders that represent each external entity and
make sure you understand their point of view.
Negotiating scope to control budget and schedule. Every arrow translates into effort
and time. Perhaps some can be eliminated. Perhaps an internal data transformation
or behavior can be moved out of scope if the data is already available from an
external source in the appropriate form.
Breaking down the system into subsystems. Multiple instances of similar data
might indicate the need for a subsystem to handle that sort of data.
Splitting up one product into several to form a product line. The diagram is a
generalization across the product line; not every system in the product may connect
with all systems or types of users shown in the diagram.vi
SUMMARY
Context diagrams use simple notation to depict critical information: how your system interacts
with its environment and the business benefits it provides. They are simple to sketch and clear to
non-technical viewers, making them useful during discussions with stakeholders. While one of the
older modeling techniques, context diagrams remain an excellent tool for communicating about
projects and controlling project scope, schedule, and budget.
ABOUT THE AUTHOR
Alan Zimmerman's 35-year career has included hardware and software engineering, system
analysis and business planning, project and functional management, technical writing, and
training development and delivery. And, along the way, he's thrown in a little rock-and-roll disk
jockey and improvisational comedy here and there. His research interests include the on-going
maturation of the software engineering profession and the intersection of business and software
development processes. As owner of Pragmatic Design Studio, he is using agile methods and
web technologies to solve problems in traditionally under-served markets.
viA Framework for Software Product Line Practice, Version 5.0 (retrieved 2008-12-04)
http://www.sei.cmu.edu/productlines/frame_report/productLS.htm