Integrate Button Weblog

This Jolt’s for you

March 17th, 2008

Jolt Award logo
I was in Santa Clara last week at SD West where I attended the Jolt award ceremonies. Continuous Integration walked away a winner of the best technical book of 2007. I was in shock to the point where I didn’t know we were supposed to say anything or pose for a picture when accepting the award. I made up a few things off the top of my head, but speaking extemporaneously is not a specialty of mine, so I was a man of few words in my “acceptance speech”. In any case, it was a great honor to win the Jolt award. As I said in the acknowledgments of the book, any effort like this is never done alone. There were contributors, reviewers, a production team, editors, marketing and probably more than I even realize to put together a book like this. The book seems to be out of stock in many places right now, which is unfortunate. However, there are two places where I know the book is currently available:

In my next post, I’ll upload some pictures from the Jolt awards. For now, see TestEarly.com

Stelligent is hiring!

January 22nd, 2008

My employer, Stelligent, is hiring Senior Agile Consultants to work with our growing team of experts. See the job description here.

When people ask me why I enjoy working for Stelligent, the answer is simple: no two days are the same. At Stelligent, our consultants are able to work in many diverse environments whether it be an industry, a customer or a technical platform. We’ve worked on Java and .NET projects and we’ve created solutions using Ruby and Groovy. We are on the cutting edge of technology because our customers demand it. We’ve worked with financial services firms, health care, and philanthropic organizations. It makes for an exciting and dynamic environment.

Further, you’ll work with some of the leading experts in the areas of Continuous Integration, Test-Driven Development and other Agile practices. Contact Stelligent today to learn more about our employment opportunities.

Continuous Integration is a Jolt 2008 Award Finalist!

January 4th, 2008

Continuous Integration

Our book, Continuous Integration: Improving Software Quality and Reducing Risk was recently announced as a Jolt award finalist for 2008. The Jolt awards have been referred to as the Oscars of the software industry. It’s an honor to be selected as a finalist. Continuous Integration is in great company with five other titles (four of the six are Addison-Wesley titles, including another Martin Fowler Signature Series book by Gerard Meszaros):
-Fuzzing: Brute Force Vulnerability Discovery by Michael Sutton, Adam Greene, Pedram Amini, Addison-Wesley Professional
-Head First SQL Your Brain on SQL—A Learner’s Guide by Lynn Beighley, O’Reilly
-The Rails Way by Obie Fernandez, Addison-Wesley Professional
-WPF Unleashed by Adam Nathan, Sams Publishing
-xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros, Addison-Wesley Professional

Jolt logo

See the complete list at http://www.joltawards.com/finalists.html. The winners will be announced at the SD West conference on March 5, 2008.

Jott to Build - use voice commands to build software

December 16th, 2007

How do you combine the need to perform on-demand builds with Continuous Integration using voice commands?

Jott to Build

For about six months now, I’ve been an ardent user of Jott. Jott transcribes voice to text and is an extremely useful utility for creating items on my todo list (especially as I commute in the DC area ). Recently, I linked this useful tool to something else I do quite often, running on-demand deployments. The solution is part useful tool and, quite frankly, part gimmick. I came up with the idea after watching an episode of the television show 24. Here’s how it works:

  1. I dial an 800 number provided by Jott from my cell phone. When prompted, I say “Build Stage” and hang up. Jott sends my transcribed voice to my email account.
  2. On a scheduled basis, an Ant script parses my email searching for keywords. It finds “Build Stage”, so it runs an Ant target to execute a remote deployment in the Stage environment.


Here are the tools to make it all work:

  1. Jott (or any tool capable of transcribing voice to text)
  2. Schedule to run via your CI server

Sign up with Jott

Go to Jott.com and register to use this free service.

Download Cygwin

See the instructions on how to use Cygwin, fetchmail and pop-enabled GMail to read your email via the command line. These instructions describe how to create backups of your GMail using the fetchmail utility. You can follow the same instructions, however the reason we’re doing this is to create a text file that is readable by a headless process via Ant so that we don’t need to open a browser or email client to have Ant read the email contents. Although the instructions are for GMail, the point is to pop-enable your email so you should be able to use other email services that provide POP capabilities.

You should also run fetchmail as a daemon process so that it gets your email as soon as it’s sent.

Create an Ant target to parse your fetchmail email

Using Ant, load the fetchmail file (which contains your email text) and parse the file using regular expressions to search for keywords. If the keyword is found, set a property. Then, use this property to conditionally run a target that executes a build.

<target name=”parse-email”>

<loadfile srcfile=”C:/cygwin/var/spool/mail/[your email file]” property=”stageBuild”>
<filterchain>
<linecontainsregexp>
<regexp pattern=”Stage*”/>
</linecontainsregexp>
</filterchain>
</loadfile>

</target>

Schedule to execute your Ant script periodically

Call the Ant script above from your CI server (like Hudson or CruiseControl). Run it on a frequent basis, such as every minute or so, so that soon thereafter your voice command is transcribed, the build is executed.

Hudson CI dashboard
More…

