Introduction
The focus of this paper is on software development that flows from the corporate
requirements of information system (IS) departments working in the public and
private sectors. IS departments are typically created to serve organizations
that range in size from medium to large. Unlike other areas of software development,
such as "shrink-wrap" or "commercial-off-the-shelf" software
development, the needs of IS departments are to maintain, enhance or upgrade
existing software systems, or respond with entirely new software to satisfy new
corporate business initiatives.
Their operating environment generally includes a variety of stakeholders with
differing goals, a lack of stable requirements, and is often subject to ponderous
management direction. However, the software development programming itself is
not necessarily done "in-house". Instead, these services may be acquired
from outside suppliers under contract. This makes it even worse because the corporate
acquisition process may well be that of traditional capital project acquisition
based on a fixed price quotation for a total product, even though the details
of that product are not yet entirely known. Thus, responding software developers
face even bigger hurdles.
Understandably, these service-provider developers cry: "Software development
projects are different! Software development just doesn't work the same way as
"regular" projects!" Well are they? After all, for all projects
time is linear and there is no "time undo" button to undo anything
not to your liking. The best you can do is go back and fix it.
And projects are essentially linear, too. That is, they have a start and a
finish "and a bit in the middle" as Professor Rodney Turner[1]
is fond of saying. So, what's the problem? The problem is that in spite of the
best efforts using some of the best methodologies, project software development
results are still disappointing in terms of cost and schedule. So, let's examine
some of the better-known methodologies in the context of software development-type
project management.
However, before doing so, we must first be clear on what constitutes a project
result that is "not disappointing". For this we turn to the definition
of "A well-managed project". "A well-managed project is one that
is optimized for effectiveness in its planning phases but emphasizes efficiency
in its implementation phases, that include commissioning, startup and close out.
[D02129]".[2] To this, in the case
of software, we should add something like "And, in the eyes of the customer,
is perceived as satisfactory in use. "
This definition has important implications for software project management.
It is about planning and control. That is, in a project life span that has four
major "generic" phases, in the first phase of "Conception"
you establish the "vision" for the product. You also justify the project
in a "Business Case" document that requires executive or upper management
approval before proceeding further. In the second phase of "Definition"
you determine content based on requirements, and develop a plan for execution
that you describe in a "Project Charter", project brief or similar
document.
This, too requires executive approval, especially since this approval will
set aside major funding for the work of the project. In the third phase of "Execution",
that is the actual software program development, you create the product, and
test and verified it for "customer satisfaction". In the final phase,
you transfer the product to the users, complete with documentation and any training
needed, and you formally close the project, following acceptance and approval
by the executive. We call this aspect of project management "Executive Control".
Along the way, you will inevitably encounter the need for decisions, compromises,
trade-offs and changes. To support sensible decisions, you should know the order
of priority of the four core project management variables of scope-quality-time-cost
and the level of risk associated with each. For example, in an air traffic control
system, quality would obviously have the highest priority at the expense of time
and cost. On the other hand, software designed to facilitate some public exhibition
must meet the opening date so time would obviously be at the top of the list.
An accounting or tracking system project, whose scope includes a number of features
of varying degrees of desirability, could be scaled back if limiting cost against
budget is the major concern, and so on.
In selecting a software development project management methodology, there is
also the issue of complexity. By complexity we mean the number of separate stakeholders
you need to satisfy and/or the number of system elements that you have to integrate.
It is against this background that we examine some of the more popular project
management methodologies.
1. Rodney Turner, author and editor of The International Journal of Project Management, and Professor of Project Management at Erasmus University, Rotterdam
2. Project Management Guidelines (Private BC Corporation), 1995, Wideman Comparative Glossary of Project Management Terms v3.1, 2002
|