Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects



Similar documents
Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud

Cloud-Enabled Software Development and Testing: Putting the Agile into the Infrastructure

Top ten reasons to transition your IT lab environments to the cloud

VMware ESXi in a Cloud-based Lab David Davis, VCP, VCAP, and vexpert

Accelerate Software Development with DevOps and Hybrid Cloud

Reinventing Virtual Learning: Delivering Hands-On Training using Cloud Computing

Parasoft and Skytap Deliver 24/7 Access to Complete Test Environments

Virtual Training Labs: Delivering Hands-On Classrooms in Cloud Environments

"Cloud Computing: Powering the Future of Testing"

Streamlining BEA WebLogic Server Application Development. With VMware Infrastructure 3. With VMware Infrastructure 3

Datamaker for Skytap. Provide full-sized environments filled with up-to-date test data in minutes

Planning, Provisioning and Deploying Enterprise Clouds with Oracle Enterprise Manager 12c Kevin Patterson, Principal Sales Consultant, Enterprise

VMware vcloud Powered Services

HP Application Lifecycle Management

Building a Converged Infrastructure with Self-Service Automation

Moving Lab Management Environments to the Cloud

Software Development In the Cloud Cloud management and ALM

Cloud computing: Innovative solutions for test environments

Azure Day Application Development

Software-Defined Storage: What it Means for the IT Practitioner WHITE PAPER

Bridging the Gap Between Acceptance Criteria and Definition of Done

Cloud Lifecycle Management

Cloud Computing: Elastic, Scalable, On-Demand IT Services for Everyone. Table of Contents. Cloud.com White Paper April Executive Summary...

Key Benefits of Microsoft Visual Studio Team System

Building Private & Hybrid Cloud Solutions

Datamation. 3 Ways to Move Application Development to the Cloud. Executive Brief. In This Paper

Your Guide to VMware Lab Manager Replacement

White Paper. Cloud Performance Testing

Build A private PaaS.

SOLUTION BRIEF Citrix Cloud Solutions Citrix Cloud Solution for Dev and Test

VALUE PROPOSITION FOR SERVICE PROVIDERS. Helping Service Providers accelerate adoption of the cloud

HP ALM11 & MS VS/TFS2010

Cost effective methods of test environment management. Prabhu Meruga Director - Solution Engineering 16 th July SCQAA Irvine, CA

Taking control of the virtual image lifecycle process

Hybrid Cloud Delivery Managing Cloud Services from Request to Retirement SOLUTION WHITE PAPER

Enhance visibility into and control over software projects IBM Rational change and release management software

systems WHITE PAPER Automating Continuous Integration over Complex IT Infrastructure

Cisco Cloud Portal Delivers Self-Service Provisioning for Data Center Services

How To Achieve Continuous Delivery

Leveraging the Cloud. September 22, Digital Government Institute Cloud-Enabled Government Conference Washington, DC

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

How To Compare The Two Cloud Computing Models

The Safe Harbor. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

IT Management On Demand

Hosting JDE EnterpriseOne in the Cloud Hear how one company went to the cloud

Storage Infrastructure as a Service

Virtualization - Adoption

"Build and Test in the Cloud "

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

GET CLOUD EMPOWERED. SEE HOW THE CLOUD CAN TRANSFORM YOUR BUSINESS.

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Designing & Managing Reliable IT Services

Office 365 SharePoint Online White Paper

The App Store Model Comes to The Enterprise

Virtualization and IaaS management

CA Automation Suite for Data Centers

Powerful analytics. and enterprise security. in a single platform. microstrategy.com 1

A Gentle Introduction to Cloud Computing

Solving the Big Data Intention-Deployment Gap

Development Testing for Agile Environments

Microsoft Modern ALM. Gilad Levy Baruch Frei

Test Lab Automation Using Virtualization. Sameer Jagtap, Director Product Management

Navigating Among the Clouds. Evaluating Public, Private and Hybrid Cloud Computing Approaches

Cloud computing: the IBM point of view

WHITE PAPER. Easing the Way to the Cloud:

Cloud Management. - assuring cloud services. Carl Lloyd. Business Lead, Service Assurance

