When is the appropriate point to begin offering open source software in place of custom code to our clients? We’ve been a custom web design company for over 10 years, and we pride ourselves on being able to listen to client requirements and build systems to fit. However, that ideal seems to fall apart when what’s custom to us is commonplace in open source software. Any advice?
Generally, I only pitch open-source software to clients when the specific software actually meets their requirements. An easy way to convince the client is to explain the time and cost benefits associated with a pre-built solution, rather than re-inventing the wheel. You have to remember that it is not always necessary to have a custom software solution.
Granted, most of the time any pre-built solution does not meet a client’s requirements 100%, but in many cases it gets quite close. For example, for a website you might be able to suggest using Drupal, where you could then create modules/plugins (forget what the Drupal community calls them) for any additional functionality.
I hope this helps. It is the general rubric I use for my clients.
I don’t have a problem using open-source solutions, it’s pointless to reinvent the wheel. Unless your clients have requirements which can’t be met using those solutions, you may as well take advantage of them, after all it’ll help reduce your client’s unrequired expenses and your workload, great for both parties.
We’ve found it’s best to rely on stable open source libraries and frameworks with large user bases.
If it is well known and has many users, you will get much higher quality code than you could ever produce yourself, plus “free” upgrades and bug fixes from the community.
However – smaller “unknown” projects are often abandoned, which could leave you with quite a mess to clean up.
If your client requirements can be met with an open source application, then go for it. If they don’t meet, pay attention, you may think you just need to perform a minor modification to an existing software, but its code wasn’t written by you, perhaps it can take longer time to modify existing software, than to build your own from scratch.
Mike has a good point and I’ve seen it happen. Seemingly minor additions can become troublesome and take up a lot of time.
One of the downsides is if you’re working with an open source software package and you modify the source to suit your clients needs you have just removed yourself from the main version tree and if there were any frequent updates/patches before, you’ll find you can’t just install the updates or copy the patched files without verifying if any need to be updated based on the modifications you’ve made to the system. You may end up having to apply all updates and bug fixes by hand - copying and pasting and modifying code from the updated files.
I don’t hesitate to incorporate open source utilities and libraries (that I trust) into larger programs if the shoe fits.
But I find somewhat frequently that by the time I make the shoe fit, I could’ve re-written the script. With time and experience you tend to pick up on these bad apples sooner before they waste a lot of your time.