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.

  • | Home | Products | Solutions | Consulting | Downloads | Company | Contact Us | Whitepapers & Links |

    ©Copyright 1999-2008, Release Engineering Inc.  All Rights Reserved
    Home Products by Release Engineering Solutions by Release Engineering Consulting by Release Engineering Software Downloads About The Company Contact Info Links & Whitepapers