Windows Server 2003 Migration Guide: Nutanix Webscale Converged Infrastructure Eases Migration

ArcGIS for Server: In the Cloud

Blog:

<Insert Picture Here> Cloud Computing Strategy

NetApp OnCommand Management Software Storage and Service Efficiency

Testing in a Mobile World

Advanced virtualization management for Hyper-V and System Center environments.

Reinforcing Agile Software Development in the Cloud

10 Practical Tips for Cloud Optimization

Desktop Automation: Effective Desktop Operations & Management with Cloud Orchestration

Optimize workloads to achieve success with cloud and big data

Automated Mobile Testing Requires Both Real Devices and Emulators

Competitive Comparison Between Microsoft and VMware Cloud Computing Solutions

Federal Secure Cloud Testing as a Service - TaaS Center of Excellence (CoE) Robert L. Linton

Building Private & Hybrid Cloud Solutions

Accelerating Time to Market:

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

Mile Run World Record Progression 1913 to 1999 (Source: Wikipedia) Rapid App Development Fosters Improvement

Continuous???? Copyright 2015 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

An exploration of cloud service delivery models in a hybrid environment A new depiction to corporate computing

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

Successfully managing geographically distributed development

Amazon Cloud Storage Options

CloudCenter Full Lifecycle Management. An application-defined approach to deploying and managing applications in any datacenter or cloud environment

Datacenter Management and Virtualization. Microsoft Corporation

Changing the Equation on Big Data Spending

9/26/2011. What is Virtualization? What are the different types of virtualization.

Harnessing the Power of Big Data for Real-Time IT: Sumo Logic Log Management and Analytics Service

Always On Infrastructure for Software as a Ser vice

Scale Cloud Across the Enterprise

Hybrid Cloud Places New Demands On The Network

IT Operations Management: A Service Delivery Primer

HIGH-SPEED BRIDGE TO CLOUD STORAGE

White Paper. The Importance of Automating the End to End Pipeline for Continuous Delivery

Transcription:

Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects By Seth Payne, Sr. Product Manager WHITE PAPER BROUGHT TO YOU BY SKYTAP

2 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Contents Introduction... 3 Impediments to Agility: Infrastructure Acquisition, Provisioning, & Deployment... 5 Removing the Impediments: Leveraging the Cloud... 7 Cloud Differences Impact Adoption Choices... 12 Environments vs. Infrastructure... 13 Conclusion... 14 About Skytap... 15

3 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Introduction Over the past decade, Agile development methods and continuous integration have seen broad adoption across the enterprise, large ISVs, and even amongst system integrators. The reasons for this adoption are not difficult to understand. Adopting an Agile mindset can help development and test teams improve software quality, shorten release cycles, and enable business owners and stakeholders to quickly deliver higher value to their customers. When looking at enterprise-class agile development (EAD) in particular, Gartner notes, Through 2015, 40% of organizations will actively adopt EAD to gain business differentiation for projects and programs needing strong collaboration and cross-process cooperation. 1 Why is Agile being so widely adopted? Seventy percent of those recently polled by VersionOne indicated that the adoption of Agile methods has led to a faster time to complete [software development projects]. 2 1 Gartner, Hype Cycle for Application Development, 2013, Nathan Wilson, Gordon van Huizen and Brian Prentice, July 25, 2013. 2 VersionOne, 7th Annual State of Agile Development Survey, 2013.

4 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Faster Time to Completion Faster time to complete 70% 70% Same time to complete 11% Not yet completed an Agile project 14% Slower time to complete 5% Yet, even with the adoption of Agile methods, impediments to the delivery of quality software remain. One of these impediments is the acquisition and provisioning of environments to support continuous integration and other build-and-test processes. The emergence of cloud computing and in particular, the ease with which virtualized infrastructure may be managed and deployed has provided development and test teams with a powerful tool to aid in their goal of delivering high-value software to business owners and other stakeholders quickly and consistently. This paper explores how software development and test teams can leverage complex virtualized computing environments, delivered via the cloud, to improve existing workflows and decrease the time-to-value of software development projects.

