views:

214

answers:

3

I am a web developer/programmer/freelancer. Most of my work involves developing custom web software. Occasionally, I am approached by a potential client looking for something similar to one of the “classic” business applications: CRM, ERP, CMS etc. Most of their requirements seem typical, but inevitably there will be one or two that are more complex or unique. My problem is where to go from there.

Do I recommend:

  1. A custom web app – this is my strength but is probably not in the best interest of the client if their needs can be met by options #2 or #3
  2. Open source software, possibly with modifications – there are many open source solutions to many problems. Maybe one of them meets the clients needs 95%. It would take some time to evaluate the all the options. Can I charge for this time? Even if it yields no results? How do I know how much to charge for the modifications that will get the software to meet the client’s needs 100%?
  3. Existing closed source software from some vendor – Maybe the ideal solution for the client does exist. How do I find it? Can I charge for the time it took me to discover this solution? Is there much incentive for me to recommend this choice?

Thanks.

+3  A: 

As almost always happens in these situations, the answer comes from the non-functional requirements: performance, security, maintainability, and so on.

If high performance, high capacity, or high security are a core requirement, then you may be best off with an existing commercial (or well-supported open source) application.

If it's the usual thing with a customer who isn't clear on the requirements and wants to fiddle until it's more or less right, go with a dynamic language and a framework: Ruby on Rails, Python and Zope/Plone (I can never remember which is which), Groovy and Grails.

If the customer is short of money, go open source, maybe with a LAMP stack.

Charlie Martin
A: 

What you recommend depends upon what the client needs vs. your knowledge of the market vs. your conscience. All options are valid, though mentioning CRM, ERP and CMS in one sentence suggest that you are heading for a solution bigger than anything you should build from ground up.

Getting 100% to the current target is not what a customer will see as success - once the product is introduced, there are a lot more desirable features, while others might have been demanded just to be sure - or the people demanding them have left the company. The real target is to get a product that is capable of being modified over the whole lifetime of the application.

That said - and still with just little knowledge about your precise problem - I'd head for a product where commercial support options exist. Choosing an open source or commercial one is not the question - usually you'll pay the money either for learning the open source project (maybe with consulting/seminars) or for licensing (probably with additional seminars or consulting)

And: Yes, of course you can charge for the service to observe the market and comparing the alternatives. If they ask you to do the work, ask them to provide the money.

Olaf
+1  A: 

A good approach that is a bit more targeted than some of the other responses is to: 1) gain as much personal familiarity with the various options and frameworks out there; and 2) ask targeted questions (at places like SO for example) for specific applications.

For example,

What is the best web-based project management solution you've used for a small-to-medium sized business that allows individual user accounts and the ability to export reports to a spreadsheet?

The customer wants a super-fancy stylized GUI and is willing to spend very little money until her financing comes through in three months.

If you get a lot of experienced answers, they will be all over the map (e.g., Some will say build it in Rails, others will say use a Content Management System, others might say just use Google Docs or Basecamp).

The bottom line: knowing where to start depends a lot on the specifics of the project itself, limited only by your personal skillset and time-willingness-ability to learn and get (reliable) advice from others who have been where you are now.

There are oceans of options out there.

dreftymac