|
Solutions
Common Software Manufacturing Problems and the
ReleasePro and InstallPro Solutions FAQ
Some types of problems that companies face in
manufacturing software are so common that they can almost be described as
pathological within the industry. This FAQ organizes these confounding
questions by position in the company and describes the ReleasePro and
InstallPro solutions. Have you asked one, some, or all (!) of
these?
The Release Engineer's pain:
How can I automate the repetitive aspects of my job with respect to
creating software releases?
How do I track, compare, and diff releases?
How do I integrate release information with my SCM and defect-tracking
software so to satisfy the needs of development, SQA, and customer support?
How do I handle all of the above taking into account multiple active
branches/codelines as handled by my SCM tool?
When the list of files to be installed differ between releases, how
do I get the installation
software to safely remove those files that are no longer used from
end-user systems? How do I handle this when upgrading from some
previous release, and verify that it worked?
How do I handle upgrading files at install time that contain user
run-time data?
ReleasePro automates large and extremely complex release engineering
workflows using patent-pending technology. It is driven by simple yet
powerful ASCII based database files stored directly in the SCM tool.
These human readable files are release lists that record the exact files that
comprise a release. The syntax supports conditional statements and is
tuned to support multiple products comprised of multiple components comprised
of multiple files. ReleasePro guarantees that a release of your software
is correctly and exactly created every time, for any branch or codeline.
ReleasePro tracks each release by creating a release specific Bill-Of-Materials
(BOM) file. This information is stored both in the native SCM system as
well as the native defect-tracking system. ReleasePro integrates this
important workflow information with your existing mission critical tools and
provides utilities that can be easily invoked to determine differences between
any two releases.
With InstallPro, whether used stand alone or integrated with 3rdparty
installers like InstallShield, when the software release is installed, a new
BOM is generated. This new Bill-Of-Materials file securely records the
Digests of all the individual files as well as the BOM file itself. This
sealed and secure record of the install can then be used to validate the
integrity of the installation at any time.
Using the extensive and powerful integrations provided by ReleasePro, the
release engineer can easily and efficiently provide solutions to the
development, SQA, and customer support groups. The SCM system and/or the
defect-tracking system is employed by ReleasePro to automatically track each
release created. The release engineer will be able to quickly supply
automated real-time answers to such questions as:
Which release contains this defect repair?
Which releases have this defect fixed?
Which codelines contain this defect repair?
With ReleasePro, the release engineer will also be able to support SQA queries such as:
What files have changed between these two releases?
What defects have been added/dropped between this release and
that release?
What changes have been added/dropped between this release and that
release?
The above queries will require zero maintenance no matter how many releases are
generated on no matter how many codelines. The effort to support any of
the above is not a function of the quantity of the releases being generated.
With InstallPro, the BOM information is accurately handled at
install time. With this information available, either InstallPro or
the installer of choice (if it has been integrated with InstallPro
technology) can analyze the software environment of the end-user's system
before the installation begins. The installer can then warn the user
and/or report/log any integrity issues encountered.
InstallPro also knows exactly what files belong to any previously
installed release manufactured with ReleasePro and installed with
InstallPro technology. Unused files can be accurately deleted,
unchanged files can be accurately reused, and new files can be accurately
installed. In addition, InstallPro also knows such things as which
files contain user data. These files can be handled in several ways, one
being a 3-way merge between the original file, the end-user's modified file,
and the new incoming file.
The Developer's pain:
Which version of the software produced this release?
I need to test my change as a user will see it and I cannot wait for
the next nightly build - how can I make a release to test it now?
How do I modify the list of files that are included in a release?
ReleasePro provides an automated and tamper proof capability for creating a
release. Each release of the software includes specific SCM information
that identifies the release as well as identifies each and every file contained
in the release. No matter what release a developer is running, if it was
generated with ReleasePro, the developer will always know exactly which SCM
environment produced it.
Additionally, every developer can create a release in a similar manner to that
of the release engineer. A developer can invoke ReleasePro at any time
freeing them from the dependency and limitations of the nightly build.
Since the files contained in a release are located in human readable ASCII
based database files, a developer can modify the list of files contained in a
release using their editor of choice. Since this edit process is executed
within the existing SCM environment, any necessary Access Control Lists (ACL's)
can be implemented using that existing infrastructure.
The Project Lead/Manager's
pain:
How can I get my defect-tracking system to track releases?
How can I track which defects are fixed in which release?
How can I see if any defect repairs have been dropped from a release
before SQA discovers the regression?
How can I compare two releases in terms of software changes and
defect repaired?
As described in more detail above under release engineer pain, ReleasePro
provides the necessary integration between the release creation activity, the
SCM tool, and the defect-tracking tool. Depending on how ReleasePro is
configured, the release management data can either be automatically stored in
the SCM system or the defect-tracking system. Storing the release
management information in the defect-tracking system can lead to powerful and
integrated queries, such as "Which defects are fixed in which releases?"
and "What is the list of added/dropped defects?" between any two
releases. If the SCM system supports changesets, then with various
ReleasePro integrations the same queries can be run against software
changes.
The QA Professional's pain:
How do I see what has really changed in this release in terms of
actual files, software changes, and/or defects?
How do I verify that the release is intact - before finding out the
hard way?
How do I verify that the release was installed/uninstalled correctly?
How do I verify that the test system is correctly
configured?
The QA professional experiences many of the same software manufacturing pains
as the Project
Lead/Manager pain. With ReleasePro, the QA professional will always
be able to quickly and accurately determine exactly what files have changed
between any two releases (test loads) and with ReleasePro integrations, the
changes can also be accurately determined in terms of changes and defects
repaired.
With ReleasePro, the QA professional will always be able to tell if the release
is intact before installation. With InstallPro, the QA Professional or
anyone, including the end-user, will be able to quickly verify if the
release is intact and accurately installed.
Finally, the QA professional can use InstallPro to record test system
configuration data in a manner similar to a developer. This data can
then be used to validate test system configurations before time is wasted on
incorrectly configured tests.
The QA Manager's pain:
How do I configure the defect-tracking system to track releases so that
1) defects are logged against the correct release, and 2) queries can be
performed against releases?
One of the problems with the absence of a ReleasePro solution is that
updating the defect-tracking system with release data becomes a manual
process. For each new release that SQA can test, the defect-tracking data
must be updated so that QA professionals can log defects against the correct
release. Specifically, the defect-tracking system should provide users
with an active and accurate release drop-down list from which to select.
Not only does this maintain defect-tracking data at a high quality level but it
also removes annoying and costly overheads when entering defect data.
With ReleasePro, the defect-tracking system is always 100% up to date
with release information.
With accurate release data, the QA manager can perform the same queries that QA professionals can, namely "What defect
repairs have been added/dropped between two specific releases?", "Which
releases/codelines has this defect repaired?", etc.
The Customer Support Professional's pain:
How can I determine exactly what the end-user has installed?
How can I verify the state of the end-user system with respect to any
important or relevant software packages on the end-user system?
How can I quickly and accurately determine if the end-user has a
correctly configured system?
How can I quickly and accurately determine which version of the
software the end-user needs given the configuration of his system?
How can I figure out if there are any known issues with the software
given the configuration of the end-user's system?
With InstallPro, Customer Support no longer needs to spend time figuring out
exactly what the customer actually has installed or whether it has been
installed correctly. InstallPro or any InstallPro integrated installer will
accurately assess the state of the installed software and report exactly which
release has been installed as well as what patches have been applied. In
fact, for some Release Engineering Inc. customers there will be a desire to
make ReleasePro and InstallPro utilities and/or technology directly available
to their end-users. In such scenarios, customer support would witness an
immediate and dramatic drop in support incidence due to improperly installed
software, software corrupted by some other software installation or execution,
or software corrupted by viruses.
Additionally, InstallPro manages the compatibility and dependency information
for each release of the software. Customer support representatives can
quickly determine the "up to the minute" compatibility and dependency
information for the specific release the end-user is running. See Note1.
The Customer Support Manager's pain
Why can't development give the end-user the ability to automatically
determine if their version of the software is correctly installed?
Imagine the potential cost savings when ReleasePro and InstallPro allow a
company to provide their end-users with the ability to verify that the
installation of the software is intact and accurate! By making ReleasePro and
InstallPro utilities and/or technology available to the end-user, the end-user
is empowered to diagnose and repair a large number of install and run-time
error conditions without customer support intervention.
With ReleasePro and InstallPro, an
entire class of customer support incidents are handled without personal
intervention. Yet when personal intervention is required, the ability to
understand both the exact state of the end-user's system and the installed
software release on that system, means that once tricky and costly problems are
now easily and quickly solved.
See also the Customer
support FAQ section.
The V.P. of Engineering's pain (for a
Product Development Enterprise):
Why can't more of the software manufacturing workflow be
automated? I mean, they did it with automobile manufacturing, why
can't we do it with software manufacturing?
After spending all this money on SCM and defect-tracking tools, why is
manufacturing software still so difficult?
Why is determining the list of defects repaired in a release something
other than a simple database query that anyone can perform?
Why doesn't our defect-tracking system understand branches and
releases, and why doesn't our SCM system understand defects and changes?
Why can't there be a less expensive solution to solving end-user
installation requirements and issues?
Software manufacturing is different today than software manufacturing even 10
years ago. Today, manufacturing software requires more compressed
development cycles with many more real releases of the software (due in
part to such practices as rapid prototyping, iterative development, and extreme
programming, just to name a few). Even 24x7 automatic builds can flood
the release engineering department with 24x7 releases. Additionally,
today's software manufacturing is more about packaging separate and 3rd party
software packages into a single product then it is about writing the entire
product from scratch. These shifts cause more complex software release
problems.
ReleasePro eases this complexity in two vital and distinct ways. First,
ReleasePro fills the void for a tool that automates the actual creation of a
release. SCM tools, defect-tracking tools or call-tracking systems, do
not address this aspect of the software manufacturing problem. The
automation of the creation of a release is vastly more cost-effective and
accurate than typical manual or customized release processes.
However, the second benefit of ReleasePro may be even more compelling.
ReleasePro provides the missing link that allows for streamlined integration of
the individual tools, including SCM and defect tracking. Like any
lifecycle, a system runs smoothly only when all the necessary links are in
place. To date, efforts to integrate software manufacturing tools have
been cumbersome due, in part, to the lack of automation of one link - the
release creation. ReleasePro offers an alternative to the costly, custom
integration solutions many companies acquire via expensive consultants.
Given the manner in which the software manufacturing workflow has been
parameterized and how it has been implemented with configuration data, any
effective manufacturing workflow, including integrations, can be created and
inexpensively maintained using ReleasePro.
InstallPro provides the install time technology to leverage the data ReleasePro
provides. Existing install tools that do not contain licensed InstallPro
technology cannot match the assessment capabilities provided by
InstallPro technology. By having this data available at install
time, customer support is revolutionized. This means frequent, expensive
install and run-time problems once addressed by customer service become trivial
issues or can be avoided entirely because of end-user intervention.
The CTO's pain (for an Information
Technology Enterprise):
Why can't our installation software determine the state of compliance of
the target machine before and after a specific software package is
installed? How about on a per machine basis?
Why can't a software package determine if its installation
status has decayed to a non-compliant state?
Why can't a software package easily flag when it has been corrupted,
either by a virus or another software installation, or whatever?
For the Information Technology or Chief Operation Officer responsible for 24x7
mission critical systems, installing new software is one of the most risky
activities undertaken. Is the correct software being installed?
Will it work? Did it install correctly? These and other questions
are asked each time software is installed or updated. With
ReleasePro and InstallPro the software manufacturing process is automated,
controlled, and can be managed intelligently and inexpensively. The BOM
data will verify that the correct release is intact before installation,
that the installation has occurred correctly, and that it has not been
corrupted. The data provided by ReleasePro and InstallPro will organize
and maximize the ability to
determine that the incoming software is compatible with the target system.
For those enterprises that require bullet proof software manufacturing while
still achieving fast release throughput and low release creation times,
ReleasePro and InstallPro provide very robust commercial solutions. The
critical release workflows can be automated out-of-the-box while leveraging
existing investment in SCM tools and defect-tracking tools.
See also the
V.P. of Engineering FAQ section.
The End User's pain:
Why can't a software installation warn (or let me know) that it will corrupt or
compromise another software package before it is installed?
Why can't a software installation warn that it will not work after
it is installed because some other software package or file is the wrong
version, is missing, or is corrupted?
Why can't the software application verify that it was installed
correctly without requiring me to call customer support or to install it
again?
Many software manufacturers produce and test their software products with only
a limited number of end-users (system) configurations. Unfortunately,
once an end-user discovers a compatibility problem, or even a company's own SQA
department discovers a compatibility problem, most companies do not have the
capability to quickly record, track, and disseminate this information to the
end-user community. Usually, the purchased or downloaded software is
static in nature causing many software releases to continue to cause the same
installation and run-time problems for long periods of time.
With software produced by ReleasePro and installed with InstallPro or
InstallPro technology, even the oldest releases can warn the vast majority of
users that there will be a compatibility problem either before, during, or
after the software is installed. In addition, the software download can
validate itself before installation as well as anytime thereafter.
Therefore, if another application changes a shared file or an aspect of the
system, the original application can discover and report the problem.
If you are an end user that has experienced corrupted software installations or
software that does not run due to compatibility or dependency issues, ask the
software manufacturer to use ReleasePro and InstallPro or their respective
technologies.
Note1: compatibility
support is not available in the current release of InstallPro.
|