How to launch software the agile way

We've rolled out a lot of enterprise applications to a lot of users with a big critical launch date that can't move due to all of the communications and build up thats been sent to all staff and management. We have found that this is not the most optimal way to launch any new software within the enterprise or out to the public. In more cases than not this approach is just setting your self up to fail. In Aaron Swartz's post "How to launch software" he explains all too well the reality of what actually happens when software is launched with a big bang out into the public space. It's not pretty, as the public hits the application all at once as soon as its live crashing the application and servers and sending developers in to a tail spin ducking for cover to avoid the complaints and then trying to hack and patch holes all over the place.

The same thing happens in the enterprise, were new software is rolled out to large audiences of say 2000 to 10,000 employees. One nasty bug, crash or even just slow performance due to the intial swell creating a very bad first impression. In an environment where majority of the software is stuff staff have to use not want to use and basically view the software as just additional work to their already hectic daily work load a big bang launch could do more harm than good.

Using agile development methodologies based on an iterative approach new software and even upgrades can be released in stages as certain sections are available. There are a lot of benefits to this approach some being:

    - Smaller releases mean less bugs

    - Users can start the reap the benefits of the new section earlier (as most the most beneficial components of the software are prioritised and built first)

    - With each next release there is a new opportunity to communicate with the user based and reengage them into the software creating lots of smaller swells as apposed to the one big one

    - User buy in can be achieved by allowing them to provide feedback and suggestions for improvement based on their experience with each release of the software