Summary: Hewlett-Packard (HP) has filed several patents covering standard Continuous Delivery (CD) practices. You can help to have these patents revoked by providing ‘prior art’ examples on Stack Exchange.

On 1st March 2015 I discovered that in 2012 HP had filed a patent (WO2014027990) with the USPO for ‘Performance tests in a continuous deployment pipeline‘ (the patent was granted published in 2014). The exact search I used was https://www.google.co.uk/webhp?q=performance+testing++in+a+pipeline and the patent grabbed my attention almost immediately as it was around the 5th result (as I write this, it still is):

I immediately tweeted and @-mentioned Jez Humble (@jezhumble) and Dave Farley (@davefarley77), co-authors of the foundational book Continuous Delivery, to alert them (their book was published in 2010, two years before the HP patents were filed).

My friend and colleague Steve Smith (@agilestevesmith) quickly created a ‘prior art’ request on the Ask Patents Stack Exchange site to coordinate the collection of references to prior art, so that we have a coordinated place to document the many existing examples of running performance tests in a deployment pipeline prior to the patent being filed. This will help us to refute this patent (WO2014027990). As of today (6th March 2015) the Ask Patents page and various Twitter threads had contributions from several early proponents of CD including Chris Read, Dan North, Jez Humble, Dave Farley, Pat Kua, Andreas Grabner, Erik Doernenburg, and Martin Fowler (amongst others).

The plot thickens

As the “WTF?!” spread on Twitter, Marco Abis (@capotribu) pointed out that not only were the authors almost literally unknown anywhere else on the internet, but that the same HP authors had filed patents for many more standard CD practices:

Here is a screenshot of the search results as of 6th March:

For the record, here are the patent reference identifiers for these HP patents covering basic CD practices (alternate references given, and hyperlinks to the Ask Patents pages – I will update this page with links to new Ask Patent pages as they appear):

Prioritization of continuous deployment pipeline tests – US20150026121, WO2013165367A1, WO2013165367A8

Performance tests in a continuous deployment pipeline – WO2014027990A1

Continuous deployment of code changes – CN104067226A, WO2013115786A1

Monitor usable with continuous deployment – WO2014046672A1

Global feature library useable [sic] with continuous delivery – WO2014035410A1 (note the typo!)

Identifcation [sic] of a failed code change – CN104081359A, US20140372989, WO2013115797A1 (note the typo!)

Acquiring identification of an application lifecycle management entity associated with similar code – WO2014120139A1

There may of course be other patents filed by HP covering standard CD practices (see below, Okay, what can I do to help?)

WT-actual-F is HP doing?!

There are two explanations I can think of for what HP is doing here. Either the authors of these patents – collectively Adam SPEKTOR, Inbar SHANI, Yaron Burg, Amichai Nitsan, Sigal MAON, Ilan Shufer, Eli Mordechai, and Lior Manor, all of Hewlett-Packard Development Company, L.P. – have been locked away in a cupboard for the last 10 years and have independently invented terms like ‘deployment pipeline’ and are filing what they believe to be genuine applications for true innovations (in which case, I kind of get it, as I think that deployment pipelines are awesome), or (the more likely explanation in my view) HP is patent trolling in a frankly stupid and disrespectful way.

So what’s the problem?

The ‘inventions’ in the HP patents have been practiced, implemented, and documented by advocates of Continuous Integration and Continuous Delivery for many years prior to 2012, particularly by people at ThoughtWorks but also by people from Atlassian, The Guardian, Dynatrace and many others (details in the Ask Patents page for WO2014027990A1).

For instance, here is extract from an article in Dr. Dobb’s (sadly now moribund) from February 2008 by Steve Haines called Continuous Integration and Performance Testing (examples use the first CI server, CruiseControl):

Now you can add performance tests into the continuous integration process. The most straightforward method is to create a new virtual project in CruiseControl, one that uses the same build script but executes a performance unit-testing target. The following shows the key changes you could make to a copy of Listing One’s project definition: <project name=”ant-junit-performance-unit-tests”>…<schedule interval=”600″><ant anthome=”apache-ant-1.6.5″buildfile=”projects/${project.name}/build.xml”target=”performance-unit-tests.execute” /></schedule><publishers> <onsuccess> <artifactspublisher dest=”artifacts/${project.name}” dir=”projects/ant-junit/profiling-reports”/> </onsuccess> … In this case, CruiseControl is configured to check for source updates every five minutes—because performance tests take longer to run, they cannot and should not be run as frequently. In a real-world application, checking hourly is more reasonable.

Not only does the article describe the concept of running performance tests as part of CI, but it also shows how; we are also shown how to collect the results, using JMeter:

Once integrated, you define a JMeter Ant task by adding the following to the Ant script: <taskdef name=”jmeter”classname=”org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”/>

This is a clear example of prior art. For nearly 40 years Dr. Dobb’s Journal was one of the foremost software magazines in the world (I remember in the late 1990s tentatively reading my first Dr. Dobb’s articles on sorting algorithms and mutexes, and realising how relevant Dr. Dobb’s seemed). There is no excuse for the HP people for missing this kind of prior art when it was so readily available.

To me the patents filed by HP feel like a ‘land grab’ by a company that is struggling to be relevant in the world of Continuous Delivery, with old-skool application release automation (ARA) tools simply rebranded as ‘Continuous Delivery’ (incidentally, may the gods help anyone who pays for these soul-destroying HP tools).

Okay, so what can I do to help?

For each of the patents above we need examples of prior art before 2012: articles, blog posts, conference talks, book chapters, etc. If a patent does not have an Ask Patent page, please create an Ask Patents page (the easiest way to do this is via Google – search for the patent code). Then post the relevant details on the Ask Patents page for the specific patent.

You can also search for other patents from HP relating to CD – perhaps using a different author name (the patents above all relate to Inbar Shani only).

Together let us get the patents overturned through decent prior art details and stop this madness. From the start Continuous Delivery has been a practitioner- and community-led endeavour (with generous guidance from ThoughtWorks). CD is not the place for large behemoth corporations like HP to muscle in and take ownership. As Dan North puts it:

"Identification of a failed code change" in a build pipeline. As a patent. Really @HP? #getoffmylawn — Dan North (@tastapod) March 4, 2015

“Identification of a failed code change” in a build pipeline. As a patent. Really @HP? #getoffmylawn

Footnote

Thanks to everyone who helped to spread the word about this, in particular Steve Smith, Dan North, Marco Abis, Pushpak Singh, and all who have added prior art details to the Ask Patents page and contributed to the Twitter WTF stream.

Updates

Corrected ‘granted’ to ‘published’ in first main paragraph. (2015-03-08)