Home > Error Management, Software Engineering > Why deployment of software is just like first impressions (very important)

Why deployment of software is just like first impressions (very important)

About four weeks ago, the team was busy working on Release 6.5 (no need for actual product names …).

Key metrics about Release 6.5:

– 200: critical defects addressed;  these were eagerly awaited by customers
– 10:  components refactored, which in turned helped achieve …
– 70:  percent of critical functionality covered by automated tests
– 5:  late nights addressing “fixed one defect, created several new ones” symptoms
– 1:  weekend spent polishing release candidate into gold image

The team was very tired yet happy.  Quality assurance engineers ran all certification tests with no errors.

It was finally time to send the new product release to customers.

This particular product is installed by the customer in their own environment.    Within 2 days, the customer support team began to receive telephone calls.  Within 4 days, every customer that received and tried to install the new product release had some problems, preventing the product from being used.

Actual customer complaints:

– “Installation failed.  Unable to determine the root cause”
– “Tried to start the old product release.  No longer starts”
– “Finally got the old release to work.   Lost 3 days – very unhappy”

But – the customer complaint which I thought carried the most valuable message was …

“If you can’t get the installation procedure to work correctly, how can I have faith that you fixed 200 defects in this release?”

That’s why customer first experience – or first impression – with a software product starts with the installation.

Even before the customer has a chance to appreciate how the new release addressed 200 defects, the installation has to work.  Yet very often, installation procedures do not receive the same attention as the actual software being installed.

Release 6.5.1 was quickly delivered with significantly better installation instructions as well as installation software:

– Ability to verify operating environment:  OS releases, required frameworks, directory structures.  Missing components were identified

– Ability to verify the installation of the prior software release

– Ability to backup the prior software release and create a restore package

– Ability to restart installation process in case of a failure

– Ability to configure all parameters using a configuration editor

– Ability to detect if the customer changed critical files, including databases

– Ability to verify the new installation

Software installation is indeed like a first impression.  Do not underestimate how important it is for the customer to expect and experience a flawless installation process.

  1. May 10, 2010 at 8:54 pm

    Good read, interesting insight!
    Will definitely rethink the way I deploy my solutions to clients.

  2. May 18, 2010 at 6:49 pm

    I suggest to refactor product and exclude as many things as you can that require
    * keys in registry (application should create keys if they didn’t exists)
    * specific paths (application should also create them)

    also try to pack all data (language files, images and etc) into single file (easy to copy during installation, easy to operate), minimize using the third-party components that look nice (special 3D buttons and etc) and allow to have 2 copy of the application in same environment.

    I assume that you create data system product, not game )

  3. Steve
    August 18, 2010 at 7:16 am

    How true,
    You missed one important thing if all else fails easy “Rollback” plan.

  1. May 18, 2010 at 6:41 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: