Thursday, March 17, 2011

CI Tools

After the news about Oracle messing with Hudson, I had my folks do some research on continuous integration (CI) tools and determine what we should offer as a corporate standard for a CI tool.  One of my architects, Aparna Annapareddy found a good comparison site, picked a few tools for us to consider, and gave a short pro/con take on those tools.  I thought I would share this in case anyone else was in the same place as us.

All these tools supports multi -platform, multi-language including Java and C#, distributed builds and parallel builds.

1. AntHill Professional ALA:
Features: IDE Plug-ins,  full life cycle traceability, has more than 60 out-of-the-box integrations with variety of tools including QC, Robust API to write our own integrations (REST, SOAP), scalable architecture, supports multi-environment builds, metrics and  build reports, pre-tested commits, build artifact repository for sophisticated auditing , Professional support.
Cons: Not OpenSource (I can not find direct quote for licencing), User interface not very friendly compared to Hudson.

2. JetBrains TeamCity:
Features: Tight IDE integrations, easy setup, 50 ready to use plug-ins, sophisticated notifications, advanced build metrics and reports, Audits, scalable architecture, plug-in API, features for troubleshooting memory issues and abnormal behaviors in code , pre-tested commits,  Monitor builds in real time,  professional support, and not very pricy.
Cons: QC integration not available yet, not many out-of-the-box integrations available, not free.

3. Electric Cloud:
Features: IDE Integration, has more than 80 out-of-the-box integrations with variety of tools including QC, Agile support, API to write our own integrations, metrics and build reports, pre-tested commits, scalable, supports multi-environment builds, different levels of professional support.
Cons: Not OpenSource (Price information is not available),

4. OpeanMake Mojo and Meister:
MOJO is free and Meister is paid tool.
Features:  IDE plug-ins, out-of-the-box integrations, QC Integration, SOAP API for creating integrations, Build Audits, impact analysis, Build metrics and reports, Monitor builds in real time, Best support for both Agile and water fall,  pre-commit builds, easy install and setup, Free tool (MOJO), support.

5. Atlassian Bamboo:
Features:  IDE plug-ins, IDE notifications, few out-of the integrations, API to create our own customizations, metrics and reporting.
Cons: Not free, support through partners.

6. ParaBuild (Team Edition is free, Cluster Edition is not free):
Features: Easy setup, integrations with few SCMs and test tools, SOAP API, trending reports, build archives, Team Edition is free and it supports up to 50 users and 50 build agents, Cluster edition is more scalable, professional support.
Cons: IDE integrations are not yet available, Cluster edition is $375 per build machine.

Thursday, February 17, 2011

When Proprietary eats Open Source (minus a fork)

Interesting news recently when Oracle laid claim to the Hudson name and demanded control of the Hudson CI tool project.  Hudson CI tool founder Kohsuke Kawaguchi decided he wasn't going to take this laying down and put a fork in the project to create Jenkins.  We did some poking around and the new Hudson site now includes a Term of Use (granted, it is for Java.Net) and a Legal link (that goes to the Oracle legal disclaimer site).  The Jenkins site looks remarkably like the old Hudson site.

Why is this important?  Well, this situation has spurned a litany of different questions in my group and makes us take a serious look at what tools we use to make software.

Being part of a large company, we tend to purchase enterprise worthy tools which provide what I call a "throat to choke" in case something goes wrong.  We like to deal with vendors who have established support organizations and dedicated customer representatives, so if (actually... when) we have problems with their software, we can grab a hostage/customer rep and make the vendor fix our issues, while the hostage/customer rep buys us lunch/dinner and says compassionate things about our problems.

But sometimes, we go with open source solutions, like Hudson, and build plug-ins or adapters to fit our other tools or processes.  Depending on the situation, we will either make those additions available to the community, or we will keep them for our internal use.

So when a proprietary company (i.e. Oracle) eats an Open Source project (i.e. Hudson), it gives us pause because it introduces unknowns, which may or may not affect our work.  Things like:

  • Why would they want control over a project?  
  • Will they charge for it in future?
  • If we have add-ins we didn't share, do we have to give them to the proprietary company?
  • What's up with the legal disclaimer and how does it affect us?
