Tuesday, May 26, 2009

Because the biggest single determinant in today’s production is the quality of yesterday’s production.

Mike Hill discusses How TDD and Pairing Increase Production, and he is right.

Today, two of us have been working, and have made progress, but the reality of the situation is that we've only commented out a few lines of code and run the debugger. Neither of us have worked in this code before, and there are no existing tests. Just finding our way is work. Real work requiring attention and sifting through many facts for the few that give us a clue as to what is not really working and why. We're spending the day (so far) reverse-engineering older code and trying to understand how (and whether) to make our change.

Programming is largely about thinking, planning, scheming, and not making mistakes. I do those much better with a partner.

Thursday, May 7, 2009

Esther Derby Promotes Plain, Honest Speaking

She (rightfully) hates the sandwich technique, where you build your criticism into a protective fog, to keep your colleague from feeling like you have criticized him. Which you have. But now he's not sure.

Or, I suppose, it would mean that you mix your praise for his good behavior with criticism... to keep him from getting the swelled head? Whatever.

I think I'd like to know if I'm effective. Even when I was feeling very self-conscious and unhappy, I would take criticism because I want to be better. I prefer "don't do that" to "you know, you're all really good person and make good hot sauces but...."

I guess it takes all types. In IT/Software, I would suppose many of us follow some older, wiser advice.

Top-down/Bottom-up

I always find I do a better job if I top-down my tdd work. I have a good context, goals are clearer, and the strategy doesn't get lost in the tactical work. It's such a good way to work.

On the other hand, I find myself constantly battling the urge to bottom-up the solution (and losing fairly often). When I bottom-up the work, I risk having a solution that doesn't really work in context and I have more rework. So what is the pressure that makes me want to bottom up?

I think it's because TDD is easiest when you are closest to a unit you're testing. It is easiest to isolate, and the tests are smaller and more clear than at higher levels. In addition, you never have a higher-level red test to ignore (or I've seen people comment them out) while you get a lower level test working.

I also think it has to do with the human "optimization drive" to skip all the navigation and jump to the file we think we'll have to change anyway. Maybe this is stronger in technical people, maybe not. It often works out just fine, but sometimes not.

I think I want to optimize away the "sometimes not".

Friday, May 1, 2009

Whiteboard

A friend just pointed me to twiddla as an online whiteboard for remote collaboration between friends and colleagues. I diverted a little time from work and went there this morning for about 15 minutes. Looks like it could work just fine.

XP Born in Frustration

I guess I didn't read enough of the literature, but was tickled when I found this little blurb at American Way Magazine:

After 12 years as a programmer, Kent Beck understood that there were bugs in the conventional approach to developing software. But it took one particularly rancorous gig for Beck to decide that there had to be a better way. The project’s manager was “a tin-pot dictator” who pounded the table as he abused his programming staff, Beck recalls, blaming them for problems that were systemic.

By the second day on the job, Beck became furious — and was escorted out by the company’s security force. But an idea born in that confrontation would flower into Beck’s new strategy for software. He calls it extreme programming (XP), and it has attracted acolytes around the world. Beck has written a manifesto called Extreme Programming Explained: Embrace Change and has founded a nonprofit, the Three Rivers Institute, in Merlin, Oregon, to spread the XP gospel.

I guess sometimes it's good to be 'fired' from a gig. I bet he's happier now than he would ever have been there. This is the kind of moral tale that makes history so engaging.