Many organizations greatly underestimate the cost of their approach
to the software process.
In part this is due to a common failure to recognize the following
characteristics of software construction.

The Problem

Volatility

Modern software methods and modern computer environments have greatly
increased the frequency and speed of changes to software products.
Keeping a software product up-to-date and maintaining control
has been made significantly more difficult.

Volume

Modern software projects are produced from thousands of source files
and large volumes of third party products rendering the management
of their production difficult and complicated.

Urgency

The increased competition in the software market and the emergence
of the internet as a marketing, sales, and distribution mechanism
has substantially increased the need for quick response to the
changing market place.

Complexity

Server/Client systems and internet solutions are just examples of
modern systems that involve the integration of large numbers of
programs and datafiles.
Products consisting of thousands of files are not uncommon.
Managing such products and ensuring their consistency has become
exceedingly complicated without a comprehensive approach.

Inadequate Tools

Most organizations are using tools that were initially developed
25 years ago and were not designed to deal with the large scale
software systems of today.
Measures to compensate for the inadequacy of the tools lead to inefficient,
complicated, poorly understood, and poorly controlled home grown
solutions that do not scale well and are inconsistency applied.

Poor Training

As most organizations must be aware, it is difficult to find good
programmers and unfortunately the training they have received does
not prepare them well for the realities of real software production.

Poor Standards

Few useful standards exist that can be applied to improve the
software process.

Lack of Concern

Quality assurance and configuration management are often considered
low status positions and hence usually not staffed by senior or
experienced staff.
Many organizations do not dedicate sufficient resources to QA and CM
as other aspects of the projects have first call and get the
lion's share of the resources.

Regulatory Requirements

Clients and regulatory agencies are demanding that software suppliers
improve their process to ensure reproducibility and confidence in
the reliability of their process.
Given the above problems, these demands are difficult to achieve.

the process often involves far more processing
than is required due to poor build architecture.
Developers often have to build far more than should be necessary
to test their changes.

Incomplete Builds

complicated process often leads to missed
phases and processes

Inability to Rebuild Reliably

poor build tools make it difficult to guarantee that shipped product
can be reconstructed as it was when shipped.

Difficulty Porting

the build process is often difficult to adapt to new platforms

Version Skews

the build process does not guarantee that version inconsistencies
cannot arise

Build Gurus

complicated build processes often lead to a dependence on a few
individuals who have the necessary knowledge

Non-transferable Staff

inconsistent build processes across projects prevent or complicate
the transfer of staff from one project to another

Lost Opportunity Costs

inefficient complicated builds lead to missed opportunities

So How's QEF Going to Help?

Based on a survey of QEF users, an organization can expect to realize
a 10-15% productivity improvement from their software development
group.
Some users have claimed improvements by as much as 50%.
If an organization has 100 developers, usually costed at $100,000 per
year each, even a 10% improvement would be a savings of $1M per year.
Also, the lack of consistent, comprehensive processes leads to lower
quality products, wasted time and effort, and lost opportunities.

Who uses QEF

Anyone who wants to be able to manage their software process
reliably, completely and correctly can use QEF to achieve that goal.
The QEF Software Process Automation System is useful
in projects as small as a few files and as large as many thousands of files.
With its sophisticated auditing and logging it particularly appeals to
industries that have strong regulatory requirements or need to meet standards
like ISO 9000.
Yet QEF's efficient facilities for organizing and controlling
software construction makes it popular in even single developer
operations.