Development 2.0: Borrowed infrastructures

how-to
May 21, 20094 mins

development 2.0: high costs!
In three earlier posts, I discussed the notion of Development 2.0, which aims to leverage open-source technologies and borrowed infrastructures to ultimately produce working software faster. What’s more, these techniques have the benefit of lowering the cost of development.

While each aspect of Development 2.0 isn’t really new, they are increasingly becoming a reality for businesses across the board. In essence, both open-source and borrowed infrastructures are hear to stay; thus, companies must start to ask themselves whether or not they’ll take advantage of them.

Software requires hardware. Accordingly, many businesses have an inventory of hardware for running software applications like databases, application servers, change management systems, and defect tracking tools to name a few. Yet, in this day and age, the hardware associated with running most of these applications (such as an application server) can be easily jettisoned in favor of using the same software packages as a service running on someone else’s infrastructure.

For example, rather than purchasing a machine to run a change management system (such as Subversion or Git, which are both open source, freely available change management systems), a team can avoid the hardware cost by utilizing a shared change management service like GitHub. Thus, the company behind GitHub incurs the cost of hardware assets and charges a nominal fee (usually monthly per user) for other organizations to use Git. This same principle of renting software as a service from other providers can be leveraged for defect tracking, test case management, requirements management (i.e. Assembla, Zephyr, and Pivotal Tracker) just to name a few. In essence, the entire stack of applications a team might utilize to manage a development process can be borrowed (i.e. rented for a small fee, which thus frees a company from having to invest in the hardware to run such applications).

Likewise, the same can be said for the underlying hardware assets that other software platforms (usually custom in nature) run on; that is, a business can jettison the underlying hardware for a particular web application in favor of running this application on hardware provided by Amazon or Google. Both companies offer the ability to rent hardware in varying degrees, which can literally host an application; what’s more, the issues of managing scalability, backups, and even security are all handled by these companies. The beauty of relying on Amazon or Google is that they’ve figured such concerns out long ago and are most assuredly better at dealing with and innovating around the aspects of efficiently running software platforms.

Thus, by using Google’s App Engine, for example, an IT company can lower the overall cost of purchasing an infrastructure to run needed applications; plus deploy those applications quicker as the myriad cross cutting concerns associated with application deployment and management are already taken into account and thus provided for (and most likely in a superior manner).

Take, for example, the New York Times, which generated roughly 11 million articles (claiming almost 4 terabytes of space) for its website. These articles were generated from another dissimilar format in roughly 24 hours by leveraging 100 instances of Amazon’s EC2 (for processing power) and S3 (for storage) at an estimated cost of $240. What’s more, the application built to handle the generation of these articles was entirely built with open source technologies. Therefore, the total cost of the entire project was the aforementioned cost (the team actually had to rerun the process so the cost was roughly $500) plus the labor costs of one developer. Now imagine the cost of this project had the New York Times gone the traditional route (or Development 1.0) — machines would have to have been acquired (remember, they leveraged 100 instances to achieve the 24 hour processing time) plus the related software to generate PDF documents.

Thus, the model of borrowing someone else’s infrastructure (which has collectively been labeled the cloud) combined with writing fewer lines of code by using open source technologies can drastically decrease the time to develop applications all while lowering the total cost of such an effort.

Development 2.0 addresses the frustrations that businesses have with IT organizations; that is, by utilizing open source technologies, companies can deliver value quicker because the minutia of a technology infrastructure has already been built and is maintained by other, more capable teams. Furthermore, the infrastructure required to manage software teams and deploy their resulting assets can be borrowed from more capable providers at a substantial cost savings while also decreasing developmental times. Development 2.0 delivers better features faster at a lower cost.

You can now follow The Disco Blog on Twitter, baby!
andrew_glover

When Andrew Glover isn't listening to “Funkytown” or “Le Freak” he enjoys speaking on the No Fluff Just Stuff Tour. He also writes articles for multiple online publications including IBM's developerWorks and O'Reilly’s ONJava and ONLamp portals. Andrew is also the co-author of Java Testing Patterns, which was published by Wiley in September 2004; Addison-Wesley’s Continuous Integration; and Manning’s Groovy in Action.

More from this author