5 Benefits of Hosting Your Own Code

Published on July 28, 2014, by Brian


No company would never even consider revealing the one secret that separates them from the competition. In enterprise software development the one and only differentiator is your source code. The power and integrity of your code is a reflection of the insight and intelligence your development teams bring to the marketplace. It is from this which all value, that your company creates, flows.

Exposing your source code is more than just handing the competition the keys to your car, it is handing them the means by which you pay for your car.

The enterprise software industry is now approaching a cross roads. It's not quite here yet, but it's on the horizon, and that is "the enterprise cloud". While the public cloud is eating up all the low hanging fruit, and provides superb benefits for picture sharing, testing facial recognition software, organising social events, manipulating public sentiment, and WhatsApping your friends, it appears increasingly reckless to trust it with any confidential information.

Cloud Pros and Cons

The problem is revenues are not what were expected. Perhaps it's the free price tag, or Amazon's policy of selling $100 for $80, but these cloud providers are struggling to pay for their infrastructure, and that means soon there will be a polished sales person with a marketing pitch arriving at your door. You will be assured all is well, you have nothing but upside, and the enterprise cloud is ready to host your crown jewels. All you need to do is sign up to that service package agreement.

So in an effort to defend yourself against what will be a persistent pitch, here are five benefits of hosting your own code that you need to tattoo onto the back of your eyelids.

1. Security and Privacy

Security and privacy go hand in hand and understanding what true security means requires deeper consideration than just reading a marketing brochure. Hosting your source code on someone else’s servers means trusting them to keep your data private. When a provider decides to change their privacy policy, you can never be certain about the privacy of your data.

“No one can build his security upon the nobleness of another person.” ― Willa Cather, Alexander's Bridge

By hosting your code on servers housed within your business, you control all aspects of your privacy policy. This includes not only who has administrative access to accounts, and network access to the service, but also physical access to the hardware the service is running on.

Hosting your own code also gives you full control over policies governing your data. Depending on the nature of your business, data-retention policies may be critical, especially if it relates to court-ordered access to your archives. Being able to control your policies to retain data only as long as is needed, or for as long as possible may be an important consideration.

2. Performance and Availablity

Being in complete control also means you have unlimited system configuration flexibility. You can choose your own hardware, operating system, database, and other tools. In addition you do not have to use hosting procedures that are not beneficial to your needs.

This flexibility allows you to tailor your setup to best suit your environment, and you will not have to pay additional charges for hard disk storage space or bandwidth usage should you need to ramp up.

Network availability too is a major advantage. When using outsourced services, downtime can be especially frustrating. Problems with a local system can be addressed by your own staff, but with outsourced solutions you are at the mercy of your service provider to resolve the issue. Though downtime on many of the larger services is minimal, and major outages are quickly dealt with, problems that affect only a small percentage of users receive less attention and could take more out of your valuable time to resolve than you can afford to misallocate.

Having your own secure hardware with a fast connection to the Internet allows you to have the full benefits of cloud collaboration without the risks. When the Internet goes down, or your provider goes offline, having your own hardware means you don't suffer lost productivity and downtime. Additionally some of the following common issues can see your service quickly become unavailable:

3. Features and Stability

Adding, experimenting with, and removing features to find that perfect development environment mix requires the ability to rejig your configuration, extend the applications running on it, and rollback if things break.

Having flexibility like that on a system you don't own, in a land far away, is impossible. This complicates testing new features and extensions that your development teams may need to maximize their workflow. When using a hosted service to carry out system optimization, especially when testing horizontal scaling, a lot of data gets pushed through the system. This can quickly exceed your monthly bandwidth. Hello additional expenses! Adding features to your system may also require that your service package gets bumped up to a higher priced plan. IP Whitelisting? That'll cost you extra. API access? More additional expenses!

Carrying out these investigations in-house not only gives you more flexible, but will not incur fees, get you upsold, or exceed your bandwidth allowance.

Hosted systems also tend to get updates and feature changes more frequently than locally installed systems, mainly because the changes are easier to push out. When those changes remove features you relied on, overwrite features you had customized, add features you don’t want, or come at a time when retraining staff is difficult, your business will suffer. Having your own system allows you to schedule updates for a time that best works for the company, and gives you more direct control over selecting which features are added, retained, customized or removed.

4. Cost and Freedom

Cost is a contentious issue when discussing outsourcing versus building in-house. Clearly the up-front costs are cheaper when outsourcing your hosting needs. But just as buying orange juice is cheaper than buying oranges, your going to get squeezed along the way and end up with a watered down product.

You also have a lack of flexibility. You control neither the hardware nor the applications, so you cannot customize them to your needs. Issues such as network latency, suboptimal default settings, server downtime, and many other unadvertised drawbacks can really eat into your work day and reduce productivity. Your network speed may even be held hostage by the large ISP providers in a very modern version of highway robbery.

The best time to get your code out of the cloud, is before it goes in!

Once these promised savings evaporate through lost productivity, you are shackled with that vendor lock-in clause, and your work is the property of a privacy policy altering hosting provider you might begin to rethink your situation.

Job Satisfaction Interesting Job

5. In-house Domain Expertise

One often overlooked benefit of doing things for yourself is the massive amounts of knowledge acquired when tackling challenges on a daily basis. Handling things in-house not only grows the domain expertise amongst your teams, but gives them a sense of ownership and responsibility towards a project. When this is the case, you get more engaged colleagues who actively seek out improvements in your work environment, and in times of crisis know how to react correctly and effectively. This also has the additional benefit of making people feel fully part of a company and experiencing a sense of creation on a daily basis, and that usually gives you a much happier work place.

Brian