> * Trying to use one off contracts as a way of building resellable products
Can you tell me why? Sometimes, asking a client for 50k instead of 80k with a "spin-off" agreement can pay to both parties. The client can get long-term support with new features without the need to pay for it.
1. Building a product for a specific client takes less time than building a configurable generalized product that you can sell to others. The business may be willing to take a $30k haircut as in your example, but are they also willing to have development take 50-60% longer (and the additional financial costs of that)?
2. Once it's a generalized product, how will that first client feel about being told that a new feature they want won't be built?
3. As a corollary to #2, the first client will also look at it as something they purchased, not a service that you now offer to them. They'll demand things and the business will need to have the fortitude to tell them no, and most businesses can't (or won't) do this.
It's very hard to get a scenario like this to work out where people are still happy with the arrangement 2-3 years in the future.
In my experience, often the product ends up being molded to fit the particular client (it's custom software, after all) and then the cost of altering it for other clients is perceived as too steep. Or you end up with a bunch of similar, incompatible projects.
This was the one that really struck a chord with me. You start of trying to take the product you created for one specific client and then generalising it.
You end up, in practice creating a individual bloody application for each client.
(Not a coder, more a manager who created specs and tried to shield the coders from the worst of the shit-storm).
I agree that sounds like a reasonable approach - but in my working life it's always been seen as this fantastic wheeze of 'let's charge one customer to build something and then go off and sell it to everyone else!'. It seems like a great idea, but the usual story is that either making it generic burns up days that would otherwise be spent meeting the specific customer's requirements, thereby ensuring a worse product, or you stay on track with the customer's requirements and ditch the idea of making it generic as soon as days get tight.
This is one of the things that always makes me groan, along with 'and you can learn x technology along the way!' >:|
Out of the blue, I was once expected to set up a recording studio and learn the electrical engineering side of things 'along the way! You've got the afternoon, in addition to your normal duties.' My background is in CS, not physics or engineering, so you can imagine how that went - and of course, the manager wasn't to blame.
Sometimes it can work. More often it starts innocently and mutually as you describe, but it very quickly becomes a game of firefighting and drains innovation within the product line. Next thing you know, you're selling based on roadmap features and don't have control over your own product anymore.
Can you tell me why? Sometimes, asking a client for 50k instead of 80k with a "spin-off" agreement can pay to both parties. The client can get long-term support with new features without the need to pay for it.