The first step in trying to bring our product idea to life is figuring out what we're going to use to develop everything. This is the first of a number of posts that details what we're thinking about with this process. First, you'll need a little background about the team. The Adept and I are .NET developers by trade. The Style Czar is an Open Source junkie on the server side and runs OS X on the client side. Since the Style Czar isn't going to be writing any of the application code, this decision is primarily up to The Adept and I.
One of our first thoughts was to use Sharepoint and modify it to suit our needs. I have some experience with Sharepoint while The Adept is well... quite adept. Here's a quick list of some things we like about the Sharepoint idea:
- Not reinventing everything. This could be a lot of work and using Sharepoint may significantly reduce the amount we have to do.
- Web Services API to expose most everything. We have a requirement to support thick client integration. Exposing the functionality of the system through web services is a great way to support that.
- It's a technology that The Adept and I are familiar with. We're doing this in our spare time so not having a learning curve is an advantage.
Those look pretty good to me. Now let's take a look at the detractors:
- We may have to rewrite a number of the built in web parts to support the functionality we want. Remember we said we wanted this whole thing AJAXified? Well Sharepoint would need some serious help to deliver on that goal.
- Web part development on Sharepoint is not that friendly. Since we're modifying Sharepoint, we'd be developing new web parts to fill our needs. From my experience, web parts can be a real pain in the ass to develop, debug, and deploy.
- Cost is prohibitively high. There are all sorts of costs associated with this solution. We have the license costs for Windows 2003 Server, the costs for MSDN Subscriptions or just Visual Studio purchases, and finally the cost of the Sharepoint server. This is the kicker. Here's the pricing page for Sharepoint Portal Server. Notice the price of The Sharepoint Portal Server External Connector is 30K!
Well that settles it, Sharepoint is out. It doesn't matter what the positives or negatives are, the total cost of the Sharepoint solution is just too much. We want to give our users a service at a reasonable cost and we wouldn't be able to provide that with this solution. Besides that, we're bootstrapping. Spending money intelligently is a must.
Even though we didn't find the right technology yet, we've identified some of the things that are important. Here they are:
- Cost is key. Because we're bootstrapping we need to keep our costs as low as possible.
- Web Services are necessary. We want this in whatever solution we use to support an open API for thick clients to take advantage of.
- Building off an existing technology to avoid more work than we can handle is important.
- It would be nice to work with a familiar technology to avoid a learning curve.
I've organized the list so that the things that seem most important come first. We'll use this to refine and direct our search in the weeks to come.
You might take a look at Ruby on Rails (www.rubyonrails.com). I am also starting a microISV, focusing on technology solutions for faith-based organizations. So cost is a big factor for me as well. RoR might not give you a lot of existing components, but your cost, productivity and agility requirements can easily be met with it. And the community is great and growing rapidly. I'm now a .NET developer by day and a Ruby n00b by night...
Posted by: Jason Cartwright | August 31, 2005 at 01:49 PM
Thanks for the suggestion. These tech posts are actually lagging a little behind where I am in the process. I'm currently reviewing RoR as the possible tech to use for this whole thing. I'll probably be posting about that next week.
Posted by: Paul Dix | August 31, 2005 at 01:54 PM
"It would be nice to work with a familiar technology to avoid a learning curve."
So which technologies are you familiar with?
Can you give a high level vision of your project?
Posted by: KC | August 31, 2005 at 02:24 PM
The Adept and I are familiar with .NET and javascript for the web application stuff. For thick clients, one or both of us has worked with Delphi, VB, Java, and .NET. I've also dug into Python a little bit on the web side. The Style Czar has worked with a number of the open source CMSes like phpNuke. Personally, I'm not letting this part influence the decision too heavily. It's probably the least important factor as I'm sure we can come up to speed fairly quickly with whatever tech we decide to use.
As for a high level overview, this post kind of talks about that:
http://www.pauldix.net/2005/08/the_product_ide.html
Posted by: Paul Dix | August 31, 2005 at 02:35 PM
Well, good luck with both the tech decision and the execution of your product vision. I look forward to reading about the process and experience. I hope to share my own experiences as I get Enspired Software off the ground as well. It's good to know that others are in the trenches with common challenges and successes.
Posted by: Jason Cartwright | September 01, 2005 at 10:52 AM
I'm curious why you don't consider the Style Czar as being part of your team other than to discount them?
Posted by: anon | June 12, 2007 at 05:29 PM