views:

217

answers:

6

I would like to say upfront that i am not a programmer. I'm 1 of 3 partners in a small start up. Two of us have a business and sales background, whilst the third guy is a very experienced Java Programmer/engineer (and a good friend).

As with most start ups we believe we'll be the next big website. We have found a opportunity that the "Long Tail" really describes well. By this i mean a product range that isn't currently being tapped into online. As with Amazon, our model is about offering every available product within the niche. Through the availability of everything outside the fast selling products, we hope to become best website for the niche.

We have placed a lot of focus on building the business/technology system that allows us to build our inventory information very quickly. This was because we knew that the size of our inventory would make or break our usefulness to end users.

So now i come to the problem that prompted me to seek your help.... (please help)... :)

In my (non-technical business) mind, we now have the ability to build our inventory quickly. This is just the start though, as a business we also need the following solutions before making money:

  • A shopping cart application to
    allow buyers to search our inventory, communicate with our business and
    make orders etc.
  • A CRM application would then allow the effective management of customers and orders.

I found my way to Magento and SugarCRM both of which appear to be very impressive. The idea being to use Magento for the buyers (search,buy,interact etc) and Sugar for our staff (order processing, customer service etc).

In my mind the long term rewards of being able to update these core applications from the communities, would far outweigh the steep learning curve. Not to mention the time/money that would be required to even attempt to catch up with what already is stable and tested....

My friend and business partner is unwilling to consider anything in PHP and to a large degree opensource. He's of the belief it would be best to start from scratch.

From a language agnostic business person (non-programmer) - any opinions or advise on our situation would be much appreciated...

I'm keen to find a way of us unlocking horns, either way... I just struggle to see any strong value in Re-inventing the wheel....

Thanks in advance, Guy

Thanks for the replies so far and the link, i'll go there in a minute. Here's some answers:

Our stock is currently held across 30+ different branches. Which means that we'd need a way for each branch to sign in and manage their own customers.

From our operational point of view, these seem to be the key challenges outside standard :

1) Our business has regions and each region has branches. In order for us to focus the various management levels of the business, it would be ideal if each management level could see the business relevant to them. For example National manager (can see everything), Regional manager (can see all branches in his region), Branch manager (can see everything for his branch with certain admin rights) and Customer service (can see everything in their branch with minimal rights). This is the only way we can have one umbrella site, which can be serviced by staff in branches nationally.

2) Over and above managing orders, it also makes sense that the messages are managed centrally through the application. This way any member of staff can easily see the past history with the customer and assist. I'm thinking that the questions would almost always come in through "Ask a question about this product" link, so incoming messages could be routed to the branch who has the part. If it's aftersales, then the branch who sold it. For general questions through contact us, we'll allocate a member of staff at head office.

3) I think it would be appropriate to show buyers upfront on the product page which branch has the part and the branch information.

4) Total inventory size is currently over 300,000 products. The business plan is to rapidly increase this to 10 times that figure.

5) The products are spare parts. Therefore the buyer would need to search by the orignal product that the parts fits... Each part can often be used on various products.

+1  A: 

Is there anything about your business model that custom technology is a strategic advantage or core competency? Is there anything special about the products you are selling that require the web site to be any different than any of hundreds of different types of existing online ecommerce sites?

You haven't yet shown anything which would lead me to believe you need custom programming for anything.

This might not go down well with your Java programmer friend, but until you show some kind of differentiating need, wouldn't commercial-off-the-shelf (even hosted) systems meet your needs?

This kind of question might be better off at http://answers.onstartups.com/

After reading your further specifications - they are fairly complex but not that far outside other businesses, I think you need to do a thorough evaluation of the COTS products out there with your technologist with a completely open mind.

Cade Roux
Thanks for taking the time to offer your advice and opinions.... I have posted this on your recommendation at http://answers.onstartups.com/questions/1150/would-you-java-developer-learn-php-if-management-decided-opensource-php-proj
A: 

