Best Practices for Build and Release Management Part 2

Ok, as promised in Part 1, I’ll go into a bit more detail about each of the areas outlined previously, starting with…

The Build Process

This area, perhaps more than any other area I’ll be covering in this section, has benefited most from the introduction of some ultra handy tools. Back in the day, building/compiling software was fairly manual, and could only be automated to a certain degree, make files and batch systems were about as good as it got, and even that relied on a LOT of planning and could quite often be a nightmare to manage.

These days though, the build phase is exceedingly well catered for and is now a very simple process, and what’s more, we can now get an awful lot more value out of this single area.

As I mentioned before, one of the aims of release management is to make software builds simple, quick and reliable. Tools such as Ant, Nant (.Net version of Ant), Maven, Rake and MSBuild help us on our path towards our goal in many ways. Ant, MSBuild and Nant are very simple XML based scripting languages which offer a wide ranging level of control – for instance, you can build entire solutions with a single line of script, or you can individually compile each project and specify each dependency – it’s up to you to decide what level of control you need. I believe that build scripts should be kept simple and easy to manage, so when dealing with NAnt and MSBuild for .Net solutions I like to build each project by calling an .proj file rather than specifically compiling each library. The .proj files should be constructed correctly and stored in source control. Each build should get the latest proj file  (and the rest of the code, including shared libraries – more on that later) and compile the project.

For Java projects. Ant and Maven are the most popular tools. Ant, like Nant, gives the user a great deal of control, while Maven has less inherent flexibility and enforces users to adhere to its processes. However, both are equally good at helping us make our build simple, quick and reliable. Maven uses POM files to control how projects are built. Within these POM files a build engineer will define all the goals needed to compile the project. This might sound a little tedious but the situation is made easier by the fact that POM files can inherit from master/parent POM files, reducing the amount of repetition and keeping your project build files smaller, cleaner and easier to manage. I would always recommend storing as much as possible in parent POM files, and as little as you can get away with in the project POMs.

One of the great improvements in software building in recent years has been the introduction of Continuous Integration. The most popular CI tools around are CruiseControl, CruiseControl.Net, Hudson and Bamboo. In their simplest forms, CI tools are basically just schedulers, and they essentially just kick off your build tools. However, that’s just the tip of the iceberg, because these tools can do much, MUCH more than that – I’ll explain more later, but for now I’ll just say that they allow us to do our builds automatically, without the need for any human intervention. CI tools make it very easy for us to setup listeners to poll our source code repositories for any changes, and then automatically kick off a build, and then send us an email to let us know how the build went. It’s very simple stuff indeed.

So let’s take a look at what we’ve done with our build process so far:

  • We’ve moved away from manually building projects and started using simple build scripts, making the build process less onerous and not so open to human error. Reliability is on the up!
  • We’ve made our build scripts as simple as possible – no more 1000 line batch files for us! Our troubleshooting time has been significantly reduced.
  • We’ve moved away from using development UIs to make our builds – our builds are now more streamlined and faster.
  • We’ve introduced a Continuous Integration system to trigger our builds whenever a piece of code is committed – our builds are now automated.

So in summary, we’ve implemented some really simple steps and already our first goal is achieved – we’ve now got simple, quick and reliable builds. Time for a cup of tea!

Advertisement

