Monday, March 20, 2006

XP isn't a solution to what ails you

I've got a theory. As far as theories go, this one isn't even half baked, but raw, as in I've given in next to no thought. But I'll share it nonetheless.

First of all, I don't know a lot about other methodologies, except for the little I've encountered with waterfall. But my theory says that most non-agile methodologies are there to hide things. I'm just a developer and don't need to know anything outside of the fact that I've got to implement some functionality. I'm just a replaceable component and as such, the less I need to know, the better. To do my job, my scope is narrow and the information I have is small, because things are hidden from me. Things just get swept under a rug somewhere. Agile methodologies bring things out in the open for all to see. Non-agile dulls things down. Agile magnifies.

XP isn't a solution. If you're part of a bad team, XP just makes it more visible that the team is bad. If you are on a good team, it should make you better. I'm not sure what would happen if your on a mediocre team... 8)

It's no silver bullet. It's no bullet. I wouldn't even bother to call it a projectile! It's is a revealer. Want to know if the team is good, bring in XP. If the team falls apart, then you know. Who wants to be on a bad team anyhow?

I'm just a hack

Or least I used to be. I'm defining a hack as someone who writes legacy code. I'm defining legacy code as code without automated testing, i.e. code not developed using TDD.

I've finally reached the point where I don't feel comfortable writing code that isn't fixing a test. No red bar, no write new code. Which is good, except for I catch myself just wanting to add some small feature quickly. The ensuing mental battle is entertaining to step back and watch:

Me want add new feature, just start writing code

Excuse me, what do you think your doing?

Adding new feature. It simple, no need testing.

But you don't have a red bar.

Must have new feature now. Instant gratification desired.

Give us a red bar first.

But..Oh...feature...just...type...arrgh.... <sigh>

That's more like it.


It sucks to some degree, because of the old habits of just doing. But in the long run, I believe that I will be going slower without the tests. Time will tell.

Monday, March 06, 2006

Stopping and Reflecting

Adrian and I have been working hard Pair Programming for some time now (not really sure how long it has been). Thursday mid-afternoon we both realized our brains were fried. My realization came from the fact that I looked at something and thought I should care about it, but found that I didn't. Once we both came to the realization, we called it a day and then didn't work on it again until this morning.

I just take it for granted that this is a good thing, but Adrian pointed it out to me that on this morning alone we accomplished more than we felt we were capable of on Thursday or Friday. Less haste, more speed.

The break also gave me some time to reflect on what we had been doing. And one thing I think we hadn't been doing is reflecting on what we had been learning and fixing what wasn't working for us. I pointed this out, but we still didn't do it today, but I'm not so sure that we now need to. Hard to say, but I get the feeling that in the early stages of doing something new, it is always a good idea to get feedback as often as possible until the conscious competence turns into unconscious competence.

The other thing I realized is that Adrian was driving far too much and we weren't getting the full benefits of Pair Programming in that our communication wasn't as good as it should have been. I'm new to the domain, so I tended to get fried before Adrian and would kind of fade out of the picture slowly and subtly to the point where I'd feel lost. Adrian didn't really notice too much (at least I don't think so) and it didn't really slow him down. Today, I insisted that he leave his keyboard (we usually pair at my machine and he brings over his keyboard), which forced me to be an active participant for the full time. This time, we found ourselves fried at about the same time. Mine was the usual information overload, but I think Adrian was fried from having to communicate much more than he is used to.

Thursday, March 02, 2006

Time passes

Yeah, it's been awhile. Things happen, I've got a life and I seem to be busy. I've only writing this because someone threaten to link to me if I didn't give my side of the story. Until I get around to it, that's what I've been up to. My brain is too fried trying to handle too many things at once.

BTW, I'm no longer with the old mob, but with a new one...

Damn save as draft button, thought I'd published this a few days ago...