The "wheel" you're talking about isn't round. It's as lumpy and pointy and oddly shaped as your business requirements are. If your business requirements are the same as those of other Magento and Sugar CRM users, and will be for the next five years, then they may be great products for you. Then you just need to figure out how to fire your friend, who will not be the best person to maintain those applications.

Or you may need heavy customization, need or anticipate special features not already found in those applications, or want to continue working with your friend. If so, then perhaps you should defer to to your expert friend on technical, programming related decisions, while he leaves sales and financing decisions up to you.

Scott Saunders
+4  A: 

The answer to this is very difficult, largely due to the fact that not all of your requirements are present. What size is your business going to be? Do you plan on expanding quickly? Do you have specialized requirements? What are those requirements? Answers to questions such as these need to be hashed out.

Now, I need to make a few quick points. There can be a tendency for developers to choose a technology they are comfortable with while disregarding the better choice. There is also a tendency for developers to also want to develope from scratch. This said, if your developer is truelly experienced he will have a good idea of what to use, what to resuse, and what to develope from scratch. You should also take note that this is not an all or nothing sort of situation, and you can blend opensource and homebrew.

My suggestion to you: If you are none technical and your startup is just a few people, this means your one Technologist is essentially your Chief Technology Officer. You need to allow him freedom of choosing technologies and developing his technical plans. This doesn't mean you can't be part of the planning process, but picking specfic technologies is in the realm of his expertise, and you should give him room to move. There could be very good reasons for not using PHP. If you can't trust your CTO to make these decisions you need a new CTO. Edit: --Or you need to start trusting him.

windfinder
+1 for the last paragraph. A startup with one software guy being second-guessed (no matter how good the reasons) is in real trouble.
David Thornley
"A startup with one software guy being second-guessed (no matter how good the reasons) is in real trouble" is exactly what is in my head... I'm asking myself and the other business partner if i should just drop it. However, i'd be going that way for the wrong reasons in my head. ie because it's non-resistant and to please him not because i believe it's right for the business. Also, shouldn't business partners be able to challenge eachothers idea's? However, others have rightly pointed out that "our one Technologist is essentially your Chief Technology Officer." Perhaps i should just let it go.
@unknown (google) I guess you have to ask yourself, do you really know what is good for business when it comes to technology? If you don't have the knowledge then this aspect of your business is left to your CTO. If you don't trust him your business is going to constantly be double guessing itself and failing. Business partners should be able to challenge each other, but they should also know when they are out of their element. Ask him WHY he wouldn't use PHP. His answers may be very telling.
windfinder
I guess the way i'm wired drives my focus towards fulfilling the customer needs. As that is when we all get our "Cheese" aka "What we want". It's less about trust, as i wouldn't get into business with anyone i didn't trust. It's more about what would give us the fastest route to market for a "Land Grab" and longer term user experience. Joining such lively communities of developers, wouldn't the updates give us the advantage of speed - when it comes to delivering features to users?
"Ask him WHY he wouldn't use PHP?" - Because his expertise is Java. He also has longer term (emergency) maintenance fears ie wouldn't know where to start if something went wrong. He sees no reason to consider the opensource options, when he could build something superior. I think they are the main objections...
You think those are the main objections? Or those are the main objections? If it is just a broad based "I'll do nothing but Java" then you have a problem. If the reaons, on the other hand, are: "I want to do java because it is ubiquitous, scalable, and fits our needs." then there isn't too much you can say. Again, this isn't an issue open source or not. You can mix open source components and homemade ones, it is a question of if your CTO is making broad decisions based on stereotypes and predjudices. PHP may or may not fit your requirements. Sounds like you need more dialouge.
windfinder
@windfinder - what he *wants* is completely irrelevant. What is good for business is.
DVK
@DVK - It was just a hypothetical conversation. Are you just nitpicking? Or is there something more important you are trying to indicate? If there is please elaborate.
windfinder
+4  A: 

