views:

707

answers:

8

And how long would it take to complete (minus the graphics polishing)? Please assume it's being built in PHP. (Any compelling reason not to go with PHP?)

Many thanks, in advance!

A: 

If you get a team of web developers (around 2-5) and they work full-time, you can get a fully functionally site in about 1 month. BUT it's going to cost you alot of money. It's not easy to find successful and seasoned developers that aren't already working with companies.

I don't see why you can't use PHP to develop your site. It's easy and fast. However, you need a good framework and design so it's easy to edit, etc.

2 days is not possible for a site that's going to be big.

ggfan
GGFAN, thanks for your helpful reply. What are the best companies for senior developers in the New York City area?
Sophie
+13  A: 

I would imagine the answer to be several man-years of effort. The requirements are vague, so I can only give a vague figure - we don't know the full spec of eBay, the competencies/skills of the team you have, available infrastructure, budget etc.

But, whatever figure you get, you should probably double it. And double it again when reporting timescales and budget to management. And double it again, since the last 10% takes 90% of the time.

mdma
Thanks for the speedy replies! Code Duck, yours was particularly helpful, thanks very much! I've done some programming in the past + have recently designed a website that is way beyond my current skill set to bring to life as a programmer. It's not an auction site, but it shares many of eBay's characteristics. Do you think something other than PHP would be a better choice? (I've looked into Ruby and Java, but roads keep leading back to PHP.) Since I can't code this myself, I'm setting out to raise funds to hire a team. Your answers will help create the budget. So many thanks, once again!
Sophie
MDMA, thanks for your reply, too. Sorry for the vagueness. I hope to raise funds to hire a team, and your answers are helping with budgetary issues. Many thanks!
Sophie
Management can easily double or triple your time invested. If you're the end-decision maker, you can probably get this out quickly (months) if you don't change your mind on things after you start. Like others have said, this is years of effort and testing.
ScottCarmichael
Scott, thanks for your advice. I intend to gather a small, exceptional team of developers and work out of my apartment for Phase One. (I am the end-decision maker.)
Sophie
@Sophie the choice of PHP, Java, etc. should be left up to the tech design people. PHP is good for front ends and some database type work. It's not the best for everything. Many sites these days use a combination of PHP, Python, Ruby, and other languages.
Alex JL
Code Duck, thanks for your helpful recommendation.
Sophie
+1  A: 

I think many people are responding as if the original poster was asking for an exact duplicate of ebay. You can get a out of the box copy of an auction site up in half a day.

http://www.google.com/search?hl=en&ei=ZITfS5eYOpKW8ATGtIyQAg&sa=X&oi=spell&resnum=0&ct=result&cd=1&ved=0CBUQBSgA&q=php+auction+site&spell=1

No site is ever "done" not even ebay itself. Time spent on the details will always show through.

Getting your site to ebay stature will be largely a marketing issue as I believe was previously mentioned. Once your site is up and running, assuming it becomes successful, you will find scaling to be the largest technical issue.

RandyMorris
Randy, thanks for your reply. The site I'm referring to isn't an auction site, but it shares characteristics with eBay inasmuch as it's a social networking site with financial components. And yes, no work of art nor website is ever 'done!' Thanks again for replying.
Sophie
+4  A: 

If you mean ebay as in "basic auction system", you could get a very bare bones version running in less than a day. They're not hard.

If you mean "ebay" as in "make a complete clone of ebay.com's business as it stands today", you're looking at multiple years of work. The auction portion of ebay is actually the easiest of it all. You've got all the billing, management, fraud-detection, security, etc... systems to consider, and none of these can be dashed off with a few lines. You're not going to find something like:

<?php
require_once('ebay.inc');

$eb = new eBay();
$eb->go();

available out there.

After all that, the real question boils down to "why would you want to replicate ebay?". There's been plenty of contenders and they've pretty much all fallen by the wayside. Starting an auction site and getting it up to a critical mass of users (ie: having enough auctions that people would WANT to come to your place to look for things) will cost far more in marketing than it'll cost to develop it in the first place.

Marc B
I don't think he means an auction site specifically, but just using eBay as an example of a large-scale website that does a ton of stuff :P
Slokun
Slokun, you're right on target. I used eBay only as an example of a large-scale social networking site with financial components. Thanks.
Sophie
+13  A: 

