Having BizSpark did wonders to the company I'm in, but when the 3 years ended, there was a lot of hard work and even more tears because of it. BizSpark's entire reason for existence is to lock you into Microsoft products, especially their SQL server.
As a potential BizSpark user my impression was that:
- after 3 years I get to keep using the licenses I acquired, leaving only hosting costs to be concerned about
- if I don't have enough capital/revenue to cover my hosting costs at that point it's highly likely my business is not worthwhile pursuing further anyway
- for my particular solution I don't envision needing much server power (and what's provided is pretty powerful) so additional licensing costs are not a problem (I can see this being an issue for other businesses)
I guess the numbers work out differently for cloud but I don't imagine they would be that far off. For example, if my Azure costs are $10K a month, from that cost is likely $2K-$3K the Microsoft tax. Keep scaling your VMs and servers and that margin starts to look a bit less palatable.
If you know the limits of your business, then it's probably not an issue. I think the sweet spot would be to use Postgresql for the database and Microsoft for the rest, as most of the cost is SQL Server for systems that aren't in the full Microsoft eco-system (BizTalk, SharePoint,etc.)
Being on Azure doesn't mean you get a break on the licensing costs. They just amortize the cost over the hour the VM is up.
EDIT: Fair point on the hosting cost being known and acceptable right from the start. I also don't mean to imply that you are not aware of the licensing costs, just wanted to make it clear. For real businesses, at some point it makes more sense to build their own "private cloud" and at this point these issues become relevant but for most start-ups, it's likely just not going to be an issue.
That said, the work various .net-related people have out or are working on have the very real availability or promise to lift that dependency, if not provide portability, with DB choice. See RavenDB (document DB) & biggy (Postgres 1st class). Supporting this for more traditional takes on relational store is that there is increasing experience in the .net world for applying coding patterns that can help projects pivot/abstract out the data tool dependencies.
If you have a sensitivity in this area, there are options which, when calculated with the ancillary benefits of applying existing .net experience and the great MS free + cloud tools, would pan out very well for many problem spaces.
Obviously, YMMV, but if you are doing a wide spectrum of cloud + mobile, Azure is very compelling and Xamarin can become nearly as large a burden cost-wise. That total burden still can be extremely competitive and the ramp for existing .net shops a pretty clear winner. But being a C# developer has never been so promising - and it wasn't ever that awful to begin with.
If anything, the problem of coming from the old MS-dev platform-planning and having to understand the range of options and optimizing for costs around those is the weak spot.
Not sure why you say that -- if it works, it works. I've just spent the last year working on a multi-million dollar project budget building a new system on a SQL Server 2005 cluster. Why? Because there was no need to budget for new hardware. (SQL Server 2008 R2 would have been a big step up, after that not really worthwhile upgrades, in our case.)
> For example, if my Azure costs are $10K a month, from that cost is likely $2K-$3K the Microsoft tax. Keep scaling your VMs and servers and that margin starts to look a bit less palatable.
Let's say my hosting costs are 10k p.m, 120k p.a. and represent 15% of revenue (this is just how my business works - if I need that much SQL power I'm doing a hell of a lot of business). 120/0.15 = 800k in revenue. Keeping things really simple, let's say my gross margin is 50% and corp tax is 20%. That leaves the business with a nice 320k profit. Sure I don't like spending 4.5% of my revenue on MS licensing, but at this point I can quit my job and port over to Postgresql (or more likely pay somebody else to). The point is that nobody wants to give away 4.5% but if it's the line between success and failure then you probably have bigger issues with your business model/environment.
Don't get me wrong - for my current side project I'd love to use Postgresql as the backend and .NET for the rest but the problem with Postgresql is two-fold and really specific to me:
1. I'd spend a lot of my time learning a new set of tools for zero benefit when time is my most expensive resource right now. I'm very familiar with T-SQL and the MSSQL platform (even simple things like having MERGE available has saved me lots of time given my problem domain, nevermind the ability to reuse a lot of code I've written and optimised over the past 10 years and knowledge of various issues and errors I will encounter). Porting in 3 years will be easier because we'll have a working system to port from, and the risk to the project will be less because we aren't doing two things at once (learn a new platform + solve a new problem -- only the later is going to make me money).
2. I plan on using some of the MS BI tools for the first time as part of this project -- this represents quite valuable experience to have as a .NET developer/solution designer; if I go the Postgresql route I will spend a lot of time exploring and evaluating open source options with zero benefit to my day job career progression over the next 3 years - I don't have the luxury of neglecting my day job while I work on side projects, so I need to be careful I don't lose value
I also felt a similar way in terms of wanting to keep my day job skills in alignment with my side projects. I think its actually the opposite. Picking up python and Django (or RoR) will make me much more valuable for my own work and otherwise. Microsoft certainly has its place for desktop applications but that's not my focus. Heck, even for that, I am seeing more applications in Adobe Air.
Also, it's just fun to learn these new stacks. I don't need to be an expert, just enough to get the job done and know when to ask for help. Another motivator for me is the ability to hire developers remotely to take on development. I would imagine this is going to be easier to do with an open-source stack versus Microsoft.
Don't get me wrong. Microsoft in the last 3-4 years is doing great work. If you happen to stay out of the Silverlight, WPF, SharePoint side of things it's not been all bad. ASP.NET MVC is now mature and there is enough momentum with nuget and open-source .NET projects that you can replace components if need be.
I'm fortunate to be on both sides of the fence. I don't intend to never use Microsoft tech for my side work but there is a lot to gain from seeing what's out there that isn't Microsoft.
I thought about learning a new language when I started, but figured the time would be better spent learning the language/skills of sales and marketing.
(My day job at a small profitable startup and my side SaaS product are both .net
TLDR? 33% on VM's, 25% on cloud and then according your MSDN subscription 40 - 115 €/ month.