Is your friend experienced at all with running a business?

If not, he may not realize the basic truth:

  • If something is your core competence, strategically, do it in-house. E.g. you posess the staff who can do it better AND cheaper (however you mesh the two) than competing solutions. E.g. if your friend has extensive experience developing such types of software, or has a working prototype already that fits your needs, or is Jon Skeet and can develop a CRM application fully born from his head between lunch and dinner.

  • If something is your marginal advantage, do it in-house. E.g. if your friend has ideas on features that would give you a leg up on competition AND can not be easily replicated by competitors. If he merely has a brilliant new widget for a web site that any half-competent developer can clone in 3 weeks, it's not worth it.

  • Otherwise, do NOT do it in-house. You will waste your businesses' resources on something that gives you no advantage over competitors.

This is not related, in any way shape or form, to PHP and open source.

If you can't develop a qualitatively better solution that will strategically (long term) outperform the opensource solution your competitors use, your software will be a marginal cost to the business, not marginal benefit.

Sadly, the only one who can answer the last question is the technical guy, and he may be, like all techies, biased towards homegrown stuff. So as someone in the other response said, you need to trust his judgement or get someone whose judgement you trust, friend or not.

Nut be sure the question he is answering is the right question -- the one in bold 2 paragraphs above

Hope this clarifies somewhat.

DVK
A: 

I think some of the answers here are made under the assumption that open source development cannot be branched, it can. You can branch development from Magento, and add new concepts & modules specific to your business. Magneto in fact already has a system in place for doing this. Magento's weakest point is it is not well documented (but is your homebrew system really going to be documented better???)

Regarding #5 the spare parts search - shameless plug - part search extension for magento

Josh Ribakoff
A: 

Being able to understand, maintain, develop and have control over own technology is very much a business requirement and a very important one. And here you have to trust and respect the opinion of the most technologically experienced member of your team. Either this or look for a new partner.

It sounds as if you have a very ambitious business plan and you’ll need more than 3 persons to put it into life, perhaps you could hire some PHP or Java gurus? Sanitizing 300K+ product descriptions and entering them into the system is going to be a challenge on its own, in addition to setting up the system, failover, testing, customisation (even if you started off with a OSS product) etc.

Are you sure you’ve really got the necessary resource to go that big that quick and still achieve a service of satisfactory quality? Would your business plan still work at a much slower pace or does it rely on the ability to set up a massive operation very early to grab the land?

Another person who understands technology well on the board level could have been beneficial, since your friend needs to cover a lot of ground to set up all the systems necessary for trading and possibly could make use of some help.

Answering your question: PHP and Java are two different universes, and imposing a requirement of learning PHP on your friend will just make the enterprise even more technologically risky. And since your friend doesn't seem to be comfortable with the idea will simply not work.

Totophil
Thank you for your help... I think that your message has helped me learn something important, from opening my eyes to a naive mistake i've made. That is i've been acting as if I were a technical expert. Where as my background is business. I've forgotten my role is to explain what "tools" we need as a business to make money. I feel it is appropriate that i should be able to define needs in business terms, suggest a tool and explain why i think this tool could (remembering that I'm non-technical) fulfil the businesses need. Then it is for him to agree or explain a better technology route.
However, the issue has been a reluctance to research the possibility of using this tool. "Being able to understand, maintain, develop and have control over own technology is very much a business requirement and a very important one" is almost his words. However my experience with developing in-house things has taught me that development in technology is the same as business - never ending! Perfection doesn't exist, isn't that the great thing about being creators. The idea of joining this, almost movement, of open source application development I see as an extreme competitive edge.
Therefore, how could the true pain>gain either way be established? I feel the problem has been largely me focussing on technology (which as you can imagine he quite rightly isn't impressed by). Instead of focussing on what tools there is a need for, to make this a success long term and why... Hope this helps others... :)