Tangential comments about Software Development

Tuesday, January 08, 2008

Pair Requirements Analysis

I like to pair program. Two heads are better than one. It's an efficient way of sharing knowledge and ideas.

The challenge on my current project is not the programming, which is in C# and using our libraries that are becoming cool and mature. Instead the challenge is in the Requirements Analysis.

The solution is Pair Requirements Analysis. I sit at a pair workstation with my colleague Tallboy. We both leaf through copies of the documents that have tried to record what the user wants. As we identify a requirement I put it in to the system in some way - as a test, as an item on the wiki, as an index card, as a TODO comment in the code. That hardly interrupts Tallboy's flow - it only takes a few seconds. We then discuss the next thing he's found and what it might mean for the system.

It's an odd process. But it's honest. I know why this project started with a sheaf of mildly disorganised documents, and this is looking like an efficient way of getting from them the tasks to be done. Try it out!