views:

132

answers:

4

I'm a dev in a company, and the software we make is something along the lines of a CRM, but highly specialized for the industry we're in, the company's workflow, and the particular network architecture we have.

I hear the following a lot from many business people that get their fingers on software and software development projects:

My boss wants to 'generalize the software we produce in-house a bit' and start selling it to other companies in our industry and in complimentary industries.

He's a good salesman (phenomenal actually), so I suspect that he'll be able to make the sale but I have always suspected that the reason many people/companies re-invent the CRM wheel is the same reason that there's already a million of them already out there: Almost every company has a highly specialized workflow and set of requirements that most, if not all, pre-packaged software can't simulate/accommodate without a large degree of modification.

So first, does my reasoning seem correct, and is all software 'generalizable' to the point where any company in the same or a comparable industry use it effectively?

[note: not sure how exactly to tag this: please feel free to]

+2  A: 

I don't think all software is sellable on its own. For example, how many people would buy an operating system for their cell phone without the phone?

For some big pieces of software like a CRM or ERP, there are tons of systems integrators for putting in a big system into a big company. Years are spent researching companies, options, and who has the best combination of features and price that there is quite a bit of money at stake here.

Some software can be generalized but there is a point where if it is too general that it takes a lot of work to make it useful, e.g. if there are 1,000,000 configurable options that all have to be set one by one that may be a turnoff for some. There is also something to be said for how software ties into other software, e.g. how does that CRM integrate with a type of RDBMS that the company already uses or integrate with the ERP the company just installed.

Just beware the Small But Rapidly Growing tale of woe from thedailywtf.com.

JB King
+3  A: 

It depends really what you mean by Generalizable. Suppose you're a programmer with Philips Consumer Electrics and you just implemented the new microwave programs with great new functionality. Now your boss asks you to make it more general so he can sell it to other microwave manufacturers. Yes. Really. Possible. Then he asks you to make it more general so he can use it as a CRM. I'd say no. But if your boss is really good at selling, he'll convince you in doing so.

The point is: this is really dependent on the market, how your current program was built and whether the investment in making it more "general" (which is a hollow word and actually means: stuff it with salable features) can be returned, the ROI so to speak.

There's a big chance that your boss, who's a sales person, sees the possibilities. It can be easily explained that he is right. It is much harder to show him the hard world of making software bulletproof and ready for the market. And one type of software that is notoriously bad for this is home made software. This is by no means an easy assessment, but before you know it, you'll find yourself rebuilding the whole lot.

The economics of in-house software is totally different then the economics of salable software. They live in two worlds and the magic word "generalize" will not bring them closer.

Unless you have made this software ready for the market to begin with, I'd suggest you prevent later disappointment and tell your boss right away that it's a bad idea. Ask him to choose between rebuild or nothing. If he chooses rebuild, go for it.

Abel
You don't really need to sign your answers, since your name and face show up below the answer anyway. You trying to free up your hyphen key or something?
MusiGenesis
haha, thanks for telling me. It's a habit. I'll remove it in my posts. The double hyphen get's special formatted in some tools of me, I guess my fingers have gotten used to it :)
Abel
A: 

They're basically the xMS (some management system) with respect to business software and, like you said, there are plenty of them out there. I think the reason behind the abundance of specialized ones is the fact they weren't researched beforehand (or someone wanted to write one from scratch).

While your boss has some good goals, the customers he selling to aren't only buying a software product but also support and that's where these ventures get real expensive. If your app isn't rock solid already (i.e., you're looking for something to do), it's not ready for prime time without [the number of developers currently] * [the number of companies you sell this to] more developers. Usually those salaries alone are well above what a company is going to pay for support...

Austin Salonen
+1  A: 

Very little custom software can be effectively generalized and re-sold to a broader market, for exactly the reasons you state in your question. Ironically, this goal of future generalization is probably one of the primary reasons why custom software tends to suck so hard, even in the context of the one company it was originally written for.

MusiGenesis