5 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Impediments to Agility: Infrastructure Acquisition, Provisioning, & Deployment Hardware virtualization has radically altered how IT and software development professionals acquire, provision, and deploy the infrastructure necessary to support critical enterprise applications as well as software development efforts. Today, over fifty percent of all x86 server infrastructure are virtualized and the number of virtualized servers increases every day. Balancing stability, flexibility, and productivity The flexibility provided by server virtualization allows IT managers to provision environments for dev/test teams quickly and with minimal configuration. But the primary responsibility of IT administrators is to support and ensure critical applications remain stable and healthy. Conversely, development and test teams are not concerned about long-term server or application stability. Rather, they are focused on build-andtest processes that often require rapid changes to server and network infrastructure. IT managers may struggle to balance the need for stable long-running enterprise applications with development and test infrastructure that may be in constant flux. As a result, the acquisition of needed environment resources can impede development as teams wait for needed servers to be provisioned and deployed. This need for infrastructure has led to fifty percent of on-premise resources being devoted to dev/test. However, as dev/test managers are reticent to give up resources once acquired, up to ninety percent of this infrastructure remains idle. 3 Hernandez, Pedro. Survey: 51% of X86 Servers Now Virtualized. Quinstreet Enterprise, http://www.serverwatch.com/server-trends/survey-51-of-x86-servers-now-virtualized.html. 4 IBM Extends Development and Test to the Ibm Cloud. IBM, http://www-03.ibm.com/press/us/en/pressrelease/29685.wss.

6 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects IT Infrastructure in the Enterprise 50% 50% IT & business-critical apps 50% Dev/Test Infrastructure 50% Dev/Test Resource Utilization 10% 90% Sitting idle, unused 90% In active use 10%

7 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Development and test teams rarely, if ever, request a single server or even several servers. Given the nature of modern multi-tiered applications that require complex heterogeneous compute, storage, and network environments, teams often require many machines running in parallel to perform build-and-test functions as part of their continuous integration workflows. Often, development and test teams are left waiting to acquire this needed infrastructure, which negatively impacts the team s ability to maintain high levels of Agile velocity in any given sprint or throughout multiple sprints. Removing the Impediments: Leveraging the Cloud The success of any Agile development project is the fluid interaction among people, Agile processes, and resources. Many teams are successful at determining the appropriate people and process interactions, but they struggle to manage computing environments that support their Agile methods. Software development and test teams can leverage cloud computing to remove impediments around resource acquisition and management, increase Agile velocity, and reduce time-to-value for business owners and stakeholders. There are five primary characteristics of cloud computing: 1. On-demand self-service provisioning 2. Elasticity and scalability 3. Broad network access 4. Resource pooling 5. Metered or measured service On-demand self-service provisioning, elasticity and scalability, as well as the tight integration of cloud-based resources with CI processes are likely the most important to development and test teams seeking to take advantage of cloud computing as a critical part of their Agile development efforts.

8 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects On-demand self-service provisioning By giving development and test teams the ability to provision needed infrastructure ondemand, organizations solve two major problems. The first is that of wasted resources sitting idle and waiting to be used. If dev/test managers can gain access to infrastructure resources on-demand, they will have no need to hold those resources idle until needed. The second problem is that even when available, existing environment resources may not meet the specific needs of a given software development project. Allowing development and test teams to acquire the specific resources they need, when needed, empowers these teams to maximize efficiency and Agile velocity. Resources may be adjusted almost immediately to meet the needs of a specific build or test. Additionally, on-demand self-service enables dev/test teams to run complex environments in parallel. This enables multiple team members to leverage and access isolated environments simultaneously eliminating wait time as well as resource contention within the team. Providing teams with the environments they need, when they need them, can significantly improve velocity and overall team efficiency.

