The pages presents some of the major QEF advantages.
|What is Software Construction?|
The Software Construction process controls and manages the assembly,
processing, and fabrication of software components, usually initially
in the form of source code or third party files, into the user's
software products and deliverables. These processes are greatly
complicated by the size, complexity, and volatility of modern software
systems. Software products that are constructed from tens of thousands
of source files are not uncommon. Some of those files or their
products will be processed hundreds of times in a year.
In the introduction, software construction is compared to the production of automobiles. It could also be compared to the construction of a building. The blueprints specify how the finished building should look, the materials used, the functions the building must perform, the labour needed for construction and completion.
Software construction differs in that a building is produced sequentially. First the hole is dug, the foundations laid, the building constructed floor by floor, and finally the roof put on and the finishing touches completed. Not so with software. The process for building software must simultaneously take all sorts of materials in the form of files, such as datafiles, and processes, such as the build management, using tools, such as compilers and installers to pull together and manage the process to produce the product, vastly complicating the process.
QEF pulls together and manages these processes.
But QEF's approach to
automating software development processes has taken software
construction a step further. While the competition automates the
versioning system in the process, it leaves the rest of the process
mainly done piecemeal. There is no overriding management system as
there is with QEF.
|The Advantages of QEF
QEF was developed to handle large scale software engineering projects
to be run on many different platforms and to be well integrated into
the software process.
Much of what the software development world uses for constructing software is based on software developed thirty years ago. For example, the tool used in the "build" process is called "make" first written in mid 1970s to build small projects. It is fine for small projects, but make and its many clones and variations are now being applied to the large, complex and difficult world that now exists for most software development process.
Make requires written custom scripts to make it usable for a project. (QEF requires some.) As project complexity increases, more custom scripts are necessary. Much of these scripts are inconsistent, ( programmers all program differently), not portable (they must be rewritten for each application), and they are poorly documented. Some things get missed. Many processes must remain manual.
The result is that developer time is grossly wasted at great expense to the company. The costs in time and money of producing the additional software to make this tool usable is rarely calculated into the estimates for the project. Is it any wonder that projects are consistently run over time and over cost? And this is, in part, the result of using just one outdated tool, poorly documented procedures, and inconsistent approaches.
In the year 2000, it is time for companies to automate their builds. This is what QEF provides. QEF is fully documented. It provides a framework in which to build applications. It has a complete set of processes for all stages and aspects of building a project.
Builds done with make need about 90% additional custom scripts to
work. In contrast, QEF supplies 90% of the work in building, needing
maybe 10% in custom scripts.
|The Same System Everywhere
One of major advantages of QEF is that the same build scripts
are shared by all systems.
Switching platforms does not require any significant changes.
Furthermore using QEF for all projects eliminates the difficulty
of moving developers from one project to another.
There's nothing new to learn as the approach and interface will be
||All You Ever Say is QEF
One eminent expert in Software Engineering has stated that
he thinks the major advantage of QEF is that
"all one ever says is qef".
Nearly all aspects of a project's processing can be managed using QEF,
thereby providing consistent, convenient, and effective interface
for the all people concerned with a project.
||From 4 Days to 7 Hours; Any of the Team Can Do It
Because of QEF's efficiencies, QEF can reduce time spent on
the builds themselves, as well as on the preparation for the builds.
For example, at a medium sized software house with over 100
developers, a large body of software evolved whose construction was
controlled using Imake, one of the make clones. The total build took
four days. It was difficult to manage and poorly documented.
Different parts of the build procedure were known by different people.
If one person was sick and therefore not at the office, the build
could not proceed. With QEF in place, the build now takes seven hours.
Because of QEF's automation of the software construction, building the
product has become a simple, standard procedure which can be executed
by any of the team, for the entire product or subsets thereof.
||QEF Copes Well with Change
The software industry is volatile and fast-paced. Customers of the
software products want to be able to get customization quickly and
easily; they expect turnaround for their requests in a few days at most.
This creates tremendous pressure on the software development team.
Because of the complexity of software today, one simple change could
have far-reaching consequences in many different parts of the software
With no other tool is the developer respond to the possible changes
and implications and consequences to the product as well as with QEF.
Its approach to ensuring that a product is consistent and reproducible
is complete and efficient.
Accordingly to one developer, QEF makes it easy.
|QEF Provides the Needed Framework
Too many software development companies are concerned about individual
tools for developing and producing their software.
One engineer likened this to getting all the organs of a body correct
without remembering the body, the framework in which the
organs must operate.
QEF is that framework.
It oversees and manages the various tools.
It automates many features done manually today, thereby saving time and
money and developer aggravation.
||QEF Quickly Yields a Large ROI
It has been estimated that the loaded cost of a software developer
per year is at least $100,000.
Surveys of QEF users as to the improvement
in their effectiveness yield answers of 10 to 50 percent,
the higher values coming from release engineering groups.
Even using the low end estimate, a 10 developer organization
would effectively increase their staff by one developer
by adopting QEF.
||Release your Release Engineers
All organizations that have adopted QEF have been able to
substantially reduce the number of people who do release
engineering or to allow them to concentrate on other areas.
One organization actually had one manager to do all the
production builds, which consisted of seven projects on up to a dozen
different platforms (over 70 product configurations),
all launched with a single command.
A product manager at another organization stated that the improved
effectiveness and ease of the builds allows them to worry about problems
that they didn't even know they had before they started using QEF.
||Rolling Release Engineering
QEF allows an organization to attain the state of
Rolling Release Engineering,
that is the state in which the product is always ready for release on
demand -- gone are the days when you have to takes weeks if not
months to create a release, during which time development is
curtailed or hindered.
The other benefits of using QEF would be in having greater confidence
that what a company sends its customers as product is what it meant to
That which had to be done, was done.
(This is the literal meaning of QEF or Quod Erat Faciendum.)
The quality of production would be increased and if at a future time
the product which was sent had to be reproduced,
then that would be able to be done.
This is not the case with most software configuration management
systems on the market and is a very important feature in this
age of regulation.
As mentioned before, response time to a customer's change request becomes easy with QEF. This would give a company a competitive edge.
For further information see:
|advantages.qh - 1.14 - 05/09/23|