8 comments

  1. Pingback: Best Practices for Build and Release Management Part 1 « James Betteley's Release Management Blog
  2. Steve · October 25, 2011

    Don’t forget about Gradle — the best of Ant and Maven, with a little Groovy to make it smoother like butter. Mmmmmm!

  3. Virgina · January 20, 2013

    I tried to make CCTray work on mono once and i had to comment out a lot of stuff to get it kind of wonrikg (all the windows-isms had to go) After i got it running there were still a bunch of problems, like a ghost window with no content behind the CCTray window, all the projects showing up 2 times and the tray icon also didn’t work as it should. After all i think writing a Gtk# client is a good idea. I hope you will publish the code soon so i can try it out in my GNOME environment. BTW, do you use CCTrayLib for that project?regards,Daniel

  4. cooking supply stores · February 10, 2013

    Hmm it seems like your site ate my first comment (it was super long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog.
    I as well am an aspiring blog writer but I’m still new to the whole thing. Do you have any tips for rookie blog writers? I’d definitely appreciate it.

  5. microsoft points adder · December 14, 2013

    To acquire no cost Microsoft Points on the Bing Gains Program you first have to register and get
    a hold of the Aol Toolbar. You can find message, media, environment, Zynga,
    movie situations and all categories of alerts from your personal
    toolbar plus the smartest thing to do is—they ensure that you
    get 250 Praise Points for enrolling in (you will be half solution to using it first
    four hundred MSP already)!
    Cost-free Microsoft Points : Many gamers request me can easily am
    capable to afford so many map totes and games within the XBox EXIST Arcade.
    We tell them that get Free of charge Microsoft Points coming from a GPT site.
    Now they were really interested but I can tell we were holding skeptical and even doubted everyone.
    Once My spouse and i showed them ways to do this
    in the computer and even gave them a few proof, we were holding activity.
    They wished for Free Microsoft Areas too sufficient reason for
    my allow they were able to get Zero cost 1600 Microsoft Points Codes sent to their netmail for free around around 30 minutes.
    We are expressing the same method with you and also
    can also get your 100 % free 1600 Microsoft Details as well.
    In case you work more difficult then you can microsoft points generator find higher amounts mailed
    to you free!
    Throughout October right before christmas, users about Xbox
    Live claimed having unauthorized usage of their Xbox game Live
    trading accounts, with Microsoft points subsequently being utilized and/or bought to purchase a variety of in-game items
    just for FIFA 1Microsoft is certainly responding to these kinds of incidents by restraining access to the exact account for 26 days whilst typically the fraud
    staff investigates. Each EA and Ms have denied that there’s a
    dilemma with protection.
    ‘microsoft’ Points are easily the way you order content on the Xbox Survive Marketplace.
    It happens to be if you appreciate the main currency from the xbox and also way
    acquire and download content online for any Xbox 360
    system.
    Another method I recognize of has a bit of tolerance.
    Essentially, it’s important to try to look for competitions and/or contests which are having with regards to the
    the web. I hope, you decide on the one which gifts Free
    Msft Points being a prize, and also attempt to win in which contest or rivalry.
    But that is a highly unstable system, when you planning to
    be capable of finding these individuals. But you may still find those who
    make it happen, folks who I suppose know very little about the less of a challenge survey procedure.

    For November 12-15, 3 years ago, Microsoft aplauded Xbox Live’s another anniversary by its then over 8 mil subscribers the
    title Carcassonne free of charge and even awarding gamers who received subscribed to live on as its inception 400 free Microsoft Things.
    Thanks to intermittent program interruptions during latter December 2007
    along with early January 08, Microsoft promised to offer a complimentary Xbox Stay Arcade game for all Xbox
    Stay users as reimbursement, with an open standard to all Xbox 360 game Live members from Level Whitten,
    Xbox 360 LIVE General Director. Increased need from Xbox 360 console consumers (the largest variety
    of new individual sign-ups inside history of Xbox Live) was presented with as the factor for the outages.
    On The following year 18, 2008, Microsoft introduced Undertow might be offered absolve to both Precious metal
    and Free participants for the 7 days starting January 1 through January tenty-seventh as damages.

    The amount will microsoft points generator African american Ops First Attack cost?
    The particular map pack is actually officially released to cost 1200
    Microsoft elements. 1200 Microsoft points is equivalent to eighteen US
    bucks. That is not are that awful of your price taking into account
    you also receive a Nazi Revenant map. Of course
    , everybody is unhappy with the price of DLC(down-loadable content) within the Xbox game 36Personally, I actually do
    nothing like the pricemicrosoft points adder most DLC.
    Yet , due to the fact that this map will incorporate a Nazi Tonto map, We
    are all because of it.

  6. jvusjyq@hotmail.com · December 17, 2013

    This web website is seriously a walk-through for all of the information you wanted about this and didn’t know who to ask. Glimpse here, and you’ll certainly discover it.
    jordan 11 http://ameblo.jp/jordansoxdl/entry-11659475517.html

  7. tidabwl@hotmaill.com · January 3, 2014
  8. Saul · March 28, 2014

    Appreciation to my father who told me concerning this weblog,
    this web site is genuinely amazing.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s