Posts tagged StartUps

.Net’s Stagnation and Brain Drain

Recently Justin Angel posted an essay he’d written titled “The Collapse of the .Net Ecosystem, V3”. It’s an interesting read and very well could be flawed in many meaningful, statically and logical ways. But if you haven’t popped your head up in a while there are noticeably less .Net jobs then there were in 2006-2010. This could be relative or absolute, but when I was looking for a  job a few years ago the C#/.Net listing were few and far between.

brain-drain

The jobs that are out there aren’t at startups, they mostly aren’t working on solving interesting problems, they are Line of Business applications.  Head over to Angel.co and see how many of their 8,400+ startups are using C#, hint it’s less then 2.5%.

There is nothing wrong with Line of Business applications or enterprise app development. You can make a very good living doing this and get to work on some cool stuff, maybe. But without new people, new ideas, different points of view and fresh perspectives the .Net Community becomes an echo chamber. As a whole it will lag behind other more cutting edge development techniques and methodologies because we aren’t exposed to them, as people aren’t flocking to be .Net developers.

You may be saying to yourself, “That’s fine I don’t want to work for a startup anyways” and that’s a perfectly valid opinion. But it’s undeniable that startups attract the younger developers, who can take the risk and the commitment to the startup pace. These then become the next generation of enterprise developers. If there are only a handful of .Net startups what does that say about the possible new input into the .Net Development collective? How many developers are leaving? I’d bet you we have a net loss in people leaving the .Net community verses new minds coming in. As I sit here the path that is currently laid out for .Net developers is the track languages like COBOL followed.

For the last few years Stack Overflow has done a developer survey. You can head over to SO and check out the results. The section I want to focus on is “Most Popular Technologies”. Here you can easily compare 2013, 2014 and 2015 trends.

2015-06-15_8-02-02

Here is the breakdown for C# for the last 3 years:

2015 pharmacieviagra.com 2014 2013
C# 31.6% 37.6% 44.7%

In 2 years C#’s popularity on SO has dropped 13.1%. To be fair JavaScript dropped 4.5% as well from 2014, but they call out Node.js (13.3% and AngularJS 13.3%) and Angular didn’t have any numbers for the 2014 survey. The trend may not be alarming to all, but at a minimum it should let you take notice and stock of what the future looks like.

.Net will be around for a long time, but in 5 years how much new development will be done in it compared to how much maintenance? What about in 10? I love the C# language and the .Net Framework, it’s elegant, complete and very capable. But would I want to just fix bugs on a 10 year old legacy system day in and out with it? Sure you will be able to find C# work, but is it going to provide the challenges that keeps us developers engaged and provide job satisfaction?

I don’t blame Microsoft for this (ok maybe just a little), they are responding to what the market wants. You can’t continue to just push you language/framework as the only way to do things. Hell even Apple announced that they are open sourcing Swift. But times have changed, in the past you needed to do .Net for Windows development. Web application weren’t very good and to build any decent Windows Apps you used .Net. Eventually those Windows Apps got ported to ASP.Net, then ported to MVC. We went from Windows where really only C++ and .Net mattered to the Web where, well lots of things matter. Now to build a “Metro” app you can JavaScript or C++, no .Net required and there are tools to utilize “Metro” apps in the normal desktop.

I think with Microsoft Open Sourcing a good chunk of their ASP.Net stack they can compete better with Java, companies that don’t run Windows can use straight .Net now on their Linux/Unix boxes. Yes there was always Mono but that never really took off as I had hopped. So there is some light on the end of the end of the tunnel, hopefully it’s not a “No Exit” sign.

Resgrid is a SaaS product utilizing Microsoft Azure, providing logistics, management and communication tools to first responder organizations like volunteer fire departments, career fire departments, EMS, search and rescue, CERT, public safety, disaster relief organizations, etc. It was founded in late 2012 by myself and Jason Jarrett (staxmanade).

Forcing yourself to launch your product

