| 
Governance in the Application Development Life Cycle: Build Management PDF Print E-mail
Research Spotlight - Research Notes
Written by Ron Exler   
Sunday, 15 April 2007
RFG believes build management, the process of transforming raw code into executable applications, is growing in importance in enterprises' application development life cycles. Managing application builds and deployment, once a background task seeing relatively scant interest, is rising to the top of the minds of development managers. This is because of a confluence of compliance and governance, and a realization of the direct links to application quality outcomes. IT executives should closely examine processes and tools in use to be sure they are adequate for current complex requirements and deployment environments. Business Imperatives:
  • Build management is emerging from the background. Managing builds has, since the beginning of application development, taken a back seat to other elements of the development life cycle. Oftentimes it was considered an administrative task and a rather messy necessity. Now, however, with the need for proper audit trails, cost reduction pressures, security issues, quality concerns, and complex deployment scenarios, build management is becoming one of the last frontiers for significant improvement. IT executives should examine their build management processes and solutions they are gaining in importance, and will soon match the levels of version control and defect tracking.
  • Finding and fixing the causes of build errors is much less costly early in the development process. Also, schedule demands have led to extreme pressure to accelerate the application development life cycle, while quality thresholds have risen. Because many errors remain hidden until software is built, the general practice has evolved over the years from periodic builds, to weekly builds, to nightly builds. Some projects build continuously, every time a code change is checked into version control. With distributed development, including outsourcing, as well as agile development, builds can be needed at any time in separate locations. IT executives should examine build frequency, and ensure proper process and tool use to match the complexity of their application deployment scenarios.
  • Quality should the top priority in software development, but studies and results of projects often show that it is not. The ability to integrate quality checks into the early parts of the development life cycle can have tremendous positive effects, as can proper processes. The related tasks of managing release builds in today's complex service-oriented architecture (SOA) and multiple-platform deployment environments require automation and continuous human oversight to attain the highest quality, lowest risk outcomes with proper audit trails. IT executives should determine if sufficient expertise exists in house for build management, whether critical build/release knowledge is only understood by limited resources, and whether tools in use are adequate and can meet the long term needs of the enterprise. Then, if, appropriate, they should seek external assistance.
The potential for bad things to happen to good projects is drives what build management. Companies are concerned with adhering to the best practices, quality initiatives, and many regulations necessary for running their businesses. For those developing applications, the ripple effect of this scrutiny means they must improve how well they can audit and secure their applications. To do so requires proper granularity of traceability. Build management can provide such insurance.

When build management is not done correctly, it leads to big problems. The release process can be a troublesome bottleneck. Using ad hoc scripts, developers might assemble code with old or broken components. Or the dependencies between application components could be missed. In addition, improper build management errors can easily find their way into deployed applications. Oftentimes builds simply take too long to complete, delaying important application releases. Furthermore, fixing these problems can be a laborious and time consuming process.

Strategies for improving build management involve not only addressing the scripts but providing needed horsepower to the build process. In many enterprises, large builds now run on dedicated servers or across a series of connected server grids. However, it is a mistake to blindly apply more horsepower to improve build performance without investigating the underlying causes of issues.

Builds are considered too slow for a variety of reasons. In many cases, the applications are large and growing, leading to longer compile times. In addition, some of the build tools build and compile everything regardless of changes, such that a few changes in a large application can still result in a slow build. An approach used in some commercial tools is to scan for dependencies, thus reducing the builds to be incremental, saving time and resources. IT executives facing unacceptable build performance should first determine underlying reasons for the issue and then apply a strategy that addresses those findings.

Ideally, build management is invisible. The trick is to come up with a robust end-to-end process for the specific organization. For example, by automatically generating a build whenever a developer checks in changed code, errors are caught at that point. This concept of continuous integration is now touted by many as a key component to a successful modern build methodology. In addition, enterprises can achieve further quality by automating the test process as well when a build executes successfully.

Build Management Processes and People
No process works without the cooperation of the people involved. Some developers view process in general and build management specifically as unhelpful. There is a strong and large subculture in development that posits that anything that gets in their way, slows them down, or adds unnecessary burden is an inhibitor to progress. IT executives needing to promote build management must show how it improves not only project outcomes but individual developer performance.

Agile development also changes build management. Awareness of the importance of proper builds increases with the need to deliver on every cycle of development. The acknowledgement, however, is tempered by the attitude amongst some that they can pick and choose what to do, rather than following a traditional methodology.

