Agile Development Infrastructure—on Premises or in the Cloud?

minimize capital expenses and lower upfront costs since you do not have to buy hardware, software, and other components. Effectively the infrastructure (e.g., servers, software, etc.) becomes more of an operating cost instead of a capital expenditure. Another advantage of this approach is that you do not have to establish and manage the infrastructure. This includes not having to hire and manage IT staff for maintenance and upgrade work. However, with this being said, it is important to have people on your staff that knows how portable the data is that is being hosted and how easy (or challenging) it is to get it off the cloud should the service provider go out of business.

This infrastructure will include the same type of infrastructure and network components that a locally owned infrastructure would include and in some cases have servers that have some of the database and tools already installed. This approach can be particularly advantages when you are a start-up organization that has not yet released a product or are early in the product business. It may not be right for mission critical applications and in a situation where data is highly confidential. In general, the size and newness of company and product line is a factor where renting the cloud can be advantageous.

A distinct advantage for those who are agile proponents, is that the cloud infrastructure provider approach enables users to only use what they need, something that is directly in line with agile  This "use what you need" approach minimizes infrastructure debt and allows the product team to adjust and scale to their need in a just-in-time manner.

The biggest disadvantage is that there may be security, control, and privacy concerns. Remember, when renting space in the cloud via a provider service, all of your product code, data, and documents will effectively be sitting on someone else's systems (e.g., the service or platform provider). It is important to ensure there is security related software, network, and protocol that support this service from authentication to access control. Interestingly enough because cloud service providers know this is a concern for many, security measures are often well managed in these environments. Finally, it is important to gauge the profitability of the cloud infrastructure service provider you select. If service provider goes out of business, it may be difficult to get your data converted and hosted by another provider. Understand how portable your data will be to another platform and ensure you have backups readily available in another location.

Other disadvantages with this approach is that the ability to customize the infrastructure and software therein is reduced, many of the integration issues may remain if there is a high degree of complexity in the working environments, and that there is less control over the skill level of the support staff meaning sometimes they will be experienced and quick troubleshooters and other times they will not.

When using this approach, it is important to ensure that the cloud infrastructure provider being used has prescribed service levels, established backup, recovery, and fail-over processes, is able to meet regulatory compliance standards, has the ability to allow you to scale up, provision, and instantiate quickly, and other factors for support, load balancing, and performance. Other factors that should be considered before selecting a cloud infrastructure provider is their financials such as their cash position, spend rate, profit margins, etc.

When using either the physically owned or rented cloud approach, you should have an application architecture and network diagram established which includes the platforms, operating environments, interfaces, services, locations (physical or cloud). The specifics of the design will

About the author

Mario  Moreira's picture
Mario Moreira

Mario Moreira is a Columnist for the CM Journal, a writer for the Agile Journal, an Author, an Agile and CM expert for CA, and has worked in the CM field since 1986 and in the Agile field since 1998. He has experience with numerous CM technologies and processes and has implemented CM on over 150 applications/products, which include establishing global SCM infrastructures. He is a certified ScrumMaster in the Agile arena having implemented Scrum and XP practices. He holds an MA in Mass Communication with an emphasis on communication technologies. Mario also brings years of Project Management, Software Quality Assurance, Requirement Management, facilitation, and team building skills and experience. Mario is the author of a new book entitled “Adapting Configuration Management for Agile Teams” (via Wiley Publishing). It provides an Agile Primer and a CM Primer, and how to adapt CM practices for Agile Teams. Mario is also the author of the CM book entitled, “Software Configuration Management Implementation Roadmap.” It includes step-by-step guidance for implementing SCM at the organization, application, and project level with numerous examples. Also consider visiting Mario’s blog on CM for Agile and Agile adoption at http://cmforagile.blogspot.com/ . You may reach Mario by email at Mario.Moreira@cmcrossroads.com.