I am starting a new role running engineering in a young startup. The stuff they have is in SQL Server / Windows. I get the feeling we should think about moving to an OSS architecture, main reasons being cost, the ability to test new tools on the fly as they come out, and integrate with leading technologies like RoR and Python easily.

Anyone has any suggestions on this?

Can it get ugly if we keep our DB backend on SQL Server / Windows and build a Linux / OSS architecture on top of that? Or is the software BizSpark gives you access to enough for anything you need while you stay in the MSFT world? Are tools like LINQ and SSRS good enough?

Don't mean to start a fire here, just a real issue our company is struggling with. Thanks for any replies.

  • Bizspark gives you basically everything Microsoft offers for development for three years; that's more than enough time to either have the startup grow or have it fizzle and go out of business. – Wayne Molina Apr 13 '11 at 13:55

You should use whatever the startup's programmers are more experienced and comfortable with. If that's .NET, SQL Server, etc., then stick with what you've got. If that's Python or Ruby or something else, then switch.

You should probably clarify what "running engineering" means, also. It sounds hardware-related to me, but I have a sneaking suspicion that you're actually using it to refer to programming?

  • +1 for sticking with the skills base. Engineering does not mean just h/w though, it applies equally to s/w development. – Steve Apr 12 '11 at 21:10
  • @Steve, gotcha. I think that's a bit of an Americanism, which always throws me. I have never heard the word "engineer" used to refer to a programmer here (Australia) but I do see it in Dilbert, etc. :-) – Carson63000 Apr 12 '11 at 21:47
  • I suspect it is indeed a N American term, it's frequently used in the US and Canada to refer to s/w. It's not that common in the UK either, but very few people seem to understand the term engineer in the UK anyway (frequently confused with mechanic and technician and used interchangably with them). – Steve Apr 12 '11 at 22:05
  • Thanks for the comments, it's not hw, it's software. The company was had some help in the past to develop a minimal product, but I am the first full time engineer, and will build the team. I'm the company's third hire. – Jorge Guzman Apr 13 '11 at 2:17

Whether SQL Server is a good backend choice compared to alternatives depends on your business need.

If you are building your business layer on a non-Microsoft stack, LINQ is irrelevant. LINQ is a technology that allows .NET languages to query a data store in a more natural (and more productive) manner.

SSRS is a very good tool for being bundled with a DB. Let your business needs guide you as to whether it's the appropriate one.

I am personally very fluent in .NET, Java and PHP and have headed up development for startups using both the Java stack and the .NET stack in recent years. In my opinion the tooling and platform that .NET provides is hands-down superior in terms of overall productivity than the equivalent tooling in the Java world or in the PHP world. I don't mean to touch off another round of Holy War, just sharing my personal experience.

Given that BizSpark allows a startup to grow to a reasonable size before purchasing licenses for anything, perhaps consider whether it's appropriate to move away from Windows if that's already an established platform. When considering licensing (at least if you will scale out significantly), my concern would really be about whether to use SQL Server rather than e.g. MySQL. Buying a MSDN subscription for each developer can be far less expensive than purchasing Windows Server and SQL Server licenses to support a large DB farm.

  • Thank you for the comment Eric. I might have been misguided by some other startups, thinking that the OSS / Linux stack was stronger. I have led .Net teams myself but did not want the company to run on that just because I knew it. Great to know it has added productivity compared to java. – Jorge Guzman Apr 13 '11 at 2:22
  • 1
    Thanks also for the input on SQL Server. We do want to scale fairly big, but maybe not huge - I predict data store will be 10TB in 18 months. I guess that will be about 20 or 30 servers, which does in fact sound could be expensive. I definitely need to keep this in mind. – Jorge Guzman Apr 13 '11 at 2:26
  • a lot of people would disagree with you, they'd say Java was more productive, but then they'd be Java devs. And some would say Ruby is much more productive, but then they'd be Ruby devs... hmm, I see a pattern here. – gbjbaanb Apr 13 '11 at 9:46
  • @gbjbaanb: Yep, lots of people would disagree. That's just my experience, with the teams I had. – Eric J. Apr 13 '11 at 18:11

