Why you should not outsource Cloud software development

Sahil Parikh

Entrepreneurs come in many hues and many of those who consult with me are darn good. Some of them have a technical grounding while others don’t. So far, so good. But what happens when a non-technical entrepreneur, who may even have a decent idea of Cloud software (past prototype stage), doesn’t have actual technical skills or a technical co-founder or a team to build the software? A question I often hear is: should I hire a software firm to design and develop my Cloud software?

Never outsource your core business

Here’s my vote – although it may work, I am not in favour of it. Since the software would be the core of your business, it is something that is best done in-house. As I said, it might work but building a Cloud business is more than just creating the product. Building, nurturing and marketing a Cloud product is an organic process. Instead of building everything all at once, you need to start with your core feature.

Next, you need to release it to your target audience and keep an eye open for feedback from your initial users. You will probably need to tweak it and make additions to your product. Or you might pivot your product in a completely different direction. Facebook, Flickr, Instagram, Twitter and PayPal, are just some examples of products that dramatically changed course along the way.

Building a product over time is the best way to perfect every element of your application. This iterative process is very different from the one-time software development (and quarterly release cycles) process most companies were used to.

To do this, it is imperative that you have either a technical co-founder or a lead on board who can manage and grow your initial technical team. Following are the many advantages of having your own product team:

Why it won’t work

1. Keeping your hands on the controls: Development cycles are much shorter when running a Cloud business. Sometimes you push code on a daily basis. There are tweaks, bug fixes and quick user-interface changes.  One day, you’re releasing a new feature and the next, you’re tweaking it. It is absolutely important to have control over the development process. In the early days, your product is what your start-up is all about.

2. Constant tweaking: A company contracted to build your software will do as much as there is listed in the specification document. As mentioned above, things keep changing. Eventually, you will feel that you are NOT in control.

3. What about the long-term?: Naturally, you have aspirations of thousands of customers using your product. So, eventually, you will have to take control of the software. So, why not take control of it from day one?

4. Being taken for a ride: If you don’t have technical skills, how will you manage the technical team at the other end? How would you if they are using the most optimum technology and scalable architecture? If you don't have someone technical in your team, chances are you might be taken for a ride.

5. Quality control: The quality of code is extremely important when running a product company. Today, anyone can program but what one requires is ‘efficient’ programming. You need to ask whether the piece of logic is the most efficient way to accomplish a given task. I doubt an outsourced provider would care more about your code than your own team would.

6. Learning while growing: The knowledge your own team would gain from the initial version of the product is immense. Your team would be the best to judge which approach worked (which would help scale up in future), what your initial customers like/dislike, and what what worked and what failed. This stuff is very valuable when starting out.

7. Continuous cycle: Building an SaaS business is an ongoing process. You learn from your customers and put that back into the product. The cycle goes on. Plus there is fun in owning and having full control over your product.

8. They won’t care: The team in the outsourced company won’t care about your product and won’t share your vision the way you do. They are looking for a quick payout so they can move on to bigger projects.

Get a technical co-founder or tech team

Thus, to make sure you give your Cloud-based venture all you’ve got, you need to have a sound technical foundation yourself, partner with a technical co-founder or hire a really skilled technical team. Who doesn't want to be part of something interesting? It is a matter of having the patience and the will to keep looking. Start with one developer and then scale the team as your product matures. Just like a chef doesn't outsource his cooking, you should aim to build your software product in-house.

Sahil Parikh is an author, web entrepreneur, founder & Chief Trailblazer of Synage Software - a technology company that successfully pioneered one of India's first home-grown SaaS products, DeskAway in 2007. You can view all his blogs at http://sahilparikh.com/

You can send your feedback on smementor@moneycontrol.com or simply post comments below