Conventional Software Management
Conventional Software Management
Introduction of Models:
(e.g. people) in such a way that the project is completed within defined scope,
control the project such that it is delivered on time and on budget. This
engineering principles will help reduce the risks associated with the project.
reasons:
Too often there is too much scrap and rework. The entire process is very
According to the 10th edition of the annual CHAOS report from The Standish
Group, only 34% of projects are completed successfully. While this actually
represents a huge improvement, there is obviously still room for more! Why
have things started to get better?
Project failure in itself is not the only reason why software management is so
important. When a project fails, not only is a product not delivered, but all the
management, even completed projects will be delivered late and over budget.
Example:
The 2004 CHAOS report, entitled CHAOS Chronicles, found total U.S. project
waste to be $55 billion, made up of $38 billion in lost dollar value and $17
billion in cost overruns. Total project spending was found to be $255 billion in
In 1994, The Standish Group estimated U.S. IT projects wasted $140 billion
$80 billion of that from failed projects out of a total of $250 billion in project
spending.
If the risk of failure and loss of money is not enough to convince you of the
also put the lives of people at risk. Go read Software Horror Stories or History’s
So why does software fail anyways? Here is the list from the IEEE Spectrum:
Stakeholder politics
Commercial pressures
Software project failures have a lot in common with airplane crashes. Just as
pilots never intend to crash, software developers don’t aim to fail. When a
cultural factors within the airline. Similarly, we need to look at the business
THE PILOT’S ACTIONS JUST BEFORE a plane crashes are always of great
project managers play a crucial role in software projects and can be a major
Bad decisions by project managers are probably the single greatest cause of
technical errors, but those can generally be isolated and fixed. However, a bad
Project management decisions are often tricky precisely because they involve
project will cost and how long it will take is as much art as science. The larger
or more novel the project, the less accurate the estimates. It’s a running joke in
the industry that IT project estimates are at best within 25 percent of their
turnover; not investing in staff training; and not reviewing the project’s
progress at regular intervals. Any of these can help derail a software project.
engineering fields is the fact that software is not concrete. There is a common
have the impression that making changes are always easy even though the end
which is definitely not the case. Code writing itself only counts for about 40%
The main goal of software project management is to try and reduce the risks
involved with a project such that the project can then finish on budget and on
Estimate the budget needed to complete the project before it starts and
to monitor the progress so that at any given time we know how much a
monitor the progress so that at any given time we know how much time is
Estimate which features can be developed in the given time and cost
frame.
Monitors the project progress and so we know which features have been
completed and which ones will be completed before the end of the project.
is taken for granted without much complaint that software has bugs,
complicated to install and use. Quality must be a given part of the scope;
of maturity
Waterfall model:
The waterfall model is a popular version of the systems development life cycle
model for software engineering. Often considered the classic approach to the
method that is linear and sequential. Waterfall development has distinct goals
mountain. Once the water has flowed over the edge of the cliff and has begun
its journey down the side of the mountain, it cannot turn back. It is the same
It is easy to manage due to the rigidity of the model – each phase has
In this model phases are processed and completed one at a time. Phases
do not overlap.
Waterfall model works well for smaller projects where requirements are
and change something that was not well-thought out in the concept stage.
This model is used only when the requirements are very well known,
Technology is understood.
Very less customer enter action is involved during the development of the
product. Once the product is ready then only it can be demoed to the end
users. Once the product is developed and if any failure occurs then the cost of
fixing such issues are very high, because we need to update everywhere from
requirements generation phase and the analysis phase. By this technique, the
program designer assures that the software will not fail because of storage,
succeeding phase, the program designer must impose on the analyst the
storage, timing, and operational constraints in such a way that he senses the
will be recognized at this early stage and the iteration with requirements and
preliminary design can be redone before final design, coding, and test
pro¬grammers.
Design, define, and allocate the data processing modes even at the risk of being
time, define interfaces and processing modes with the operating system,
procedures.
the system.
designers are willing to do if left to their own devices. Why do we need so much
designers, managers, and possibly custom¬ers. (2) During early phases, the
Do it twice
If a computer program is being developed for the first time, arrange matters
are concerned. Note that this is simply the entire process done in miniature, to
a time scale that is relatively small with respect to the overall effort. In the
first version, the team must have a special broad com¬petence where they can
quickly sense trouble spots in the design, model them, model alternatives,
forget the straightforward aspects of the design that aren't worth studying at
time, and/or management judg¬ment-is the test phase. This is the phase of
greatest risk in terms of cost and schedule. It occurs at the latest point in the
schedule, when backup alternatives are least available, if at all. The previous
before entering the test phase. However, even after doing these things, there is
still a test phase and there are still important things to be done, including:
1. Employ a team of test specialists who were not responsible for the
original design;
2. Employ visual inspections to spot the obvious errors like dropped minus
signs, missing factors of two, jumps to wrong addresses (do not use the
before final delivery. There are three points follow¬ing requirements definition
where the insight, judgment, and commitment of the customer can bolster the
about software is also its flexibility: The "almost anything" characteristic has
Three important analyses of the state of the software engineering industry are
1. Software development is still highly unpredictable. Only about 10% of
sched¬ule estimates.
process.
All three analyses reached the same general conclusion: The success rate for
soft¬ware projects is very low. The three analyses provide a good introduction
to the magnitude of the software problem and the current norms for
1. Finding and fixing a software problem after delivery costs 100 times
more than finding and fixing the problem in early design phases
no more.
maintenance
productivity
programming.
There are many descriptions of engineering software "the old way." After years
lessons and formulated many principles. This section describes one view of
Engineering" [Davis, 1994], The article was subsequently expanded into a book
[Davis, 1995] that enumerates 201 principles. Despite its title, the article
this wisdom, I believe some of it is obsolete. Davis's top 30 principles are quoted
provided later in this book would endorse or change it. I make several
1. Make quality #1. Quality must be quantified and mechanisms put into place
and schedule as early in the life cycle as possible. Until this understanding is
3. Give products to customers early. No matter how hard you try to learn
users' needs during the requirements phase, the most effective way to
determine real needs is to give users a product and let them play with it.
4. Determine the problem before writing the requirements. When faced with
what they believe is a problem, most engineers rush to offer a solution. Before
you try to solve a problem, be sure to explore all the alternatives and don't be
a This principle is a clear indication of the issues involved with the conventional
problem and the solution together until the problem is well enough understood
4. Evaluate design alternatives. After the requirements are agreed upon, you
specification.
2. The process used to produce the end product, in particular the ability of
their experience with the computer science issues and the applications
process
The relationships among these parameters and the estimated cost can be
written as follows:
software cost models) is that the relation¬ship between effort and size exhibits
result of the process exponent being greater than 1.0. Contrary to most
manufacturing processes, the more software you build, the more expensive it is
components, and processes. The required levels of quality and personnel are
assumed to be constant. The ordinate of the graph refers to software unit costs
(pick your favorite: per SLOC, per function point, per component) realized by
an organization.
The three generations of software development are defined as follows:
cus¬tom tools, custom processes, and virtually all custom components built
built
improvement are not independent of one another. In each new era, the key is
data from actual projects are highly suspect in terms of consistency and
There have been many debates among developers and vendors of software cost
points
3. What constitutes a good estimate
SOFTCOST, and SPQR/20), CO COMO is also one of the most open and
cost models (such as COCOMO) has been described as "within 20% of actuals,
rather than top-down (estimating the "should" cost). Figure 2-3 illustrates the
pre¬dominant practice: The software project manager defines the target cost
of the soft¬ware, and then manipulates the parameters and sizing until the
target cost can be justified. The rationale for the target cost maybe to win a
The process described in Figure 2-3 is not all bad. In fact, it is neces¬sary to
analyze the cost risks and understand the sensitivities and trade-offs
associated with achieving the target costs and to discuss this information with
other stakeholders.
team, development team, and test team accountable for performing the
work.
a mature cost model with an experience base that reflects multiple similar
projects done by the same team with the same mature processes and tools.