Kerry Buckley What’s the simplest thing that could possibly go wrong?

5 June 2007

Taking continuous integration for granted

Filed under: Agile — Kerry Buckley @ 8:54 am

Only a couple of years ago a source code management system, as far as I was concerned, was somewhere you checked files out of when you started development for a release, and checked them back in a month or two later. Integration was something that generally occupied the next few weeks, as everybody’s changes fought amongst themselves over who could find the most interesting ways to break stuff.

Yesterday we had a major power fault in the server room where our Subversion and CruiseControl boxes (amongst a lot of much more important stuff) lives.

It’s surprising how much of a pain it now seems not to be able to commit code as I get it working. Not to be able to integrate other people’s changes. Not to be able to check that my code passes all the acceptance tests in a controlled environment.

At least it’s not like the old days when we had to actually do all our development on the Unix server, so I can still get on with things until it’s all sorted out.

Aha! It seems that while I was typing this post, the repository has come back online.
[tags]continuous integration[/tags]

3 June 2007

Opiniated software

Filed under: Rails — Kerry Buckley @ 7:24 pm

DHH talking about pluralisation in Rails, in Scott Hanselman’s RailsConf interview with him and Martin Fowler:

…it was kind of a firewall. It was a firewall for aesthetics. So if you could not appreciate why we did this, why we chose to go through all of this work to get prettier code, maybe you weren’t in the state of mind that was a good fit for this community. So we tried to weed people out in some sense – if they don’t share the same cultural bias, if they don’t share the same values, then maybe they’re not a good fit for the Rails community.

It’s often said that Rails makes it very easy to Do The Right Thing, whether it’s separation of concerns, unit tests, DRY or whatever. I wonder how many people start using better practices because Rails pushes them in the right direction, or whether they choose Rails because they see the obvious evidence of good practices its philosophy and architecture.
[tags]rails,dhh,opinionated software,martin fowler,hanselminutes[/tags]

30 May 2007

Another reason to have frequent retrospectives

Filed under: Agile — Kerry Buckley @ 7:51 am

Josh Evnin writes in Agile anti-pattern: Developer-focused retrospectives:

In a retrospective, however, it is important that no one group of team members is favored over others. This is harder than it may seem, especially when the developers make up more than half of the team.

The way most retrospectives I’ve been a part of have worked is some variation of the following:

  1. Individuals think of a few things that have gone well, and a few things that have gone less well over the past set time period
  2. These thoughts are put on post-it notes, then placed on a wall
  3. Individuals read all the thoughts and vote for the ones that they agree with (each person has a limited set of votes)
  4. The retrospective facilitator tallies the votes and discusses the highest vote-getters with the team, and discusses ways to fix problems and continue successes

Now, as you can tell this is a quite democratic process. The problem is, when the ratio of developers to business analysts is 4:1, you start to see the topics discussed err towards the technical.

I wonder whether concentrating on one role’s issues is also a symptom of not having retrospectives often enough.

Of course there’s a place for project or release retrospectives, but I tend to find more frequent iteration/sprint retrospectives more useful, as they give you a shorter feedback loop. As a side-effect, there are usually fewer things to add to the list after only one or two weeks, so we have time to discuss anything that gets raised, rather than having to pick the most important.

29 May 2007

An issue with mock-driven development in dynamically-typed languages

Filed under: Agile,Java,Ruby — Kerry Buckley @ 10:09 am

First, let me make it clear that I really like BDD, I really like mocks, and I really like dynamic languages. RSpec does a pretty good job of combining all three.

However, there’s one disadvantage that duck-typed languages suffer when it comes to using mocks to drive the design of the interfaces between objects.

(more…)

21 May 2007

Avoiding pair-programming breakdown

Filed under: Agile — Kerry Buckley @ 8:40 pm

One of the persistent themes in my team’s retrospectives is that we don’t pair as much as we should. It’s not that we don’t want to pair, or that something’s stopping us: we just seem too often to lack the discipline to start pairing and then not drift back into working alone again. I’m not sure the best way of avoiding the delay in forming pairs at the beginning of the day and after lunch1, but here’s at least one tip to keep the sessions going.

If you need to quickly nip back to your own machine to check some documentation, google something, check for some urgently-awaited e-mail reply or whatever…

Don’t take your chair with you.


1I think this is a variant of the ‘one more pint effect’ that’s often observed when a group over a certain size meets in a pub prior to going for a meal. One person decides that everyone’s going to take ages drinking up, so they decide to have ‘one more pint’. Of course, someone else then sees them with a full glass, and makes the same decision, and you end up arriving in the restaurant an hour later than planned. The pairing equivalent is where you all think ‘everyone looks busy, so I’ll just [answer that e-mail | do that pointless mandatory on-line training course | go and make a coffee] while I’m waiting for someone to pair with’.

Of course the real answer is to be strict about all production code being pair-programmed, rather than letting yourself make exceptions for ‘trivial’ tasks, or UI code, or refactoring, or something that started as a spike but has somehow grown tests and made it into the trunk…

18 May 2007

BT Agile Awards final

Filed under: Agile,BT — Kerry Buckley @ 10:16 am

The CSAM-n team receiving our trophy

Wednesday night saw the end-of-year BT Agile Awards dinner, with all the recipients of the various quarterly awards gathering at the Royal Horseguards Hotel to eat, drink, and find out who’d won the overall team and individual awards for the year. It was a good night, made even better by the fact that we won the team award! Our prize is that we’re off to the Agile 2007 conference in Washington DC in August.

Congratulations also to Gregg Wyburn for winning the individual award, and to our current colleagues from the .NET SDK team, who picked up their quarter three award for best application of the BT agile values.

More photos from the night on Flickr (see also photos tagged with btagileawards – hopefully some more people will post and tag photos, but BT’s webfilter blocking Flickr doesn’t help).

14 May 2007

Hi, I’m Ruby on Rails…

Filed under: Java,Rails — Kerry Buckley @ 5:02 pm

The guys over at Rails Envy have created an excellent J2EE vs Rails parody of Apple’s Get a Mac adverts:

Apparently there are more coming over the next few days.

29 April 2007

The Way of Testivus

Filed under: Agile — Kerry Buckley @ 6:18 am

From the slightly-odd The Way of Testivus, via InfoQ:

The pupil asked the master programmer:
“When can I stop writing tests?”

The master answered:
“When you stop writing code.”

The pupil asked:
“When do I stop writing code?”

The master answered:
“When you become a manager.”

The pupil trembled and asked:
“When do I become a manager?”

The master answered:
“When you stop writing tests.”

The pupil rushed to write some tests.
He left skid marks.

If the code deserves to be written,
it deserves to have tests.

28 April 2007

Are we spending more and more time writing tests?

Filed under: Agile,Rails,Ruby — Kerry Buckley @ 9:51 am

A while ago I wrote about testing trivialities, and claimed that no matter how simple the piece of code is, it still ought to have a test. I followed it up with some thoughts on using a helper to simplify writing specs for common validations. Even using the helper, the actual test code for a single validation outweighs the production code by a factor of more than three:

(more…)

13 March 2007

cruisecontrol.rb

Filed under: Agile,Java,Rails,Ruby,Software — Kerry Buckley @ 7:13 pm

In case you missed it, those nice people at ThoughtWorks released CruiseControl.rb yesterday.

(more…)

« Newer PostsOlder Posts »

Powered by WordPress