The Windows stack and the Linux stack are fairly equivalent. Similar tools exist for either and their is nothing stopping you from mix and matching, ala StackExchange, anyway. Cost of software licensing should be negligible compared to cost of developers, especially if you have BizSpark, so I would stick with what they know.

  • Thank you for your comment @Craig. Good to know the stacks are equivalent. I was under the impression that it was harder to mix and match than it seems it is. – Jorge Guzman Apr 13 '11 at 2:24
  • If you look at the StackExchange architecture you will see they mix and match Windows and Linux blog.serverfault.com/post/… – Craig Apr 13 '11 at 3:17

As Carson63000 says you might want to look at the skills base you have, this is an important consideration, in addition to TCO issues, before moving platforms.

That said, there is nothing technicaly stopping you from using RoR or Python with a SQL Server DB. I'm not much of a rails expert but I'd be very surprised if it can't talk to a MS SQL Server DB. And you can run Python, or more specificaly the Iron Python port right in .Net.

There is also a growing OS community running on windows, actively supported by Microsoft. E.g. ASP.Net MVC is released under MS PL. This often goes by the nick name of alt.Net, so if OS is your thing you don't have to move to a Linux platform (although you obviously would do if you want to avoid paying for Windows licences).

  • 1
    MS-PL is not compatible with the GPL and versions, and that could cause problems. (It looks like the incompatibility was gratuitous and intentional to me.) – David Thornley Apr 12 '11 at 21:33
  • You may be right about compatability, I'm not a lawyer so I can't comment further excpet to say I'd seek legal advice before using any licence in a released product. The MS-PL is a bona-fide OS licence recognised by the OSI though. – Steve Apr 12 '11 at 22:03

While there's a lot of 'lockin' in the Microsoft world and I think you should do what you can to avoid that. There's a lot of really excellent OSS stuff out there and too much of it is just ignored simply because its 'not Microsoft'. Instead companies end up inflicting 2nd rate products like Sharepoint on their users :)

The other side of the coin applies too - even if you're a OSS-only shop, there's no reasonw hy you shouldn't be producing fully-Windows versions of your products.

There's no reason why you cannot mix some OSS and Microsoft stuff together. I would use some of the OSS products to support yourself, like Subversion or git, Redmine or Jira, Nuxeo, etc while developing your Windows-only applications. Just having a good exposure to these alternatives will keep yourself and your devs from becoming 'blinkered' and assuming MS is all there is in the world of computing.

Building applications: if you think it'll get expensive, try not to build dependencies in. For example, we build for Oracle and SqlServer here so our DB access has to support both. If you decided to build against Postgresql and Sql Server you will be able to drop SqlServer if you decide its too expensive at some point in the future. Similarly, if you build your apps to use HTML5-based GUIs (for example) then you will find its easier to deploy to Linux (or Android/Chromium/iOS/whatever) clients your customers will want to use in the future.


My opinion is to consider the following:

1) If you switch to say Rails, what is the learning curve? Will your team be able to pick it up reasonably quick? Now if you're an ASP.NET MVC shop you shouldn't have much trouble, and Rails might feel more "natural". If you're a WebForms startup (doubt it but you never know) then it's worlds different.

2) How will it affect your time to market? As a startup you need to balance longterm stability with actually getting something out there so you can actually BE a company and not just another failed idea. If using an OSS stack will help you get a quality product out faster, then it's worth considering.

Really, the MS stack can scale very well. Yes, OSS stuff is "cooler" and more "hip" but look at the business factors first and use that to make an informed decision; you might find that you can succeed just as well with the .NET stuff than you could using Ruby on Rails.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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