I came up with this idea in the past week and I know there are more robust ways of implementing it. Also, I glossed over some of the details. For instance, instead of using a CI server, you could simply run a scheduled task to run the Ant script that parses your email. Further, in a *nix environment, you obviously wouldn’t need to use Cygwin at all and, instead, use the native utilities. Also, the regular expressions can be further refined so that there are no false build executions. In any case, I hope this gets your creative juices flowing and you come up with ideas that extend this any further. Please let me know what you discover and share it with the community.

Now playing at Microsoft in Redmond

December 3rd, 2007

As of December 1st, the Microsoft Store in Redmond will for the first time start carrying books from publishers other than Microsoft Press. My book, Continuous Integration: Improving Software Quality and Reducing Risk, is one of those books. For the time being, the book will only be available at the physical store, not at the online Microsoft store.

One of my goals from the beginning in writing the book was to provide examples in many different languages/platforms. In the book, we cover C#/NAnt examples, .NET static analysis tools along with Java and Ruby examples. There’s something for everyone. CI, as a practice, is independent of any particular tool. That said, tools greatly support the practice, given the vast array of code inspection, build, and CI servers on the market. So, if you’re a Microsoftie and are curious about CI or are currently using the daily build practice, purchase a copy, or three, for yourself at the Redmond store.

CI with Hudson, Ant, and Subversion tutorial

November 21st, 2007

In case you can’t get enough of CI from the book, check out “Spot defects early with Continuous Integration” at IBM developerWorks.

This tutorial guides you step-by-step through the fundamental concepts of Continuous Integration using Hudson, Ant, and Subversion– when you’re done, you’ll understand the benefits of Continuous Integration as well as how to set up and properly configure Hudson, Ant, and Subversion to work together. The resulting build process will run both tests and software inspections and will report back violations almost as quickly as they occur.

Free CI and testing webinar

November 9th, 2007

Agitar’s Jeffrey Fredrick and myself will be hosting a free webinar on how to implement a continuous integration and testing process. Jeffrey is a key factor in the success of CruiseControl and is one of the principle figures behind CITCON (the other, of course, being Paul Julius); consequently, I’m humbled to have this opportunity. If you’re curious about CI or developer testing, then make it a point to join us for this event.

The webinar will take place on November 14th at 9am PST and registration is required. See you there!

Paul Julius joins Stelligent Incorporated

November 2nd, 2007

I am very pleased that renowned Continuous Integration and Developer Testing expert, Paul Julius, has joined Stelligent Incorporated (my employer). Paul and Jay Flowers are recent additions to our impressive team of experts.

Paul is a co-founder of the CruiseControl Continuous Integration server and has a passion for improving the state of the software industry. Paul is also a co-founder of the wildly popular CITCON conferences hosted on three continents every year. Along with Martin Fowler, he wrote one of the forewords of the Continuous Integration book that I coauthored. I look forward to working with Paul as he joins Stelligent. He blogs at www.pauljulius.com/blog/ and will soon be blogging at our popular company blog, TestEarly.com.

Stelligent is the leader in Agile Software Production. We work with large Fortune 500 and government organizations around the world. We help development teams employ techniques such as build automation, continuous integration, release engineering, automated developer testing and inspections into the daily process of developing software rather than waiting later in the lifecycle. Our goal is always to accelerate the delivery of highly reliable software for our customers.

Stelligent hosts TDD Horror Stories on Tuesday, October 30th

October 18th, 2007

My employer, Stelligent, is hosting a roundtable discussion on TDD at our offices in Reston, Virginia called “TDD horror stories” on Tuesday, October 30th.

TDD, or Test-Driven Development, is a great companion topic to Continuous Integration as your integration is rarely useful without running a suite a automated developer tests.

It’s another wine (brought to you by Savoy-Lee wineries) and cheese party. Stelligent is also raffling off a an iPod shuffle

From TestEarly:

I often run into teams who attempted to jump skull first into TDD and eventually threw their bones up in frustration when either schedules became scary or they ran into scenarios too frightening to test. Are there areas where test-driven development gives you the spooks?

As you can see, it’ll be fun!

When: Tuesday, October 30th from 5:30 PM to 7 PM

Where: Stelligent’s haunted headquarters (map)

Who: Developers, Technical Leads, Architects, Project Managers, Testers…Anyone involved in software development

You must RSVP.

Agile SCM is Testing

October 17th, 2007

Steve Berczuk, Robert Cowhan, and Brad Appleton (Berczuk and Appleton are authors of the excellent book, Software Configuration Management Patterns) recently published an article called “Agile SCM is Testing” at CMCrossroads. In the article the authors clearly make the assertion that testing and SCM are not separate:

People care that their system works as expected, the functionality was added as desired and not removed accidentally. We want to ensure that the value of our configurations is increasing over time rather than decreasing! To verify these things you need to test the working application. In this sense you can’t fulfill the goals of SCM without testing.

Along with several other salient references, the authors point to our book on Continuous Integration: Improving Software Quality and Reducing Risk. In particular, they reference our advice on quality and policy metrics (note, much of this is in the “Continuous Inspection” chapter) as enablers to a more effective development ecosystem.