DevOps for rapid software production

DevOps + RAD = the best of both worlds

Producing IT software solutions fast enough to meet operational demands has become increasingly challenging for technology-rich businesses. The process is labor intensive and requires iterative procedures as well as 24x7 attentiveness to integrating, compiling, and testing code. At first glance, throwing additional resources at the problem seems the logical response, but a better solution is to develop software applications more rapidly using a framework that is resilient enough to withstand mass-production automations. DevOps offers such a framework, and coupled with rapid application development, businesses can perform fast-paced prototyping, testing, and delivery while maintaining high quality standards.

Share:

Timothy Landers (landertr@universalinet.com), Consultant, Universalinet.com, LLC

Timothy LandersTimothy Landers, a principal at Universalinet.com, LLC, is a practice lead in an independent consultancy. He has an MBA in Technology Management and is a Project Management Institute-certified Project Management Professional with more than 15 years in increasingly more responsible roles within the IT field. He has written more than 40 technical courses for corporate training, vocational training, and higher education plus new product manuals, professional certification exams, and commercial sales catalogs (such as SkillSoft).



24 June 2014

Also available in Japanese

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 exactness

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
Image showing 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
CapabilityBenefit to rapid software productionBenefit 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 environmentsIndependent 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
Image showing the RAD process flow

Step 1

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.

Step 2

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
Image showing the SDLC

Conclusion

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.

Resources

Learn

Get products and technologies

Discuss

  • 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.

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into DevOps on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=DevOps, Rational
ArticleID=975155
ArticleTitle=DevOps for rapid software production
publish-date=06242014