In some shops the concept of continuous build and test is catching on. The concept is that whenever a developer checks in code, there is an automatic build and/or test to determine whether those specific changes cause problems. This is in contrast to the traditional process in which changes are grouped into a build at a predetermined time. In the latter case, the build might have hundreds of changes from several developers over many days. After the build completes in a satisfactory manner, then testing occurs. This traditional process can hide errors until later in the process, at which time the root causes take longer to track down and are more expensive to fix. Most of the tools vendors now offer continuous integration.

Build Management Tools
There are many options for tools, but they differ. There are two major functions of build management solutions. One is creating and optimizing the scripts used to build applications, which can be termed build services. This involves determining dependencies between code packages, pulling the pieces together, and compiling executables. Improving performance of builds can result from splitting builds between computers, building in parallel. Another method commonly used is building incrementally rather than completely at the end before testing and deployment.

Process automation involves ensuring proper workflow, managing and controlling builds. These capabilities eliminate or at least reduce manual, error-prone handoffs. They collect and retain information from each stage, enabling the ability to repeat builds and provide management reports on key development metrics and trends. Security enforcement is also generally woven into build process automation.

Some tools provide process automation while others concentrate on build script optimization. A few of the vendors offer both. However, the greatest measurable gains using commercial tools over manual methods or open source comes from faster builds. It is easy to determine the speed of builds but more difficult (though not impossible) to show benefits of process improvements. IT executives should focus on both parts of the build management challenge - build process and build services - to ensure optimal outcomes.

There are several commercial alternatives for build management, including:
  • Alcatel-Lucent nmake Product Builder
  • Borland Software Corp. Gauntlet
  • Codefast Inc. PerfectBuild
  • Electric Cloud, Inc. ElectricAccelerator, ElectricCommander
  • IBM Corp. Rational Build Forge
  • Kinook Software Inc. Visual Build Professional
  • Microsoft Corp. nmake (not related to Alcatel-Lucent nmake Product Builder)
  • OpenMake Software (formerly Catalyst Systems Corp.) Openmake
  • Telelogic ABSynergy
  • Urbancode Inc. Anthill Pro
  • Vsoft Technologies Pty. Ltd. FinalBuilder
  • Xoreax Software Ltd. IncrediBuild
Integrated development environments (IDEs) are moving some of the administration tasks into the background. For build and release management, the IDEs are more regularly handling these functions internally. However, the IDEs generally lack the necessary capability to address all development needs, especially when crossing platforms or scaling to enterprise builds.

Over the past year, much has occurred amongst vendors of commercial build management solutions:
  • Feb. 2006: Borland acquires Gauntlet Systems
  • Mar. 2006: Catalyst Systems releases Openmake 6.41 with life cycle activity process scheduling and accelerated build performance
  • Mar. 2006: VSoft releases FinalBuilder 4.1 with integration to Microsoft VirtualServer and others
  • May 2006: IBM Acquires Build Forge
  • May 2006: Codefast releases PerfectBuild 2006
  • July 2006: Xoreax Software releases IncrediBuild 2.61 with build groups, graphs, and improved performance
  • July 2006: Alcatel-Lucent nmake Product Builder lu3.8 released with new platform support, enhanced build tool support, and improved performance.
  • Oct. 2006: Vsoft releases FinalBuilder 5 with graphical views and reports
  • Dec. 2006: Electric Cloud introduces ElectricCommander for automating build management processes
Governance in the Application Development Life Cycle: Build... Tuesday, March 20, 2007
  • Dec. 2006: The Apache Software Foundation Ant 1.7 release introduces the ability to group resources, supports Java 6, and fixes many bugs
  • Jan. 2007: ElectricCloud receives Series C financing
  • Feb. 2007: Catalyst Systems Corp. changes name to OpenMake Software and hires new CEO
  • Feb. 2007 Borland introduced Gauntlet, a build and test automation tool that highlights potential quality problems by automatically testing and analyzing changes through existing version control processes, including those running in Borland StarTeam, as well as open source tools CVS and Subversion.
  • Mar. 2007: OpenMake Software releases Mojo, a free process automation solution, based on and integrated with the The Eclipse Foundation framework
  • Mar. 2007: Urbancode releases AntHill Pro 3.2 with improved integration, management, and security
  • Mar. 2007: Xoreax Software releases IncrediBuild v3.00 (Public Beta) with a new grid engine and other enhancements
  • Mar. 2007: Codefast releases PerfectBuild 2007 with a new graphical interface as well as additional platform and language support
Well-funded build management startups are making noise and progress, and the sector is gaining increased attention. Codefast recently received an investment of $3 million ($9.5 million to date) and Electric Cloud recently landed $9 million ($22.1 million to date). OpenMake Software is also ramping up its efforts. In addition, Borland and IBM acquired small vendors, Gauntlet Systems and Build Forge, respectively. The result is much more marketing which further raises the awareness of build management and also raises the relative visibility of these providers.

