Two ideas that together innovate a winning solution are DevOps and the rapid application development (RAD) model. The tried-and-true evolution of software development has proved that using the same method to oversee software development stages is more effective in eliminating postproduction problems with software performance and integration. Software manufacturers such as IBM have harvested the value of DevOps by offering tools that boost and enrich a business' existing computing systems to achieve new heights in rapid software development.
When businesses need to develop new software features, functions, and processes, staff must coordinate their efforts to accommodate parallel deliveries. Testers must test and retest, software developers must develop and modify their code, and configuration managers must track and update their versions and revisions accordingly—a significant undertaking in small and medium-sized businesses (SMBs) as well as enterprises. Moreover, organizations tend to create multiple, differing approaches to handling the daunting task of repeating the process and facing the same challenges, which adds to the frustration of lengthy and complex procedures. Couple all this with technological limitations stemming from existing infrastructure, topologies, bandwidth, and software choices, and DevOps becomes the hero that swoops in to save the day.
DevOps supply and demand
Rapid software production benefits from software tools that activate DevOps processes. Where DevOps and rapid software production are implemented, businesses can more quickly supply the software that meets customer demands. Accompanying DevOps is cloud-based computing, which affords multiplatform virtual environments, large-scale software development and implementation, and storage and retrieval of large files and big data.
At a recent hosted DevOps conference sponsored by IBM and JumpCloud, attendees polled for their opinions on the impact of software automation on recent technology innovations responded favorably that DevOps for rapid software production—RAD prototyping, software automation, and system orchestration—is in high demand and that those innovations serve as the chief competitive factors that drive business revenue in technology-centric businesses. Among the 100 businesses in attendance:
- 75% classified themselves as DevOps businesses;
- 15% were on their way to becoming DevOps businesses; and
- More than 80% of the respondents are using a cloud solution for their DevOps/RAD prototyping.
The percentages of DevOps business respondents taking steps to increase automation in their organizations were distributed among the following technologies:
- 75% currently require automated configuration tools (for example, Puppet and Chef).
- 33% currently require an automated patch, fix, and update tool.
- More than 50% currently require preconstructed system images to automate uniform installations.
In addition, businesses responded that their manual DevOps processes were made up primarily of deployment tasks; patch, fix, and update activities; administrating user, group, and system accounts; and the forensic analysis of log file data. Indeed, this survey is one of many that prove that DevOps frameworks and automation tools are essential to controlling the rapid production of software.
DevOps offers the best of both worlds, integrating human interaction with software automation. The objective, after all, is to deploy well-built software that seamlessly integrates with the existing production environment. At first glance, an orchestrated software development solution would accomplish this objective on its own, but communication among software operations, quality assurance (QA), and development teams requires a common goal, synchronization of efforts, and the safe resolution of barriers to effective teamwork and product development (see Figure 1).
Figure 1. Integrated software development with DevOps
Operations development teams typically use outmoded technologies as an economical, cost-effective solution to ongoing system maintenance and upgrades. Software development teams typically use the latest technologies to continually evolve to the "next best thing" in ensuring error-free configurations and deliverables. Being able to merge user and system requirements into a compliant software deliverable means that software development processes must consistently ensure quality, perpetually allow product iterations and modifications, and continually follow effective software development methodologies. DevOps offers that level of assurance to business operations and goes beyond by providing expedited delivery of software development products. By isolating latency in software development processes, businesses have proof that they must provide the fastest processors, displays, and computing speeds to automate redundant processes without slowing down time to delivery. Organizing corrections to possible system errors (for example, when the system automation code loops continually and requires human interaction) and deciding the best courses of actions and technical approaches for using DevOps procedures are human interaction factors that weigh heavily on the success of the selected DevOps solution.
As a result, DevOps solutions are models of technical approaches to software development that also honor the production environment and its internal controls to optimize the value of existing assets. Software development models include:
- Iterative development. Repeated refinements to a prototype until it's perfected
- Incremental development. Repeated additions to a prototype until it's perfected
- Waterfall and modified waterfall development. A steady, forward-flowing process that develops a prototype one step at a time until it's completed
- IBM® Rational® Unified Process. Tailored to the needs of both the development and the operations teams
- RAD prototyping. Rapid prototyping, which requires minimal planning
The combination of Rational Unified Process and RAD prototyping has propelled the high demand for DevOps for rapid software production in SMBs and enterprises alike.
DevOps and rapid software production
IBM supplies the software required to capitalize on Rational Unified Process and RAD prototyping, which some businesses enable to see double and triple turnovers in return on investment (ROI). The ROI is driven by IBM's innovative product lines, including its contribution toward cloud-based computing with its DevOps for Cloud Computing solutions and its Apache Maven integration for portlet projects through IBM® Rational® Application Developer for WebSphere® Software. See Table 1.
Benefits to rapid software development and DevOps by capability
|Capability||Benefit to rapid software production||Benefit to DevOps|
|Rapid software production support in the form of scalable virtualization solutions, elastic networks, and high-bandwidth-intensive accommodations for big data requirements||Full-scale test and development environments||Independent hybrid or public environments to complement a business' existing computing environment|
|Tools for accomplishing agile application lifecycle management with DevOps||IBM® Rational® DOORS® Next Generation, IBM® Rational Team Concert™, and IBM® Rational® Quality Manager facilitate defining traceability between user and system requirements and the associated work items as well as reporting QA and quality control metrics||Based on human interaction but automated to ensure accuracy, usability, and reliability of the software products being developed|
Harnessing a consistent speed of performance
Constructing new software solutions while holding on to existing technologies and processes constrains the software development process, often limiting which and how much development can be accomplished at any given time. What businesses really want is a way to speed up software development production so that they can manifest new ideas in a timely manner. Capitalizing on innovation is often time sensitive. If software development requires months to finish, the innovation may no longer be useful.
However, DevOps provides the means by which organizations can repeatedly develop and deliver software product after software product within expedited time frames (see Figure 2). The implementation of DevOps requires only that the rapid software production tools be available, in place, and working to accomplish the business' software development objectives.
Figure 2. The rapid application development process flow
The first step in expediting software development with business operations in mind is understanding that teamwork is required. Of course, teams must share responsibility for software development to produce quality software products, but they must also communicate and use the software development life cycle (SDLC) to coordinate the timely completion of predefined DevOps processes and methodologies. For example, rollbacks preserve the integrity of code during software development by allowing developers to return a set of code changes to an earlier version or an earlier point of development. When this is the case, teams must roll back the SDLC process to match the point of software code completion. Teams must also roll back their procedures for software development and testing to erase all code modifications made since the last good version or revision.
The next step is to shorten development cycles. Rapid software production is foundational to RAD prototyping. Little planning is required, because the technical approach uses object-oriented programming (OOP). DevOps provides the structure, and OOP provides the programming precision to allow faster changes to and completions of software products. For example, a prototype of a search engine may comprise a single field on a Web page that accepts typed-in search criteria. When entered, the user clicks a Go button to invoke the search, and the search engine returns a results set. Although simplified, this is an example of basic software code development that constructs the Web page as an object, the data sources as objects, and the executable search code as an object. Completed individually, teams can shorten the amount of software development time required, but team responsibilities for operations could delay software development in the event the team doesn't communicate or members disagree on their role in the SDLC. DevOps and rapid software production work together to alleviate this confusion through methods such as code reuse, virtualization (to save the time required to install system images), and automated deployments, which speed up the SDLC process immensely. In other words, each human interaction can be associated with an automated process in DevOps. Rapid software production is therefore achievable by promoting stronger communications in a dynamic environment, using requirements development and definition principles, and implementing RAD prototyping. Benefits of doing all this include shorter development life cycles, usability, scalability, interoperability, resilience through quality processes, portability, and improved quality.
Winning business with DevOps and rapid software production
New DevOps innovations are evolving to further expedite software development and delivery. Businesses face the ever-increasing challenge of providing near-instant gratification to their customers. The software manufacturer that gets the latest customer demand to the market first wins the lion's share of the market. Therefore, software delivery is constrained only by the time required to develop a quality product. This is a key driver of rapid software production. Businesses generate revenue when they are the first to bring products to the market. To meet market demand, both DevOps and rapid software production are required. Businesses not only gain substantial competitive advantages but also enhanced predictability of operations, improved consistency of operations, and reduced costs for higher profitability.
Rapid software production tools
The pièce de résistance is the set of tools that automate DevOps processes. Implementing rapid software production requires high-quality automation tools that address the SDLC and its specific steps (see Figure 3). RAD tools are software applications that make prototype development easier by offering automated functionality to the development process, such as providing middleware support for cross-platform RAD prototype development, serving as database interconnectors, embedding controls within the software product, adding alerts and notification capabilities, organizing components of the software product, providing programming and development support from the desktop, and aiding in cloud-based RAD prototyping.
Figure 3. The SDLC
DevOps is a business' answer to providing a framework for repeated successes in quickly developing and delivering software products. Using the initiate, develop, and deploy structure for software development supports SDLC phases and provides a safe technical approach to mass production. As a result, businesses can meet market demand for innovations on an expedited basis, with 24x7x365 software development operations. Businesses now have near-unlimited potential for generating revenue by bringing their software products to market sooner. DevOps has made rapid software production the most profitable software development methodology available.
- See the survey results from the JumpCloud and SoftLayer-hosted Automation Driving DevOps Adoption conference (10 February 2014).
- Read the DevOps Journal blog post, Process Facilitates Rapid Change to learn more about major changes being made to DevOps to facilitate RAD and delivery.
- Check out CA Technologies' Transforming Service Delivery Through DevOps, which discusses rapid application release automations using DevOps application delivery.
- Learn about IBM's recent acquisition of UrbanCode in IBM Escalates the DevOps War with UrbanCode Acquisition.
- Of note is the new IBM innovation, Rapid Application Deployment with Simplified Management using IBM PureApplication® Service on SoftLayer, which allows drag-and-drop application pattern creation.
- Check out Scribd's Release Management Tools: What You Need to Know for IT Operations Management to learn about the release management process and distribution options for rapid development and deployment.
- The Enterprise DevOps blog discusses a number of current topics related to DevOps.
- Browse the technology bookstore for books on these and other technical topics.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Watch developerWorks on-demand demos ranging from product installation and setup demos for beginners to advanced functionality for experienced developers.
- Follow developerWorks on Twitter.
Get products and technologies
- Try IBM DevOps Services, a place where you can plan, develop, track, and deploy software.
- Learn more about and try IBM Softlayer, a virtual server.
- Learn more about IBM Rational Unified Process.
- Learn more about IBM SmartCloud.
- Download a trial version of Rational Application Developer for WebSphere Software.
- Learn more about Rational DOORS Next Generation.
- Learn more about Rational Team Concert.
- The Rational Quality Manager product description explains how this collaboration and automation tool helps you manage quality and testing. A trial version is also available for download.
- Join the developerWorks community, a professional network and unified set of community tools for connecting, sharing, and collaborating.
- The developerWorks DevOps community is a community space for DevOps practitioners to share their stories, practices and tips.