Automate ‘Almost’ Every Packaging Step

The packaging process should always start
with the end goal in mind. Let’s consider the following enterprise scenario
where both Windows 7 and Microsoft App-V are being deployed, and System Center
Configuration Manager is the deployment system. The packaging group’s preferred
process would be to ensure the following logical steps:

  1. Test an
    application package to ensure that it is compatible with Windows 7

    • If the
      application is Win 7 compatible then run App-V tests, and if those are also compatible,
      convert into an App-V package
    • Once done, run
      static test on the App-V package to ensure that it meets enterprise best
    • Then publish it
      to a deployment system to be sent for QA and UAT
  2. If the
    application is compatible with Windows 7, but not with App-V

    • Do not
      virtualize it, rather leave it as an installer package (MSI)
    • Run best
      practice tests and then publish it to a deployment system for QA and UAT
  3. If the app is
    not Windows 7 compatible

    • Either
      remediate it first before continuing to the next steps OR
    • If not remediable, look
      for an updated version of the application that can replace it

The above process is well known and has
been used for some time and is fairly manual in nature. There is nothing wrong
with the process except:

  1. Packagers
    are scarce and expensive and it is not easy to find qualified experts
  2. It
    takes considerable time for a packager to run through these steps manually
  3. Any
    steps that involve manual intervention heighten the risk of error

Therefore, automation is the key to
improving productivity as well as ensuring predictable results for the above
process and many others similar to it. The enterprise application readiness
process can easily be automated to a great extent using industry standard tools that expose automation API. Using
technologies such as PowerShell, scripts can be setup to call these APIs, make
decisions based on the output from each step, and complete the required
packaging steps in an automated fashion. This leaves QA/UAT as the only manual
steps. These manual steps are typically best performed by the application owner
who knows how to use the application and can verify its functionality.

Most enterprises have to deal with thousands of
applications when moving from one platform to another so it is essential to
apply automation standards to reduce cycle time and ensure predictable results.