Open Source Tools
A rising tide raises all boats, and therefore open source build solutions are growing in popularity. There are many open source build tools; it seems many developers think they can build a better mousetrap. However, many of them are rarely used and updated only sporadically. Only a few are widely deployed and respected. Many development teams start and finish with open source for program builds. Almost everyone starts with Make and Ant and few go beyond them, especially for smaller projects in small companies. However, these tools do not scale, the reporting is often poor, and user interfaces are weak.

While open source build solutions might be adequate for many applications, they have limitations the commercial solutions address. In addition, those using open source are generally at the mercy of the community, which is variable in its responsiveness and applicability. In light of all that, it is certainly better to use open source to get started and prove the value of build management. IT executives in enterprises that do not understand the value of build management should immediately move to show benefits using a pilot project with either a vendor's assistance or using open source tools.

There are several widely used open source application build systems, including:
The choices for enterprises in this area come down to the open source toolkits like Ant that offer basic do-it-yourself capabilities and the commercial solutions. Many of the commercial vendors will support open source tools, and add value through best practices, packaging, specialized technologies, templates, and services. IT executives should consider both commercial and open source development solutions, perhaps combining them in some cases to meet enterprise development needs.

The tool decision comes down to a few interrelated decisions:
  • Do you use open source, commercial, or mixed tools?
  • Do you keep existing scripts or migrate to new build services?
  • Do you layer in process automation and reporting?
The right answer for a particular enterprise depends on:
  • Application magnitude - the largest applications often need the performance and scalability of commercial tools, while open source can suffice for smaller ones.
  • Audit, compliance, and management requirements - the tools vary in their reporting and tracing capabilities.
  • Build scripts - if the existing scripts are complex and problematic, it would not make sense to automate processes around them without improving the scripts?
  • Development methodology - traditional methodologies would drive a different solution than agile approaches.
  • Development team expertise, size, and distribution - here also, the commercial solutions tend to be more robust in their support of large, distributed teams.
  • Deployment environment - deploying to one platform is much different from deploying to several. Also, the number of customized versions of the software comes into play.
  • Existing and planned development environment - integration with IDEs is essential for maximum effectiveness of build solutions.
Success Built on Expertise
In the end, build expertise is more important than the tool. The nature of the build challenge is that there are many available viable tools, and the issue is how to create and manage a repeatable and scalable build process. For many enterprises, this requires experts who are either with the commercial providers or are independent consultants. RFG discussions with those who use commercial and open source solutions point to expertise as the key to success. Those knowledgeable about the build process and tools can ease implementation and provide invaluable guidance in a transformation from manual or suboptimal methods.

External resources include independent consultants as well as tools vendors. In the build management space, most of the vendors offer excellent resources, especially those vendors with many years of experience. Independent consultants generally know more about open source alternatives. IT executives should gather consultation first (internal or external), followed by pilots on real systems, to fare the best in the long run in build management.

RFG believes enterprises and independent software vendors must pay close attention to how they build applications. For many, deployment is a big, scary predicament. It is no longer acceptable to leave the process in the hands of untrained people, weak processes, and shaky tools. What is needed is integration of builds into the application life cycle with proper training, external expertise where needed, solid repeatable processes, and enterprise-class tools. IT executives seeking to reduce risk and improve application quality should dig into their build management situation and make changes if and where necessary.


RFG analyst Ron Exler wrote this Research Note. Interested readers should contact RFG Client Services to arrange further discussion or an interview with Mr. Exler.

Copyright © 2007 Robert Frances Group, Inc. All rights reserved. Agenda products are published by Robert Frances Group, Inc., 120 Post Road West, Suite 201, Westport, CT 06880. Telephone (203) 429-8950. Facsimile (203) 429-8930. http://www.rfgonline.com. This publication and all Agenda publications may not be reproduced in any form or by any electronic or mechanical means without prior written permission. The information and materials presented herein represent to the best of our knowledge true and accurate information as of date of publication. It nevertheless is being provided on an "as is" basis. Reprints are available.


 

Trackback(0)
Comments (1)add comment
3893
Michael Sayko: ...
This is an excellent article that highlights the role and importance of build management today. The list of commercial and open source build management tools and happenings in the commercial space is extensive.
1

May 02, 2007
Votes: +0

Write comment
smaller | bigger

security image
Write the displayed characters


busy
Last Updated ( Friday, 01 August 2008 )
 
< Prev   Next >
If you already have an account on CM Crossroads, Login Now. If you do not, register using the link below...

NOTE: Once you register you will need to activate your account by clicking the link sent to you by email.

Video Spotlight

Accurev

Sponsored Links

Aldon - Automate the Agile process