There are two key points, here, that are missing from your question.

  1. Software projects are notoriously difficult to estimate before they are actually in development. The part that will take forever, I guarantee, is still an unknown.
  2. You will never be done developing. Unless you make a dying website, you will be adding new features, fixing bugs, or tackling scaling problems as long as you're in business. If you are ever, "done," 99.9% of the time, you're wrong.
  3. The language doesn't matter. Good developers will probably start with a reasonable choice (something familiar), and then add to it whatever other tools make sense. No large website is written all in one language, probably because no one language is good at everything. At the least, the language you start with will not determine your schedule!

What ends up happening is that you hire some number of people, say 3-5, and work for a couple months until you have the first thing that, "works." It really doesn't matter how they build it. At this point, you look at and sort the things you:

  1. Want to have,
  2. Need to have, and
  3. Might like to have.

and, based on your progress so far, you start pruning features down to the leanest thing that addresses your business agenda and that lets you release ASAP. If you don't release ASAP, your project gets mired. It's better to release something sub-optimal and work it out. Besides, you will not be a mega-hit as soon as you hit the internets, nor again will you ever be done developing.

You will release several stages of the product:

  1. You will get something publishable that solves your business problem and attracts your first tiny customers. It has been said that, "if you're not embarrassed by version 1.0, you waited too long." (Months, up to a year if you let odd features creep in.)
  2. You will find out that you're missing critical feature X, and scramble to develop that. During this time, you will also be fixing production bugs. (More months, up to 1.5yrs, maybe).
  3. If you're doing it right, you will begin hitting scaling issues. Some clever programmers (you've probably hired more at this point) will figure out how to make it work better for now. (Through 2-3 years.)
  4. You have some breathing room. You have started adding really cool features that aren't really core problems, but make people love you more.
  5. Serious scaling issues or market penetration issues. Something dramatic will happen, here, and nobody can guess what's coming.
  6. ???
Andres Jaan Tack
Andres, thank you for looking into my future! Hugely helpful. Here's a related question, if you don't mind: I envision hiring 1 lead developer, who'll then be charged with building a small team of developers (1-3) over the following 6 - 8 weeks. My goal is to raise funds to hire the best developers out there. It's a visionary site, + while its concept + user interface are simple (far simpler than FB), its back-end will pose challenges even to senior developers. If I want to hire the lead within 4 weeks of raising the funds, what salary should I be shooting to offer the lead + the team members?
Sophie
Developers, from bad to awesome, make anywhere from $50,000 - $120,000, depending where they live and what they're being hired to do. Experienced developers will have a number in mind, since they'll be coming from another job. I would ask them what it would take and go from there.Simple user interfaces are great (and very difficult). I like your hiring strategy, too. Good luck!
Andres Jaan Tack
A: 

The answer was provided combining the insightful and helpful replies from many stackoverflow folks -- particularly Andres Jaan, Code Duck, Scott C. and MDMA – so thank you all very much! These replies, combined with details about the project, lead to the following answer (for the website’s core application): 1 – 4 developers, 3 – 6 months; while php is a good choice for some areas, expect usage of multiple languages.

Sophie
A: 

Here's a helpful resource which describes "The Cone of Uncertainty" which describes the accuracy of estimation throughout the project cycle. Note that you're likely to be wrong by a factor of 4 at the beginning of the project.

http://www.construx.com/Page.aspx?hid=1648

I worked on an auction site that was competing against eBay in the late nineties. I was on the project for several weeks and it had already been running for a year or more before I was contracted on it. Mine was a minor role and the auction site was simple compared to today's eBay.

What ever the estimate is, it's a big number. If you talk about days, weeks or months then it's going to be nothing near the complexity of eBay. You need to think several man years.

Rimian
+2  A: 

To quote Gall's law:

A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.

You cannot expect to build a working system that is anywhere near the complexity of eBay without years and years of user feedback, testing, polishing, redesigning based on experience, responding to all the problems it would have been impossible to predict... if you try to build an eBay clone from scratch, it will crash and burn. Start with something simple, try to find a market segment that is not served well by eBay, and grow organically.

(Of course if by "site like eBay" you mean "any website where you can bid on stuff", you can probably buy and install a preprogrammed and preconfigured auction system in ten minutes. It won't even compare to eBay, but for a small company, it might be a good way to start.)

Tgr