Hosted version control providers have been around as long as Subversion and Git. CollabNet released the first version of Subversion in 2000 while Git first appeared in 2005. CollabNet’s Codesion (nee CVSDude) started out as a server in a bedroom in 2002 and weren’t the first or only kids on the block. Today, a quick Google search for “hosted version control” yields over 29 million results. Obviously, there aren’t 29 million providers out there but it is a topic of much discussion and debate.
To date, most of the users of cloud-based version control have had little or no IT support and have fallen into one of several categories: open source development, start-ups/SMBs, or shadow IT projects, but I think this is starting to change. We are reaching an inflection point where Enterprise Development in the Cloud is increasingly becoming not only viable but attractive.
The internet has been a boon to developer collaboration and open source projects. With sites like StackOverflow, SourceForge, Gitorious and many more, developers are able to share ideas, share code, ask questions, etc. Likewise, start ups and SMB’s run pretty lean these days. Gone are the heady days of dot com funding, replaced by fiscal responsibility. The cloud (IaaS, Paas, SaaS) has supplanted the need for expensive infrastructure. It is this last category of cloud developers (Shadow IT projects), though, that is shaping this movement towards Enterprise development in the cloud.
To explain why I think this is the case, we need to go back 10 years and look at the IT and internet landscape when SalesForce.com (SFDC) arrived on the scene. Today, SalesForce is one of the great success stories of SaaS and the cloud in general, but 10 years ago many people doubted that SFDC and CRM in the cloud would ever succeed, let alone gain Enterprise adoption. I was a sales engineer at the time and I distinctly remember talking to other sales people and IT managers that scoffed at the idea storing something as important as sales contacts on the internet. How can they expect companies to put that kind of Intellectual Property (IP) on third-party servers? What we underestimated were the needs of distributed sales teams for a solution and the ability of SalesForce to overcome the IT objections regarding data security, data availability, and data portability (by portability I mean that the data isn’t stuck in the cloud).
At the time, sales teams had to choose between a centralized model like Siebel for all of their account information or a distributed model like ACT!. Not every enterprise had the time and resources to roll out a new global SFDC solution or upgrade existing systems to give both sales teams and sales managers the requisite account visibility. Even with a centralized SFDC application many field salespeople used their own contact management software from home or the hotel for day-to-day activities. The distributed model, on the other hand, was already available to everyone and gave distributed salespeople full control of their accounts, leaving sales managers with almost no account visibility. In either case precious account information was kept unprotected on laptops. Neither of these models fully met the needs of sales reps, sales management, or IT.
SFDC and CRM might have trudged along in this path of enterprise application integration (EAI) and modernization for many years if not for two things. First, VP’s of Sales aren’t typically the type of people to sit idly by when IT tells them they will have to just wait for a better solution like every other department. Second, SalesForce was out in the market generating buzz. By no means was it a perfect solution but it did hold enough promise that impatient Sales VP’s gave it a chance; with or without the blessing of IT.
‘Shadow IT’ approaches a problem with the assumption that it is better to ask for forgiveness than permission. The tipping point comes when it is time to ask for forgiveness; a solution either becomes blessed by IT or it is forcefully abandoned. In the case of SalesForce, when it came time for the sales team to defend their actions they were prepared. They showed that they were more efficient as a team; managers had visibility into the accounts and could create accurate funnels; and sales reps had easy access at home, the office, or at a hotel. For their own part SalesForce ensured that the customer data was available, portable, and secure. Without a comparable alternative of their own to offer right away and their major objections answered, IT begrudgingly began to accept having corporate data off-site.
Does that mean every enterprise application will suddenly move to the public cloud? Doubtful, but I think it does show that a compelling business case combined with an enterprise-ready SaaS platform can be successful. Sales teams had a compelling business need for a better solution and the will to look externally. SalesForce provided an enterprise-ready SaaS platform that might not have gained the complete trust of every CIO but overcame enough objections and provided enough value that the Sales teams could not be overruled.
So, how does that relate to development in the cloud? Unlike Sales, Application Development has traditionally been a function of a business organization or a project but not a direct function of the enterprise. Development teams are, therefore, divided into project teams specific to an organization or department and left to their own devices with little or no standardization. This results in the use of different languages, platforms, databases, project management tools and source control management. Whereas Sales required a holistic, modernized enterprise solution and were given the choice to wait for one or look externally, development teams required a project or departmental level solution and they typically managed it on their own. Whether Subversion, Git, VSS, or CVS was selected it was up to each development team to manage their own code. Many teams ran their own server in-house and some chose a hosted, cloud solution.
Development teams have lived and died by Shadow IT for years, managing all of their development tools on their own, but that is starting to change. Cloud platforms such as Force.com, Google Apps, Joyent, Amazon, etc enable high-velocity business automation. The introduction of new PaaS and IaaS solutions for private clouds extend this ability for high-velocity application deployment to IT Ops as well. This, in-turn, drives a desire for faster and faster application development, increasing the focus on Agile practices, development standardization, developer collaboration, code sharing, and DevOps (continuous integration and continuous deployment). Rapid application development has become a requirement across the enterprise and Shadow IT alone can no longer support these initiatives. It is no longer feasible to waste developer time managing servers and supporting tools. Teams that used to be independent now require a common, collaborative platform for their development tools and project management.
Development teams today are finding themselves in the exact same position that sales teams were in 10 years ago. They can no longer meet the demands of the enterprise by managing their own tools and are looking to IT for an enterprise solution. Like the sales teams before them, rather than sitting idly by waiting for an infrastructure and solution to be purpose-built for them more and more development teams are finding a ready-made solution in the cloud. Sales teams paved the way for the acceptance of business IP in the cloud and development teams are following.
Companies looking for an enterprise development solution are exploring the cloud and they are asking the exact same questions that were once asked of SalesForce: What are your security standards? (Are you PCI compliant?) What are your data portability standards? (How easily can I backup my data from the cloud?) What are your availability standards? (Do you have a disaster recovery plan in place?) Now that IT can be given satisfactory answers to these questions there is absolutely no reason to think enterprise development in the cloud will not be as important or ubiquitous as SFDC and CRM in the cloud.