9 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Elasticity, Scalability, and Flexibility Measured services help maximize resource utilization by allowing teams to utilize the resources they need only for as long as they are required. This eliminates the impulse to overprovision existing resources in anticipation of future requirements, as well as freeing up existing idle resources for organizational use. Application complexity and design may also drive cloud adoption by development and test teams. Modern applications are multi-tiered and may require a broad mixture of technologies. Managing such a heterogeneous environment is tedious and timeconsuming. Any time spent by developers and testers configuring or deploying systems is time not spent on developing and testing code. Cloud technologies can help alleviate if not altogether eliminate this problem. Complex, multi-tiered application environments can be built in the cloud and, through the use of snapshot or template functions, be captured as a golden copy that can be deployed over and over again quickly with a few button clicks or the use of simple scripts. The ability to replicate identical computing environments rapidly on-demand eliminates the time-consuming task of building, re-building, and tearing down complex application environments. Similarly, snapshot and template technologies enable developers and testers to save the state of an application environment at a given point in time. Such saved states can be invaluable in tracking down and resolving bugs and defects. Snapshot and template technologies allow team members to quickly share saved environments and demonstrate bugs or issues that may come to light during the continuous integration process. An onshore tester, for example, can easily save the state of an application environment so that an offshore developer can observe and work within the environment in which the bug or issue occurred. This capability frees developers and testers from the often tedious and time-consuming task of configuring whole environments in order to reproduce problematic software behavior.

10 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects API and CLI Support in the Cloud The vast majority of cloud providers offer Application Programming Interface (API) or Command-line Interface (CLI) support to control the provisioning, deployment, and management of cloud-based computing environments. API and CLI support allows infrastructure build up, tear down, and configuration to become part of test-driven development workflows. This functionality is especially powerful within teams who leverage continuous integration systems such as Jenkins or Microsoft s Team Foundation Server where infrastructure management can be made part of build, test, and continuous integration workflows. For example, when using cloud technologies, a team may define a continuous integration workflow that kicks off the automatic provisioning of a multi-tiered, multi-virtual Machine, heterogeneous application environment before deploying new code and performing integration or other tests. When the test is complete, the environment can be torn down as part of a single, uninterrupted workflow. Cloud computing then removes infrastructure constraints or delays from continuous integration workflows. This allows developers and testers to focus on their core responsibilities while maximizing and ensuring the efficient use of compute resources. Teams often see significant cost savings through the efficient use of on-demand compute resources provided by a public cloud. Team Foundation Server

11 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Post-Sprint Activities Made Easier In addition to improving test-driven development and continuous integration workflows, cloud technologies can also aid in end-of-sprint and post-sprint activities. A core principle in Agile is that usable, shippable software, however limited in functionality, should be the end-goal of any given sprint. In order to validate software functionality and ensure user stories have been completed to the satisfaction of business owners and stakeholders, iteration (or sprint) demonstrations, as well as user-acceptance testing are all essential. Ideally, such demos would be performed in-person with all team members and stake holders in the same room. However, in today s business world, with disparate team members spread across the globe this is rarely feasible. Virtual desktop, and similar technologies, enable scrum masters and product owners to easily share and demonstrate the results of any given sprint iteration. Business owners and stakeholders can quickly and easily observe completed user stories and provide essential feedback for the next sprint. Ultimately, teams can leverage these same technologies for user-acceptance testing. Teams and stakeholders can quickly and easily track the status of any development project throughout sprint iterations by leveraging the cloud.

12 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Cloud Differences Impact Adoption Choices At the most basic level, public cloud service providers must deliver three essential resources: storage, network, and compute services. At a higher level, providers offer similar on-demand, scalable compute infrastructure. However, there are differences in underlying infrastructure that may impact adoption decisions. Hardware First, virtualization requires the abstraction of physical hardware in order for platform and software to function. Hypervisors offer varying levels of support for different types of hardware. If development and test teams have specific hardware needs, it is essential that they select a cloud infrastructure that supports the virtual hardware required. Functionality Second, hypervisors support a wide range of snapshot, template, and restore functionality. For example, some hypervisors support in-memory snapshots of entire environments while others may support only saving states of individual virtual machines. Depending on application complexity, environment-level snapshots and templates may or may not be of particular importance. Geographic Third, cloud service provider data center locations where underlying infrastructure is housed may be of importance to a given team given geography and latency concerns. Platform Finally, cloud service provider infrastructures tend to optimize specific functionality. One provider may provide a simple collaboration platform while others offer granular control of disk input/output (I/O). Because of these differences, it is not uncommon for development and test teams to adopt diverse platforms to meet a range of technical and business requirements.

