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.
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.
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.
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.
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
- Lack of Concern
Quality assurance and configuration management are often considered
low status positions and hence usually not staffed by senior or
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 above problems inevitably lead to the following problems:
- Complicated Build Procedures
- process to build products requires
magic knowledge and too many manual procedures
- Inefficient Builds
- 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
- 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
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