So, websites are expensive. What can be done to lower the price? Plugins? Packages? Open source?
I had a call with a potential client yesterday, we’ll call him Joe. Joe asked about a site that was essentially a mix between Yelp and Reddit for a niche market. He wanted a “quick quote” on something like that. Not having more than a one page description and a short conversation about his vision, I could see this was going nowhere fast.
I tried to explain the reality of web development and before we ended the call he said he was hoping to just customize plugins that were already written. I told him I’d look into it and quote him a lower price if we found any that would work, but truth is, that isn’t likely.
Joe is right, sometimes you can build a great technical solution cheaper when the following rare development event occurs:
- Finding the perfect piece code already written
- Finding it on the platform of your choice
- Finding the perfect developer with…
- Enough experience to leverage it for the long-term benefit of your company
Let’s loosely define packages as any code snippet that can be easily included in your code base to add functionality. This would include everything from jQuery plugins to Linux packages.
Packages have their place and I’d NEVER recommend writing code that has already been written. The problem is that most packages have two flaws, (1) they’re not written well, or (2) they don’t play nice with other code. So, we have to be thoughtful about the packages we use.
The rule of thumb I use to decide when to leverage a package is:
- Yes, if the functionality isn’t core for my business
- Yes, if the the functionality is ubiquitous (i.e. many if not all site needs code similar to this)
- Yes, if the package is widely used
- Yes, if the code is written well
I’d have to say yes 3-4 times to even consider it.
I have no doubt that we’d leverage several packages to reduce the cost of Joe’s website, but at first glance it seems unlikely that someone has built the Reddit/Yelp functionality that fits all the criteria mentioned above. For example, this functionality seems core to his business, and this functionality is not ubiquitous.
What is the worst that could happen? I’ve seen it time and time again, companies hack solutions together only to uncover hard to solve bugs and integration problems with existing and future features. In the end, most re-write their core functionality from scratch at great cost.
Packages paint you in a box, so you better really like the box before you get in.
You’re probably getting a sense for why I call it a rare development event.