13 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Environments vs. Infrastructure It is important to also recognize that raw infrastructure (compute, networking and storage) is only part of the puzzle. Complete environments for developers and test engineers are an absolute necessity to the success of any application under development or test. In many software development projects, development teams often share resources or wait for environments to become available for their task. These bottlenecks slow the release of applications to production and ultimately cause increased delays, poor test coverage and more defects released into production than what is ultimately desired. Many enterprises today are looking for IaaS or on-premise resources to provide the adequate and underlying infrastructure necessary for application development. However, adding additional infrastructure is not the entire solution. There are three main contributing issues and they are as follows: 1. Developers are not in the business of wiring stacks together, configuring hardware and network connections and maintaining those environments. Development teams need turnkey environments that meet their specifications and are ready on-demand and easily disposable when not in use. 2. Self-service access to raw infrastructure does not deliver what developers need. Developers want to write code and release applications to market. Their desire to secure public cloud resources in particular is out of the necessity to complete a task. This is often called Shadow IT and it is only a by-product of developers not getting the resources they need, due to corporate IT s inability to facilitate those resources in a timely manner. 3. Regardless of public or private cloud, developers need access to full stacks that are ready to run. In the enterprise, application stacks are often very complex. Development teams need the ability to get access to those complete stacks quickly, to replicate those stacks based on a defined golden template, and to share and collaborate with those environments quickly.

14 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects Conclusion This paper highlights the advantages of leveraging cloud computing to enhance and extend Agile development and test methods. Whether a team is just beginning an Agile software project or has been steeped in Agile methods for years, the benefits of cloud computing are clear. No longer are development and test teams required to procure, provision, and manage infrastructure. Being free from this significant burden allows these teams to focus on their primary responsibilities and functions, thus increasing team efficiency and reducing time-to-value for business owners and stakeholders. In addition to removing the infrastructure management burden, cloud computing enables development and test teams to easily collaborate, perform necessary tests, and perform both iteration demonstrations and user-acceptance testing by quickly sharing access to development and test environments. Add to this full cloud integration with popular continuous integration tools and it is easy to see how the combination of cloud computing and Agile development methodologies provides development and test teams with the tools necessary to create better software built to deliver significant value to organizations and their customers.

15 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects About Skytap Skytap provides SaaS-based dev/test environments to the enterprise. Our solution removes the inefficiencies and constraints that companies have within their software development lifecycle. As a result, our customers release better software faster. Often, development teams are unable to test frequently enough due to a scarcity of test environments and long wait times accessing them. These delays have a material impact on the ability to release quality software on time. Additionally, enterprise development teams are trending towards mixed labor models, and collaboration challenges further delay projects. Skytap also provides IT with full visibility and control in order to enable dev/test teams to be effective while avoiding infrastructure sprawl and runaway costs. Skytap Cloud is an enterprise service purpose-built specifically for development and testing of complex applications. Customers can import existing virtualized applications or build new applications in the cloud. Skytap Cloud can be easily accessed through any modern web browser, REST-based API, Command Line Interface (CLI), or ALM tool (Jenkins, Visual Studio TFS, etc.). Skytap Cloud customers have a choice of infrastructure. Customers can run complex computing environments on Skytap s native ESX-based infrastructure stack on the Amazon Web Service, Amazon Elastic Compute Cloud (Amazon EC2) infrastructure.

16 Agility in the Cloud: How Dev/Test Teams Can Increase Velocity While Reducing Defects STACK Self Service Web Console REST-based API Command Line Interface ALM Tools DEV/TEST COLLABORATION IT ADMIN, VISIBILITY & CONTROL Save & Reproduce Defects Share Environments Access Controls Configuration Management Utilization Rules SKYTAP CLOUD - LAB MANAGEMENT SaaS Application Environments Self-Service Access Network Isolation Build, Deploy, Test GLOBAL VMWARE-BASED INFRASTUCTURE GLOBAL AWS-BASED INFRASTUCTURE Compute Network Storage Compute Network Storage

Skytap, Inc. 719 2nd Ave, Suite 300 Seattle, WA 98104 USA Toll Free: +1-888-SKY-TAP8 (1-888-759-8278) Web: www.skytap.com