Thursday, March 15, 2012

Software Distribution - What is does it mean?

Maybe you've seen job postings for "Software Packager" or "Software Deployment Specialist" or something like that and wondered what it's really about.  Maybe not.  Maybe you just don't care.  Maybe you're working in the IT industry, but you're not happy with your current situation.  Maybe you still don't care.  Maybe I don't care either.  No.  Forget that. I care.  I care enough to write this article and bore you to death.

Software Distribution / Deployment, is really about automating the process of installing software on multiple computers over a network.  That's it in a nutshell.  It breaks down into much more detail, but that's the 50,000 foot level overview.

What do you need to know?

First off, you'll need a pretty solid understanding and familiarity with the Windows platform.  The file system, NTFS, permissions, the Registry, Registry permissions, services, processes.

Secondly, you'll need a fair understanding of installing and uninstalling software.  Whether it's using MSIEXEC, or some setup.exe (InstallShield, Wise or homegrown crap), as well as dealing with components (DLL, OCX, etc.) and registration (REGSRV32.exe).  You should also be familiar with uninstalling and how folders and files are handled (or not) during the removal process.

Third, you'll need a fair understanding of basic scripting techniques.  Things like IF, THEN or ELSE are always helpful, since they imply a basic workflow logic, which is how all installers are constructed.  For example, "IF does not exist, then install it, ELSE skip to step 43..." and so on.  Whether you're more familiar with .BAT or .CMD, or .VBS scripting doesn't matter.  It's the same basic logic that matters.


Bonus:  InstallShield Editor, AdminStudio, (even Wise Package Studio, rest its poor soul).  WMI. Really solid scripting experience (BAT or VBS is fine).  Familiarity with switches for setup.exe installers.  Familiarity with common software installation options like Java Runtime (JRE), .NET 4, Oracle Client, SQL Native Client, Adobe Flash Player, Microsoft Office 2010, Adobe Acrobat Professional,

Command Shell:

  • REG.exe
  • REGSVR32.exe
  • CACLS.exe
  • DEL
  • COPY, XCOPY or ROBOCOPY
  • MD and RD
  • ATTRIB (rarely)
  • SC (rarely) or PSSERVICE *
  • TASKKILL or PSKILL*
  • Sysinternals (*):  PSLIST, PSKILL, PSEXEC, PSSERVICE
  • REGINI (rarely)
Tricks:
  • setup.exe /r (or -r), along with -S -F1, -F2
  • Extracting files from bundled installers (WinZip, 7-Zip, etc.)
  • Searching for installed components before installing them again

What tools do you use?

You will most likely use a mix of the following types of tools:
  • A computer with LOTS of memory and an extra hard drive
  • A virtualization product (VMware Workstation, VMware Player, Virtual Box, etc.)
  • A text editor (Notepad, TextPad, DevPad, Ultra Dev, maxipads, minipads, whatever)
  • A capturing tool (Flexera AdminStudio / Repackager)
  • A setup editor (Flexera InstallShield Editor)
  • A Transform editor (Flexera InstallShield Editor and/or AdminStudio Tuner)
  • AppDeploy.com
  • MyITForum.com 
  • Coffee or Red Bull
  • Sugary or Crunchy snacks
  • Music (with headphones)
  • A comfortable chair
What drives the work?

The business drivers come from various sources:
  • Cyclical upgrades (new version of the same product)
  • Cyclical updates (hot fixes, patches, etc.)
  • Windows 7 compatibility (not very often anymore, actually)
  • Configuration changes (enable/disable features)
  • New Products (purchased)
  • Allocation Changes (moving installation from user-to-user, or machine-to-machine)
Where are the opportunities?

Across the United States.  Even right here in Virginia Beach, Virginia.  In addition, the following locations have been solicited at me by recruiters over the past six months:  Arkansas, Oklahoma, New Jersey, Colorado, Florida, Maryland, Delaware, Ohio, Illinois, Rhode Island, Vermont, and Louisiana.  If you want to get spammed too, just post your resume on Dice, Monster, CareerBuilder, and watch the spam fly at you.  Make sure you update your resume accordingly first, however.

What are the advantages to this role?

Unlike many other jobs, software repackaging and deployment are often self-paced and self-managed tasks.  Very few positions will involve any sort of micro-management.  You are most often judged on the output results.  You'll get to explore the guts of Windows in ways you never imagined, but do so in a way that leads to a goal, rather than wandering around aimlessly.  It is indeed a learning experience.  A very interesting learning experience.  You will learn more about file system security (ACL's), the Registry, Registry data types and Registry security permissions, WMI, command line tools, Sysinternals tools, Windows Installer processing, user context, processes and tokens, services, and much more.

What are the disadvantages to this role?

The big-name software companies have very good resources for documentation, support, downloads, knowledge base articles, etc.  Smaller companies however, tend to suck at it.  You will spend more time on the little bullshit applications which were not packaged with a standard product like Wise or InstallShield.  These are also the source of the most common products that require repackaging (snapshot or monitoring).  Their phone reps (if they have any) will insist that all of their customers give all of their computer users full Administrator rights to their computers.  They will tie their products to bullshit pre-requisites and components which are outdated or code for things like "user must be 'Administrator', not AN administrator" and more idiocy like that.  You will smack yourself in the face enough times to use a good facial moisturizer.
Post a Comment