Categories
Rails

Opiniated software

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]

Categories
Agile

Another reason to have frequent retrospectives

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.

Categories
General nonsense

It’s a good job I’m male

Otherwise I’d probably have had to go home and change, rather than spend the afternoon pairing with someone wearing a matching T-shirt.

Of course, since I am male, when I say ‘matching’ I actually mean ‘vaguely similar in colour’.

Categories
Agile Java Ruby

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

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.

Categories
Agile

Avoiding pair-programming breakdown

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…

Categories
General nonsense

World’s biggest mouse pointer

No idea what it’s about because I don’t speak Japanese, but this is pretty cool (in a ‘completely useless but…’ kind of way).

Via Ok/Cancel.

Categories
Agile BT

BT Agile Awards final

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).

Categories
Web 2.0

Jakob Nielsen on Web 2.0

According to the BBC, Jakob Nielsen claims that “Hype about Web 2.0 is making web firms neglect the basics of good design.” As you would expect, he makes some good points, but I’m not so sure about this bit:

“That was just bad,” he said. “The idea of community, user generated content and more dynamic web pages are not inherently bad in the same way, they should be secondary to the primary things sites should get right.”

“The main criticism or problem is that I do not think these things are as useful as the primary things,” he said.

Well-established patterns of user involvement with sites also led Mr Nielsen to question the sense of adopting Web 2.0 technologies.

Research suggests that users of a site split into three groups. One that regularly contributes (about 1%); a second that occasionally contributes (about 9%); and a majority who almost never contribute (90%).

By definition, said Mr Nielsen, only a small number of users are likely to make significant use of all the tools a site provides.

To my mind, one of the key things about “Web 2.0” – think Flickr, Twitter, Wikipedia etc, not just sites with AJAX and trendy colours – is that community and user generated content are at the heart of the site, not just an add-on. That means that those 1% who regularly contribute are absolutely central, and vital to the site’s success.

Categories
General nonsense Web21C

JohnMac and psd: the real story!

According to Twitter, anyway:

John’s one friend

:-)

Categories
Java Rails

Hi, I’m Ruby on Rails…

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.