Saturday, December 23, 2006

Installer Driven Development (tm)

Ever been in a software development project with limited specification, tight deadlines, grief, pain, and suffering -- a flying albatross that just won't die. Your cure may just be Installer Driven Development (IDD). The concept is simple: focus on your installer package first and your code second. If this sounds entirely insane and counter intuitive then read on (especially if you've worked on software projects that suck).

A typical project scenario - a la Dilbert.

Day 1: Senior Exec has great idea for making money by selling a new software product to customers
Day 2: Senior Exec speaks to a few Senior Exec's he knows working at Customer sites who say they think its great (this is undocumented, unquantified, unqualified and turns into a solid business case by "the Power of Management")
Day 3: Senior Exec tells Middle Manager that customers are demanding Product X the solution to all their problems and that they need it by Y, and by the way this is vital to the company and he could gete promoted yadda, yadda
Day 4: Middle Manager has meeting with Tech team who say, "sure we're great we can deliver X by Y" and so that albatross starts its run up....

Now, days 1 to 3 cannot easily be altered as they are outside your control, but day 4 can.

Revised Day 4: Middle Manager has meeting with Tech team who say, "we are going to use IDD to ensure that we involve the customer, get the specification 100% correct and can deliver a demo that we can install on customer's machines for them to beta in time Z."

This has just saved Middle Manager's arse and he runs off excited to tell Senior Exec.

What do you do next - IDD?

1. Get a good installer program (Macrovision will do).

2. For you to install your demo you will need to know exactly what types of machine the customer uses, what browser, whether their IT department would install it, security, what other software they use etc. Get the Sales team to find out who the customers are and as many other important requirements as possible, point the Sales team at the Marketing team for all Sales "Collateral" add the tasks to the bug tracking system with weekly email reminders.

3. For your installer to look good you will require logos, help documents, links to websites, flash animations and a community website for your Beta customers etc. Get the Marketing team going, point them at the Sales team for all the customer profiles, feedback etc and add the tasks to the Bug tracking system with weekly email reminders.

4. You need to know how many versions of the installer are required (for the Lite version of the software, the Enterprise version etc). Get the Legal department to start producing the license agreement and software contracts, point them in the direction of Middle Manager for all pricing, product roadmap etc, add the tasks to the Bug tracking system with weekly email reminders.

5. Now you can either:

a) Sit back and enjoy the bun fight and write some code or
b) gather as much information from the different departments as possible, undertake all deployment testing and write a minimal Demo program that will be installed successfully from day 1.

6. Finally, ensure you provide regular progress reports to Middle Manager, highlighting the outstanding issues in the Bug tracking system for Sales, Marketing and Legal departments and point out that they have been given weekly reminders of their tasks.



Post a Comment

<< Home