10 Commandments of Software Packaging

Prepare! Prepare! Prepare! But first, be sure to check out these rules to guarantee a smooth deployment of software across your enterprise.

System administrators have been packaging software ever since there have been microcomputers. That's because most system administrators have discovered that they're much better off creating a new, company-specific (repackaged) image of an application before releasing it into the network. Unfortunately, not everyone uses the same set of rules for software packaging and evidently, not everyone gets the same results.

One thing is certain, if you manage your software packaging processes in the right way, you will enjoy a lower total cost of ownership for your PCs. But how can you guarantee this result?

With some hard-won experience in the field, we've come up with 10 commandments of software packaging. If you use the following rules, you’ll learn to gain the full benefits proper software packaging can bring.

1. Prepare Your Packaging Environment
Too many people don't take the time to properly prepare the packaging environment itself. Keep in mind that a software packaging environment or laboratory should be architected, just like any other environment in your network. This means you'll need to put the proper tools in place -- tools such as an installation repository for all source software installations, a software repository for all packaged installations as well as proper troubleshooting tools.

In addition, use a proper database system to store all package information. Most software packaging tools come with the Microsoft SQL Server Desktop Engine, but MSDE has limitations that can negatively impact your packaging environment. Treat your packaging data as corporate data and implement a commercial database system with proper back-up strategies.

Finally, use representative systems to prepare and test your packages and implement proper re-imaging mechanisms to restore these machines to pristine states.

Software Packaging Webinar

Want to get more tips on software packaging?

Attend a FREE Web Seminar
"The 20 Commandments of Software Packaging: Practical Application of Software Packaging Best Practices"

When: February 16 at 1 p.m. Central Standard Time, hosted by Nelson Ruest and Macrovision's Steve Schmidt.

Registrants will also receive the "20 Commandments of Software Packaging" whitepaper for Free!

For information and registration CLICK HERE:

2. Use Proper Workflows
There's a lot to be said for getting the right people to do the right job during the packaging and testing process. Even if your packaging team is a team of one, you’ll need to make sure you use a step by step process for packaging and that you follow it to a tee.

If your team includes more than one person, then all the better, but then you'll need to assign a lab coordinator to oversee all preparation activities. In addition, you'll want to make sure that your testers are not the same as your packagers. This will help improve testing processes. There's nothing like a fresh pair of eyes to catch omissions and overlooked items.

Document and publish this workflow for all team members to see.

3. Collect All Project Data Before Beginning
Now that you're ready to sit down and prepare packages, make sure you have all information about the package in hand before you start. This includes information such as the basic installation instructions, the manufacturer, support telephone numbers for the manufacturer, target machines the package will be deployed to, items to include or exclude in the package and, of course, your own corporate standards for packaging and package preparation.

Armed with the right information, you'll be able to create your package on the first try.

4. Package for Windows Installer
We're lucky. Today, we have a standard installation system that can be used to support the installation of all packages and all software on your Windows systems. This standard, the Windows Installer (also known as MSI), provides enhanced installation management features including self-healing, standard file versioning rules, integrated deployment strategies and a standard format for the installation itself.

A major advantage of this system is that while not all vendors have begun to move their own installations to this format, many have and more are moving in this direction. Another advantage is that even if a software product does not adhere to this standard, it is relatively easy to use tools such as AdminStudio to repackage installations into this format.

Finally, using this standard means your staff only needs to be familiar with a single installation format.

5. Know When to Package
There are a lot of things you shouldn't package -- drivers, system components, Internet Explorer installations, hotfixes, service packs and so on. That's because they are either core operating system components or they use a format that is already packaged.

Document and publish all exclusions to your packaging process.

6. Repackage All of Your Software Installations
Don't rely on vendor-provided installs because defaults don't necessarily apply to the standards you apply in your network. Make sure you customize all your packages. Use the proper process for this. If the package is already in Windows Installer format, you should customize it, but only through transforms that are applied to the original commercial installation. If it isn't in Windows Installer format, then use a capture process to repackage it to this format.

Another key factor is that software packages are no longer only for PCs; you can and you should apply the same software packaging principles you use for PCs to servers as well.

Make sure your packaging team follows these standards.

7. Start with a Clean System
The last thing you want to do is package garbage. The only way to guarantee that your packages include only the contents they should is to use clean systems to both prepare and test the package. Clean systems give the best results because they only capture what is relevant and do not include any untoward components.

In fact, your lab should include one copy of each target machine in the network. It should also include disk imaging technology to speed the process of returning the target systems to a pristine state for each test.

8. Leverage Virtual Machines
Virtual machine technologies such as Microsoft Virtual PC 2004 and Virtual Server 2005 or VMware Workstation 4.5 and GSX Server 3.1 should be part of every packaging toolkit. Virtual machines emulate standard PCs and servers in most every way and are a lot easier to reset to a clean state. Virtual machines even include the ability to undo changes to their hard disks, making it very simple to return the machine to a pristine state.

9. Use Installation Monitoring to Repackage
There are several ways to repackage products. One of the most popular is the snapshot approach. Basically, this technique inventories what is on a system before and after an installation, capturing system modifications performed by the installation by identifying the differences.

A second and much more powerful approach is installation monitoring. This is a fast and accurate technique that actually monitors what the system does during the installation. Because of this, it is more efficient and can ensure better results than the before and after snapshot.

10. Use a Custom Package Template
As you work through packages, you'll see that they mostly fit into a series of categories. Each category will include repetitive tasks and will require the application of corporate packaging standards. The best way to ensure these standards are always applied is to capture them into a packaging template -- a model that is applied to the package at the onset of its creation. Templates are powerful tools because they allow you to capture and include expert packaging knowledge into them, facilitating the initial packaging process for junior packagers and freeing expert packagers for more complex packaging tasks.

There you have it: Ten Commandments that should go a long way towards making your packages cleaner and more stable, reducing the issues and problems that may arise when they are deployed. Learn them and make them part of your packaging strategy today. You'll see that together with the proper IPE, these commandments will help you control the total cost of ownership of software in your network.

About the Author

Danielle Ruest and Nelson Ruest, both Microsoft MVPs, are IT professionals focused on technologies futures. They are authors of multiple books, including "Microsoft Windows Server 2008: The Complete Reference" (McGraw-Hill Osborne Media, 2008), which focuses on building virtual workloads with Microsoft's new OS.

comments powered by Disqus
Most   Popular