Note: Click the player above to hear my podcast interview on hosted development with Jeffrey Walker and Jeff Leyser from Atlassian Software.
Hosted software as a service (SaaS) development solutions have become an important option for mainstream programmers. These products range from straightforward offsite storage, such as Amazon's S3 service, to fully outsourced platform as a service (PaaS) application environments, like that which Salesforce.com provides in Force.com.
To learn about hosted software development, I asked two folks from Atlassian Software, which provides hosted group collaboration and software development tools, for an interview. Jeffrey Walker, the company's President, and Jeff Leyser, Product Marketing Manager, briefed me on issues related to hosted software development.
What is hosted development?
Development systems consist of an integrated development environment (IDE), where programmers directly write and compile their code, along with other supporting tools. Two critical components sitting outside the IDE are the repository, where code is stored and its history maintained over time, and the defect tracking system, where developers track and manage bugs.
Hosted development solutions, such as Atlassian's Jira Studio, provide these non-IDE components, along with other software development and collaboration tools, over the Internet.
In contrast, full PaaS systems, like Force.com, allow applications actually to run on their system. In other words, platforms include the IDE, supporting tools, have their own development language, and incorporate a run-time system.
What are advantages and disadvantages of hosted vs. local software development?
With hosted development, the hosting provider maintains the development infrastructure, relieving developers of this burden. This yields stable and predictable costs, as with other types of SaaS offerings. Ideally, hosted environments should also embody development best practices, such as incorporating tools to make code reviews easier and faster.
Disadvantages of hosted development include perceived concerns around the safety of intellectual property. Although this issue exists in any remotely hosted SaaS environment, software companies may be reluctant to entrust their key intellectual assets to a remote service provider. Another issue is customization, because SaaS development tools are generally less configurable than locally managed, on-site systems. Similarly, it is easier to integrate internal systems, such as LDAP directories, with local tools than with hosted systems.
When is hosted development most appropriate?
Geographically distributed teams are an obvious candidate, particularly where organizations combine offshore development with an onshore team. Hosted development gives both local and remote groups straightforward access to code and a standardized set of tools anywhere the Internet is available. Hosted solutions also simplify implementing common workflow processes across a distributed team.
How is the workflow and process different with hosted development?
The initial setup and infrastructure planning are quite different with hosted development. However, the daily programming workflow is the same in both local and hosted development environments. Features and functions of the tools drive workflow, regardless whether the tools are behind the firewall or installed locally.
Any comments on Salesforce.com's hosted development platform?
Answered via email: It will be a cold day in Hell before someone builds a serious piece of software totally unaffiliated with SFDC on Force.com. I am sure SFDC can name examples but I would just point to the failure of the AppExchange after huge promotion and investment....Be careful in comparing a hosted development environment that allows for a myriad of types of projects, like ours aspires to be, with ones that promote a self-serving agenda or proprietary infrastructure.