I'm not sure where we are going to go with this, but I sent a note to our legal group asking for an opinion.  We will also gather our groups who use Hudson to see what they want to do.  Either way, I didn't see this coming, but now that I know what to look for, I'm going to check our other tools to make sure I have a plan if this happens again.

Wednesday, January 26, 2011

HP QC10 and ALM11 on Windows 7

We are going through our Windows 7 beta program and I was selected as an early adopter.  Not sure why they selected me, but it was probably because I know how to write up a defect with somewhat accurate steps to reproduce.  I have a Dell D630 2GHz Dual Core with 2GB of RAM.  Kind of light machine from everything I read about Windows 7, but still should be adequate.

I loaded the corporate image of Windows 7 with Internet Explorer 8 and tested some of the basic apps I use everyday like Outlook, Office Communicator (OC), IE, Firefox, Ziepod (I'm not a big iTunes fan and all I listen to at work are podcasts), Yammer, Clarity, Hyperion and Business Availability Center (BAC).  Hyperion and BAC were giving me fits with IE8, so I downloaded the IE9 beta.  Still no luck getting Hyperion or BAC to work (we are only on BAC 7.5, so that is probably the reason), but the rest of my apps using IE work fine with IE 9, so I got a virtual desktop for Hyperion and BAC and went on with life.

I then accessed QC10 through IE9 and before it started the initial load, it gave me an error message to load a .Net component, with a link.  I went through the link and installed the component and then went on to installing QC.  I'm not sure the install was any longer than with XP, but it took time enough to notice.

Moving through QC10 was relatively painless.  I created requirements, tests, test folders, releases and test sets without any issues.  I ran some tests individually and through test sets, without any issue as well.  I didn't run any automated tests, but I'll do that at a later date.  I ran a couple of Excel reports and they ran to completion and was able to save them to my desktop.  I didn't go into the Dashboard because we don't have anything in there outside of what is delivered by HP, but I will need to look at that later as well.

While running QC10 on IE9, I also had Outlook 2010, OC 2007, Yammer, Firefox 3.6, Chrome 8.0.x and Ziepod running at the same time.  I really didn't have any issues running QC10 and swapping between other apps and it took about 100MB to 125MB of RAM by itself, with about 80% RAM use for all my apps (high, but still functional).

The reason I noticed the RAM use is when I then tried ALM11, with the same apps open, I started to get low memory errors pretty much right away.  I reviewed the memory and ALM11 was taking about 175MB to 200MB.  While it was a relatively significant increase for just the app, overall it should have been fine, until I noticed I was now pegging about 90 - 95% memory use, with spikes tapping out at 100%.

This got me to review the features in ALM11 and I noticed HP tried to improve speed with a feature where if you don't log off, then you come back to where you left without reloading the app.  This tells me HP is like everyone else and sees RAM as relatively cheap, so they are engineering their app to put more in RAM.  My 2GB of RAM, no longer works with Windows 7, so I got another GB (I would have added 2GB, but the D630 is a pain to add a second stick) and decided we may have to use a virtual desktop if we want to do extensive testing work in ALM11.

We will probably move the company to Windows 7 before we move everyone to ALM11, so we will need to make sure our QC/ALM users know they will need to beef up their machines or go to virtual desktops when they get Windows 7.  Overall, QC10/ALM11 works pretty well with Windows 7, just be prepared to check your machines so you don't run into any performance issues.

Friday, January 7, 2011

Thoughts on HP ALM 11.0

I was asked by HP to do a couple of press interviews in conjunction with their release of HP ALM 11.0.  I had a good time doing them, but was hoping to be able to expand a bit on what we found value in ALM 11.0  beyond the  couple of sentences included in print articles to help bolster their story.

Luckily, I got to do a follow-up podcast with Dana Gardner talking about how we believe ALM 11.0 will work within our company and the benefits of ALM tools in general.

Kind of weird hearing myself talk, but I think it came out pretty well.  Hope you find it informative and if you have any questions or comments, feel free to shoot them to me.