So you’ve spent all this time building a product or service, when do you finally launch it for money? This can be one of the more difficult decisions that you have to make. As a developer we are hard wired to be passionate about our craft, especially when it’s our baby. Even the most detached developer gets that glimmer in the eye when it’s about the code they wrote for that critical process. When it’s your own product or service and a direct representation of you sending it out into the wild, and asking money for it, prepare for an internal tug of war like you cannot imagine.

rocket

Besides naming your company or product one of the most important emotional decisions that you will have to make is when to launch your startups product and asking people to use it and more importantly pay for it.

Some history, this is from my experiences with Resgrid which is a cloud service company, SaaS deployed on Microsoft Azure, providing logistics and management tools to first responder organizations like volunteer fire, career fire, EMS, search and rescue, public safety, disaster relief organizations, etc. It was founded in 2012 by myself and Jason Jarrett (staxmanade) and we launched it as a paid product in 2014.

The Resgrid SaaS runs on Microsoft’s Azure and was up there at the end of June 2012. We started charging for the service January 2014. That’s a year and half we had the product up there for free. Even with a year and a half of development and work, asking people to pay for it was a very difficult decision. There was more to add, more to fix, more to test, more to improve. it never ended.

So how can you force yourself to launch your product?

1.) Have a partner/s or a sounding board

Having someone with knowledge of the product or service, with experience in launching or good baseline knowledge I think is important to forcing you to think critically about your baby. An different perspective is incredibly valuable when internally your conflicted about a decision. Even if you don’t want partners in your endeavor then find someone who will listen and give advise. What you don’t want is someone who will blindly agree with you.

2.) Have a MVP spec and stick to it

At some point early in the process determine what your minimum viable product is, what would be the baseline someone would pay for? It can be one feature, or a set of features. But your not talking full on double rainbow, just the bare minimum feature set. Your MVP is important, it’s the baseline of what people will use, find useful and possibly pay for. But it gets it into their hands early. Resgrid launched on 6/22/2012 with a MVP (allow first responder personnel to denote if they are responding or not). Our mobile apps were dead simple:

Actions_Screen

Oh yea, now that’s an MVP. A lot of what we’ve added to Resgrid over the two years has been feedback from our customers, or as Jeff Atwood would say, Complaint Driven Development. This is something that I pride myself on and as a company Resgrid prides itself on, quickly responding to our customers feedback. But if we didn’t start with an MVP and get it into the hands of our users, we most likely would be a completely different product.

3.) Get rid of friction

Before you launch, get your development and deployment stories sorted. Think of this as softening the beach before the invasion. This gets rid of the excuse of “it’s too time consuming or costly to get it out there” (especially for SaaS products). At Resgrid we use Microsoft’s Azure coupled with BizSpark this lowered our cost and allowed us to iterate very quickly.

Remove all the friction that prevents you from focusing on your product. Use cloud providers, like Azure, to deploy your product to for getting it in front of your customers, even if you eventually expect to house it yourself in house.

4.) It’s good enough

Launching will never be easy, it will never go flawlessly, there will always be problems and people that hate it. That’s just the way it is. We iterated on Resgrid for a year and a half, pushing weekly updates and getting feedback. But it was still a difficult decision. There are still parts of the app that need more QA, more work, help and insight for the users, documentation, etc. But those elements and issues will always be there.

You will never polish every edge case, every combination or usage pattern. Instead of tying to fix all of those, focus on your “Happy Path” and ensure that works well. Then respond to customer feedback and fix the edge cases you didn’t think of or didn’t test.

5.) Set a date and stick to it, no matter what

I’m not a fan of hard dates for delivering features. I feel that this can cause a business to be less nimble in response to issues, customer requests or changing market conditions. But for your launch you need to just set a date and make sure the product is MVP complete about two months before that. Spending the remaining time fine tuning, testing, fixing critical bugs and preparing your marketing collateral.

Don’t neglect your public presence like blogs, twitter, Facebook, public site, etc. Unless you have a built in audience or are well known it can be hard getting the first user, even if the MVP is a free alpha. The goal with your launch is to get users on it as quickly as possible, get feedback and iterate as fast as you can.

Don’t worry about complaints, issues or other negatives

