As you may (or may not) know, I've worked at
several different software companies now, and it's dawn on me that many of the failures I've seen on projects have one thing in common:
The
Flag Ship Principle: A project is made or broken by its first customer.
I've seen several projects now where the
management hammered home the idea that the company needed a first customer that would act as a referal for all future customers. That is, we needed a "flag ship" customer for our product. The projects tend to play out as follows:
You have a product that's been developed in "stealth" (read: no income) mode for a while. Requirements are being spec'ed, specs are being implemented, implementations are being tested, and everyone's humming along as the company burns through venture capital...
...then sales announces the FLAG SHIP customer.
So what happens?
1. The customer requires features in your product it doesn't have, that you haven't planned on adding, and/or haven't even imagined such features to exist.
2. An deadline has been set without considering wheither or not your company has the resources to meet it.
3. As the deadline approaches, more resources are pulled off to complete the project. Last minute features are added, developers work later and later, service people are being flown to your customer's site around the clock, management is constantly doing a song and dance for the customer, all to prevent the customer from walking away from its contract.
4. At some point, corners are cut. Documentation is abandoned, features are left half-implemented in order to get the product tested and out the door. The product is tested *just* enough to ensure the product doesn't break out of the box. Specifications are fudged whenever possible.
4. Even if your company successful delivers your product to the customer, chances are the customer is less that thrilled with the results, you've burnt out your whole staff, you've fallen completely behind your orginal goals for the product, and you've ended up with a product that is unmaintainable long term.
So, what happened? Simple:
1) Your company's product did not meet the needs of your customer.
which leads to:
2) Your marketing and sales force having to do a song and dance in order to make a sale to get some income flowing into your company.
which leads to:
3) Throwing more manpower at the problem, which doesn't make the product get built any quicker. (See the wonderful book "The Mythical Man-Month" for details.)
which leads to:
4) Abandoning building the product in an organized fashion and let the quality of the product slip.
which leads to:
5) Lots of energy wasted throwing together a half-ass product that will be impossible to improve upon without major design.
So what's the point?
- That companies should stick to their business plans and not bend over backwards to land a customer? Maybe... however, if the company's business plan doesn't generate customers, it's a bad business plan. ;)
- Companies should design products their customers want? Sure... Companies should design these products is by keeping their customers in mind. Ideally, a company might approach potential customer s *before* developing their product and get feedback on features. Even better, this company might get these potential customers to turn into real customers and place orders for a feature copy of the product.
Of course, getting customers with a fully build product is hard enough, so asking companies to get customers for a non-existant product is difficult. Nevertheless, I wonder if these projects when awry because the customer wasn't kept in mind somewhere along the way.
My $.02...