Good Method

Lots of people rant, but a really good rant inspires more than laughs. Good Agile, Bad Agile got me to thinking.

Google is an exceptionally disciplined company, from a software-engineering perspective. They take things like unit testing, design documents and code reviews more seriously than any other company I've even heard about. They work hard to keep their house in order at all times, and there are strict rules and guidelines in place that prevent engineers and teams from doing things their own way. The result: the whole code base looks the same, so switching teams and sharing code are both far easier than they are at other places.

Most of the complaints about agile are the really onerous, handholding aspects - in particular, pair programming, but Steve outlines a bunch of others: tight iterations, for example. The thing is, if you don't know how to do something, the only way to get better is to practice. There's a conversational technique that's analagous to the Agile philosophy of "continuous improvement". In this technique, you have a card. Whoever has the card talks, whoever doesn't have the card listens. When you get the card, the first thing you do is summarize what was just said, then you make your own point. The reason for this is to ensure that you heard what was just said, so you can avoid talking past each other. There's a few other rules, but that's the essence. Sounds like a terrible way to converse, right? It is, but if you're having trouble communicating with someone, it's pretty effective.

It takes disciple to acquire discipline. People need to be motivated in order to change their behavior, which is why there's so much evangelism for Agile. Google doesn't need to evangelize much because they've got a few other carrots. Apparently, Google offers you The Good Life, and if you want The Good Life, you have to live right: you write tests, design documents, participate in code reviews. If you step out of line, you've lost your shot at the good life. For this to work, Google has to have enough self-discipline to maintain that standard. In that respect, Steve's absolutely right - if you already have a great deal of self-discipline, and it's working for you, there's really no point in adopting another methodology.

— Gordon Weakliem at permanent link

Beer Good, Condoms Bad

via Patrick Logan, Building Large Systems:

It’s awfully tough to not figure out which way you’re supposed to drink from an open beer bottle. Good user interface. Ever put a condom on the wrong way? Bad user interface. User interface is important.

Honestly, the point of the article isn't user interface, it's test driven development. The salient points are: if it's hard to test, that's a sign that the code will be hard to use, and if it's hard to deploy, you will screw up deployments. And if you take that thing about beer and condoms seriously, you'll be more than test infected...

— Gordon Weakliem at permanent link