This is going to be tough, and I didn’t put a number on it because it’s not a ‘thing’ to try and get you to launch. No launch goes smooth, there will be issues and probably a lot of your early adopters will probably leave and never come back. Don’t dwell on the negatives, you need to push on and keep iterating.

Launching something is a rollercoaster, from major emotional highs (getting signups, paying customers and compliments) to some serious lows (crashes, unsatisfied customers and no signups). As the adage goes, it’s a marathon not a sprint. Don’t fear the negatives, learn from them and move on.

Terms of Use and Privacy Policy Resources

Unfortunately the legal stuff is just part of the world we live in. If it’s not patents, it’s privacy laws (which aren’t a bad thing) or liability. Unless you have a lawyer in your friends or family for a bootstrapped startup or micro enterprise there usually isn’t much of an option to have your stuff drafted fresh.

_legal-paperwork-2

We all know we need some legal agreements, in my Tools and Services to get your Business Started post I went over some of the tools and services we used to launch my company. Resgrid is a cloud service company providing logistics and management tools to first responder organizations like volunteer fire, career fire, EMS, search and rescue, public safety, disaster relief organizations, etc. It was founded in 2012 by myself and Jason Jarrett (staxmanade).

In that blog post I mentioned LawDepot. It’s a service we still use, the price is great and they have a good number of legal document generation tools. But they don’t cover everything, so we needed to look somewhere else for those.

As with any legal document you should always run them by your lawyer, it sucks, but there could easily be provisions in your local jurisdiction that can invalidate portions of the document.

Terms of Use/Terms of Service

App.Net’s GitHub: App.Net has put a Terms of Service, Privacy Policy and Copyright Template on their Github. They are very clean have nice documentation points for your to expand the documents and licensed under CC-BY-SA 3.0. App.Net is in California, so it’s a nice leg up if your located there.

WordPress: The great peeps at Automattic have put the WordPress Terms of Service out for your to use and licensed it under CC-BY-SA 3.0. You will have to do a lot of pruning with the WordPress terms, unless you a lot of user generated content. They also have their named programs in there that you will also have to prune and alter.

TermsFeed: I found TermsFeed a little late in my process, but if I found them earlier I probably would have used them. The pricing is great, and you can use it to generate custom Privacy Policies, Terms of Services, Terms and Conditions, Terms of Use and a Return and Refund Policy.

Hosted Privacy Polices

iubenda: Has a very nice interface for creating your privacy policy and it hosts the policy for you, allowing you to embed it in your site and update the policy on the fly. They have built in blocks for a lot of 3rd party services out there, for example using Google AdWords or CloudFlare. Licenses aren’t that expensive, but the monthly plan ones can get out of hand. Generates specific privacy policies for Websites, Mobile Apps and Facebook Apps.

Truste Mobile: Need a free privacy policy specific for your mobile app? TRUSTe has a free (hosted) privacy policy generator that allows you to select a lot of nice terms to include in your mobile app. It’s not as precise, or as good looking, as iubenda’s but it gets the job done.

Dangers of using someone else’s terms or policies

  1. Outdated: Any agreement you choose can be outdated. Laws constantly change (politicians love adding new laws) and if you don’t stay on top of the legal landscape you can open yourself up to liability.
  2. Not Appropriate: For example California enacted tougher privacy laws and everyone’s privacy policy needed to be altered. Depending on where you company is based, or the market it’s servicing your agreements and policies need to be appropriate for that jurisdiction.
  3. Bad Terms: If your not a lawyer it can be very difficult to read these agreements. Are they binding your company, or you, to a term that you cannot meet? For example damages up to a certain dollar amount, or binding arbitration (you better figure out how to get an arbitrator just in case).

As with everything in this day and age the legal landscape is tilted to favor the large companies with deep pockets and the public. Small companies without a lot of money are a serious disadvantage to being pushed around by larger companies or lawyers looking for some easy wins. So use the generated agreements when you have to, then upgrade to a custom drafted one. I would recommend that you leverage someone else’s CC-BY-SA agreements and update it, helping out others just starting out and pay it forward.

Go to Top