We have 4005 guests and 14 members online

Agile Sponsors

HP


CollabNet


TechWell

Home > Articles > Columns > Articles > Winning Combination of Agile and the Cloud

Winning Combination of Agile and the Cloud

E-mail
Written by Mario Moreira   
Tuesday, 12 April 2011 11:47

winningAgile is a software development method based on an iterative and incremental approach.  Where the iteration (aka, sprint) is expressed as a timebox of work typically two to four weeks long, the increment is the functional product deliverable at end of each iteration.  As most software professionals are aware, the action of delivering the increment into the traditional on-premise software product environment is less than straightforward.

The cloud model conveniently provides shared software products via the Internet that can be scaled and configured to a company’s needs.  While not technically a new concept, the cloud changes the product installation paradigm by providing the product as a service “in the clouds” to companies that need that software product. Companies no longer need local administrators to handle the rigorous and time-consuming effort of establishing on-premise software product infrastructure.  The cloud-computing model provides more than just software products in the clouds; it also offers data access, storage services, and other infrastructure needs.

This article focuses on the reciprocal benefits of agile and the cloud. Agile allows for the continuous building of the software product increment (aka, functionality), and the cloud continually delivers the product to the customer with the customer exerting little effort .The cloud provides some agile projects with a way of getting tools and infrastructure to the team in a just-in-time manner, as the team provides continuous value to the customer into the cloud.

Challenges with Establishing Infrastructure Using Agile
Many agile projects, particularly those focused on brand-new products, struggle with getting their infrastructure and tools up and running.  Much of the reason is that the time and effort needed to establish them far exceeds the time it takes to start agile development.  When you apply agile, you start building the product in the very first sprint, so, you want to avoid building excessive infrastructure that may constrain you, but you want to establish enough to keep you stable and productive.

Agile moves away from big effort up front in as many areas as possible and applies a more evolutionary approach to both building products, and scaling tool and infrastructure needs.  Examples of needed tools and infrastructure include servers and networks, as well as development, requirements (aka, backlog management or agile planning), configuration management, build, defect tracking, and test tools used within the product development context.

The challenge is then how to build an infrastructure that supports agile while not obstructing the progress of the agile team that must continue to deliver value.  One suggestion is to utilize the infrastructure envisioning approach, which applies an incremental approach to the continuous establishment of an effective infrastructure. This is where the cloud can be a good friend to agile teams.

Cloud for Tools and Infrastructure
To get an idea of the context of infrastructure, it is important to envision the new product’s infrastructure needs.  Within an agile framework, this may be best served by implementing a sprint 0 where you can focus on your infrastructure needs.  The goal of infrastructure envisioning is to identify the initial scope of the infrastructure, access feasibility of technologies, and establish a reasonable go-forward direction.       

The Agile Manifesto says "[We value] Individuals and interactions over processes and tools."  This is an example of not allowing tools to drive or constrain the interaction.  The key is to minimize the focus on tools, which is another benefit of the cloud.  There are tools and infrastructure in the cloud that teams can take advantage of without focusing too much of the project’s resources on processes and tools. This allows for more focus on individuals and interactions.

Some organizations are renting or leasing cloud hosted infrastructure (servers, software, etc.) from cloud infrastructure providers. This service is sometimes known as cloud computing, but it has a variety of other names each with slightly different focuses and approaches: software as a service (sometimes known as the application service provider model), platform as a service, and application infrastructure provider.  A distinct advantage for agile proponents is that the cloud infrastructure approach enables users to use only what they need, something that is directly in line with agile. This "use-what-you-need" approach minimizes technology debt and allows the team to adjust and scale its needs in a just-in-time manner.

Examples of cloud infrastructure providers include Right Scale, Rackspace, and GoGrid. Examples of cloud platform and application providers include Force.com, Drupal, and CA Agile Vision.  And there are many more.

Agile to Build the Cloud
Building applications for the clouds provides us with a production environment that many teams can take advantage of almost instantly.  While most products require an on-premise installation, using cloud products reduces the need for having administrators handle the often rigorous and time-consuming effort of installing the new releases of the software product infrastructure. Because agile utilizes an iterative and incremental approach, cloud products can be incrementally upgraded when the end-of-sprint review (aka, demo) indicates that the product is ready.  In the traditional, on-premise world, this requires the concerted effort of preparing a user installation process, convincing numerous administrators who have local installations of the product to upgrade their environment, and then actually going through the often rigorous upgrade process.  If the company is using a cloud product, this whole laborious effort is virtually eliminated.  While some companies are not comfortable with using products from the cloud, many are recognizing their advantages.  This enables those who develop cloud products to continuously improve product functionality by using the continuous building of customer value via agile methods.  This is a win-win for everyone.        

Conclusion
As agile methods allow for the continuous building of the software product increment (aka, functionality), the cloud gets the business value into the hands of the customer on a continuous basis with little effort on the customer side.  In addition, the cloud provides agile projects with a way of utilizing tools and infrastructure in a just-in-time manner so that the team can provide continuous value to the customer in the cloud.  This reciprocal relationship is a winning combination for project teams utilizing agile to build in the clouds and using the cloud products to run their project.

Resources
Infrastructure – On-premises or in the Clouds
, by Mario E. Moreira in the November 2009 edition of the “Agile Journal”.

Cloud companies and products: Right Scale, Rackspace, GoGrid, Force.com, Drupal, and CA Agile Vision.

About the Author An agile and configuration management (CM) expert for CA Technologies, Mario Moreira has worked in the CM field since 1986 and in the agile field since 1998.  Mario is a Certified ScrumMaster and has an MA in mass communication with an emphasis on communication technologies.  Mario possesses years of project management, architecture, software quality assurance, requirement engineering, release management, IT governance, functional management, facilitation, and team building skills and experience. Mario is a regular contributor to the Agile Journal and the CM Journal and the author of Adapting Configuration Management for Agile Teams and Software Configuration Management Implementation Roadmap. You can reach Mario by email at Mario.Moreira@cmcrossroads.com or through his blog, Agile Adoption Roadmap.


Trackback(0)

Comments (0)Add Comment


Write comment

security code
Write the displayed characters


busy
Last Updated on Tuesday, 10 May 2011 12:11
 
Cialis

Agile Marketplace - Announcements and Special Offers

Upcoming Webcasts
Sponsored by Urbancode - On Demand
Mastering Complex Application Deployment
Sponsored by CollabNet - Wednesday, August 24, 2011
Closing the Agile Loop: Continuous Integration, Continuous Information

ScrumWorks Pro – The World’s Best Agile Project Management Tool
Simply put, CollabNet’s ScrumWorks Pro is the best Agile project management solution on the market, bar none. More than 150,000 Agile professionals rely on the power and simplicity of ScrumWorks every day.  But don’t take our word for it – try it yourself for free. CollabNet is now providing the first 10 users of ScrumWorks Pro at no charge!
Download ScrumWorks Pro today!

The Business Case for ALM Transformation
Are legacy systems holding your company back?  Breakthrough these technical constraints with an open and scalable environment that meets your unique business need to transform. There is no reason to be locked into an obsolete platform. The output of a number of recent transitions from legacy systems, this is practical white paper shares lessons learned and illustrates how guidance and enablement can pave the way for change.
Download this Whitepaper