SCMWise.com

Build Management


Managing Your Builds Introduction

Build Management is the process of assembling all the components of a software application into an installable software product.

This process usually includes the following steps:

  • The Preparing the Build Environment
  • The Gathering of the Source Code
  • The Labeling of the Source Code
  • The Compilation or Interpreting of the Code
  • The Creation of Build Logs and BOM
  • The Creation of Installation Packages
  • The Updating of Build Statuses
  • The Build Notifications are Sent


The Build Problem Statement

For development teams looking to increase efficiencies and improve quality of their software, one of the most important places focus is the software build process.

It will be very frustrating to implement a complete testing process or purchase expensive development tools if you can not reliably build and deploy your software and deliver it to a run-time system.

For small development efforts, like the one or two developer project teams, this may not necessarily be a debilitating problem.

However, for larger efforts that involve multiple teams, remote development teams, out-sourced development functions or all of the above, proper build management is crucial for success

The "Forces" that make this a very complex problem:

  • Regulatory Compliance, SOX
  • Distributed Development Teams
  • Focus on Software ReUse, SOA
  • Out-Sourcing of Development Functions
  • Market Pressures

It is startlingly how many development teams struggle with such a well documented process.

I doubt there are any developers or software engineers who can not list off numerous reasons why their builds should be fully automated, repeatable and reproducible.

Yet, the stories are common about developers spending more time trying to trouble shoot bad builds, or identify Configuration Management issues with the build artifacts.



SCM Tool Vendor Short-Comings

While the large SCM Tool vendors like Serena, Microsoft and IBM will try to convince everyone that only their systems can produce the required structured process.

The fact of the matter, is that is not true.

Actually, it is quite the opposite.

Vendor Lock-In is a well documented Anti-Pattern. An Anti-Pattern is a common practice that is thought to be cost effective or efficient, but in fact is ineffective and counterproductive.

Vendor Lock-In is a typical Build Management problem for the following reasons:

  • Substantial Investment to Own all Required Vendor Suite
  • Vendor Tools are only Compatible with Vendor Software Suite
  • Vendor Tools do not Deliver as Promised
  • High Cost to Upgrade
  • Limited Support Options

Software organizations who find themselves tied to Vendor Lock-In will have a gap in their build process,

Or, they will be required to write extensive code themselves to fill these gaps.


A More Holistic Approach

With a holistic approach to gathering your development team's build requirements, you can create a build management process that:

  • Can Increase Visibility into your Build Process
  • Improved Build Communication
  • Self-Documenting Build
  • Standards Enforcement
  • Improved Reporting and Build Metrics

Instead of force fitting the build into a vendor tool that does not meet your needs, build a process that meets your exact needs.

With the vast array of free and open source tools to choose from, a quick and inexpensive solution is at your finger tips.


Build Automation

Build Automation is the key to implementing a successful Agile development methodology.

In its basic form, the "Build" is the conversion of source code into binaries.

For further help in Build Management through Build Automation


Software Build Tool Reviews

Please Share your Software Build Tool Reviews and Experiences...

Software Build Tool Reviews

Software Build Tools

Software Build Tools is a collection of tools used to create automated software builds.

This list of tools is growing and the functionality of the tools is expanding.

These tools have come along way in standardizing and simplifying the SCM Engineer's life in regarding to the automation of the software build.


Software Build Best Practices

Following Software Build Best Practices helps ensure that your development environment is always in a state to build.

For more information about Software Build Best Practices



Software Build Table of Contents

Software Build Build automation is the process of combining all the steps necessary to compile the source code into build artifacts into a one step process. This can include many different types of tasks depending on the technologies involved.

Agile Continuous Integration Agile Continuous Integration naturally supports the Agile Development process of small and frequent releases. Continuous Integration, CI, is the process of building your application on every new source code check-in. Although, considered a relatively new idea, the concept behind CI has been around for as long as development teams have been writing code.

Automated Builds Automated Build Process - Automating your software build process is a fundamental step in maturing your software development process. The only way to accurately predict build results, ensure build reproducibility and guarantee minimal development down time due to build issues is to fully automate the build process.

Build Automation Build Automation is the key to implementing a successful Agile development methodology. In its basic form The Build is the conversion of source code into binaries. However, there is much more to building software than just compiling code.

Build Management Build Management is the process of assembling all the components of a software application into an installable software product. For development teams looking to increase efficiencies and improve quality of their software, one of the most important places focus is the software build process.

Continuous Integration Continuous Integration, CI, is the process of building your application on every new source code check in. Although, considered a relatively new idea, the concept behind CI has been around for as long as development teams have been writing code. CI is an integral part of Software Configuration Management, SCM.

CruiseControl CruiseControl is an open source tool setup specifically to perform continuous integration software builds. This page is high level overview of CC and its functionality and benefits. Software build tools like CC are an integral part of your Software Configuration Management System.

CruiseControl.Net CruiseControl.Net is an open source tool that facilitates the integration of software builds. This page is an overview of the CC.Net Tool and Process.

Maven Maven is a tool that can now be used for building and managing any Java-based project.

Software Build Best Practices Software Build Best Practices are the procedures and processes that ensure software build integrity, repeatability and reproducibility. Best Practices are practices and techniques that are the most effective way of ensuring repeatability of a process. Build Best Practices are an integral part of Software Configuration Management, SCM.



SCMWise Configuration Spec



© Copyright 2007 - 2016
Powered by Site Build It!
Page copy protected against web site content infringement by Copyscape SCMWise.com's Privacy Policy
ADD TO YOUR SOCIAL BOOKMARKS: add to BlinkBlink add to Del.icio.usDel.icio.us add to DiggDigg
add to FurlFurl add to GoogleGoogle add to SimpySimpy add to SpurlSpurl Bookmark at TechnoratiTechnorati add to YahooY! MyWeb