Monthly Archives: February 2011

Dependency Integration: Promiscuous vs. Reluctant

When you’re really doing Continuous Integration, what strategy should you choose for dealing with dependencies? Should you aggressively pull in changes to that library that the guys in the ivory tower make you use? Or should you wait until there’s a compelling need?

Your hand may be forced by your tooling. If you’re checking in your binary dependencies into your codebase, it may be too painful to get updates frequently. If you’re using a build system built around a dependency manager, you might opt to get the latest, shiniest libraries.

You and your team should make a conscious, strategic choice however: The promiscuous strategy will lead to more integration work, in batches. On the flip side, you’ll never be left wading through updates when there is a compelling need to upgrade through many versions of a library. Proponents of this approach might argue that the batch size on this type of change should be kept small, to minimise risk.

If you’re reluctant to take changes, you’ll experience less integration pain on the project. It’ll be your choice when you update. Proponents of the reluctant approach would argue that they are delivering value, and not wasting development capacity on work that doesn’t deliver business benefits.

Whichever approach you choose: make sure it’s an informed choice.


Links for 2011-02-14

Here’s Monday’s links from My Twitter Stream.

Dan North on the evolution of Continuous Integration

Dan North:

In the Old Days […], the Integration in Continuous Integration just meant ensuring all your code modules worked together. Nowadays it means ensuring all the parts of your deployed stack play nice together, so regular rebuilds and information radiators are a great way to verify all the bits you don’t think about still work. It’s like taking your apps to the gym.


Silos, silos, everywhere

Now these types of efforts [ … ] are traditionally located in the marketing department. But in high tech, marketing is too ignorant to drive the bus. What appears to the generalist to be a a simple change may in fact cut across some fundamental technology boundary in a radically in-appropriate way. Or conversely, what looks impossible to achieve may in fact be a by-product of a minor adjustment. In either case, engineering must be a direct partner in the effort, or it is is wasted.

Crossing the Chasm, Geoffrey A. Moore

(Thanks to @jtf for the recommendation)

WebDriver: now at Sauce Labs

WebDriver now runs against Sauce Labs‘ testing service – using many different browsers.  And you can pay by the hour.  This is awesome:

  • Selenium was a huge leap forward in web testing.
  • Sauce Labs has been allowing people to run Selenium tests against any browser and operating systems.
  • Selenium2 (WebDriver) is another great leap forward.
  • Now their Sauce OnDemand product works with WebDriver.
  • Someone else deals with Internet Explorer 6.

If you’re used to running IT in a small company, you might wonder that the fuss is; surely you roll out some desktop or VM machines, and get on with your testing?  I was recently talking to someone who had worked at a large North American bank: they had a Service Level Agreement to provide virtual machines six weeks after they were requested.  I shit you not.

I’ve been testing the service with Cucumber and WebDriver, and it’s been really useful.  My tests took on a new level of usefulness when everything had to connect to a real hostname, and not localhost.  It’s helped flushed out network related bugs in my code.

They’re quite pleased about it:

Obviously we’re big believers in Selenium.  As you might imagine, given that we offer Selenium as a cloud service, we’ve had a fair amount of exposure to the issues that motivated the creation of Selenium 2.  So we sought to offer Selenium 2 in our service at the earliest responsible date that would support production usage.  Three months ago we quietly introduced Selenium 2 in our production service.  We instantly had literally 100s of customers using its Selenium 1 compatibility mode.  Since then we’ve steadily ratcheted up the number of Selenium 2 users in private beta and today are excited to throw the doors open to the public to use Selenium 2 in the cloud for the first time.

(John Dunham, co-founder and CEO)

Tagged , ,