Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There are a number of both open and close source off the shelf solutions. For example Magento has an impressive list of sites that use them for eCommerce. There are also stories such as this (only link to last section) where an eCommerce site is developed from scratch with great success.

I'm wondering if there's an objective way to approach the build vs customize decision?

share|improve this question
    
codinghorror.com/blog/2008/10/… –  Jim G. Apr 17 '12 at 20:52

7 Answers 7

up vote 8 down vote accepted

This question could be distilled down to a generic "should we buy or build" question.

My opinion is you should always be asking that question first, so you're on the right track.

There are many factors to be considered:

  • developers - do you have the people, can you get the people, can you keep the people?
  • features - how closely do the "buy" options fit the spec, are they customizable, can you hook into them?
  • Who's driving the schedule? do you have time to build?
  • business - do you know all the things an ecommerce system needs? is there potential that you won't think of something that the buy option might bring for free.
share|improve this answer
2  
Exactly. Figure out the cost and risk to schedule of DIY and compare to cost and risk of poor fit of the product. Also, don't assume the product = no dev, there will be integration to do. –  Steve Haigh Apr 13 '11 at 9:05
    
Good point on this being a generic build vs buy decision. Basically I'd have to be the one building it and I didn't want to waste client's time/money re-inventing the wheel if there was one that was good enough already. I've done a bit of ASP.NET development, but haven't had much experience customizing ecommerce solutions. I definitely don't know all the things an ecommerce system needs, it'd be an iterative process of delivering smaller features to the client quickly and allow them to determine direction. –  R0MANARMY Apr 13 '11 at 15:07

Speaking from experience the issue with many off-the-shelf solutions is that they try to do everything to everyone, and often you will find your business has some "quirks" that the package cannot handle. For example, I had a job at a small e-shop that had two different branded sites with different pricing for each (for retail and for government). There was NO off the shelf solution within my budget (which was basically $0 but that's not a relevant point) that could accommodate this feature in the way we needed other than having multiple databases with identical products except the price, which from a technical standpoint is utterly ridiculous. We also had a strict category structure that had to be imported and there was no solution that let us do it effectively; Magento for example had a very convoluted import feature that would have required us to enter some 2000 categories and subcategories by hand to get the proper hierarchy.

To summarize, it's more a choice between specific details of the nature of the business that dictates the answer. For a run-of-the-mill e-commerce shop that doesn't do anything out of the norm, an existing solution would probably work. Once you start to add additional business rules or unique scenarios, you run into requiring a ton of work to modify the existing package (due to it being unfamiliar code, and usually very bloated with layers upon layers of abstractions for various features).

share|improve this answer
    
Good point, this is another issue with the off the shelf ones I looked at. Multiple facility/business/pricing combinations are one thing that none of them really seem to handle very well. –  Brian Knoblauch May 23 '13 at 14:06

There is a very good post on it here http://www.getelastic.com/webinar-recap-the-new-ecommerce-dilemma-buy-build-or-leverage/ Despite it's been a while since this post was written it's still relevant From my point of view, the idea that you can find an "out-of the-box" solution for your company is rather an illusion. Every merchant in the market is competing with the e-shopping experience he provides to his customers. In order to succeed you need your visitor's experience to be unique. That's why many of the major eCommerce merchants (more than 50%) chose in house development.

Definitely, doing in house you want to reduce the amount of efforts and time to market. That's where you can use a framework as a starting point.

share|improve this answer

Most eCommerce systems do everything but make mounds and mounds of julienne french fries.

The first factor really is available talent pool, i.e. if you are .Net shop, then php or Ruby solutions are probably not the best way to go as your developers will face a pretty steep learning curve (that you will be paying for over and over).

Pick the top 3-5 rated systems and put together a list of the features each provides, then compare that list to what is needed for your project. Not only will that help eliminate some of the candidates, but it will give you a better idea of the actual overall scope.

Of the systems remaining, there are probably only 1 or 2 truly viable alternatives. Look at those and identify the areas that would need customization and put together rough estimates for that. Be sure to include extra time for fighting with their API/Controls/styling.

By now you should have a good feel for the effort needed to implement the desired features so put together a rough estimate for writing it in-house - be sure to include extra time for debugging. Don't forget the Admin pages - someone has to maintain that product catalog!

That should give you a pretty good high-level view of your situation and be enough to make a reasonably informed decision. My bet is that off-the-shelf/Open-Source will win out unless you have pretty simple needs.

share|improve this answer
1  
The one thing that the common off the shelf ones seem to fall short on are custom configurators. If you've got a highly customized product that you're selling, make sure the platform can handle your requirements! –  Brian Knoblauch May 23 '13 at 14:05

What is your business?

If you are in the business of ecommerce, then you should be concentrating on that aspect and outsourcing your development (by buying a ready-made solution, or customizing an already existing solution).

Otherwise, you're going to quickly find yourself split between running an ecommerce site, and running an ecommerce development shop.

share|improve this answer

It really depends on if you have the skills available (either from people you already work with, or external people you can get to work for you) to make a stable and secure eCommerce system. If you're not sure if you do, it's generally safer to go with an existing solution.

share|improve this answer
    
I'm more familiar with ASP.NET than other frameworks, but a lot of the stuff like user management and authorization is built in. There are third party packages available for order processing and shopping cards and whatnot. The requirements for this site don't involve things like gift cards, etc (which makes it easier). The site I want to make is very similar to fancydressoutfitters.co.uk, just different kind of stuff for sale (which is why I referenced the blog about building it). How customizable would you say various eCommerce frameworks are? –  R0MANARMY Apr 13 '11 at 5:39

Break it down

  • Do we have the time and/or money?

This is a simple one. Can you afford to spend months in development? In some cases it may appear easier to build when your shop utilizes technology X whereas most of the decent e-commerce systems out there are using technology Y. But in most cases it may actually be easier to take on the burden of learning technology Y. Consider the complexity involved in e-Commerce systems and ask yourself these questions, "Do I understand technology X enough to produce a secure, compliant, and functional solution?" , and "Can I deliver a scalable solution that will stand the test of time?"

  • What problems need to be solved?

Arguably the most important item in this list. What does your business need out of an e-Commerce solution? I worked at a company not that long ago that needed a solution that would allow for an insane amount of nested categories and product filtering that must adhere to very specific rules based on school district boundaries in the United States. Every business will have some sort of specific problems that will need to be solved and it is wise to sit down ahead of time and sort all of those out. Compare those needs to the capabilities of the top 10/15 pre-built e-Commerce solutions out there, and you will start to piece together a plan of action much more efficiently.

  • Capabilities?

Is you/your team of developers capable enough to build an entire e-Commerce solution. Commerce on the web is a complex topic, and will require well-rounded web application developers in order to develop a compliant, scalable, and working solution. You will require some form of Payment Gateway in order to safeley, and cheaply accept card data. Also understand that your business must adhere to standards set by the major card companies, and becoming PCIe compliant can be a hassle if you plan on building, and running the solution in-house. However if you have a capable group of developers and an appropriate amount of time, you will be able to build for your businesses needs, create a unique e-Commerce experience for you customers, and tackle problems much faster.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.