Problem Frames and XP

This is a question about Problem Frames and Xtreme programming. In Problem frames chapter 1, the author asks us to resist the urge to do programming right at the beginning. But what happens in XP, we have user stories and then we have pair programming right at the beginning, quite unlike RUP where implementation begins much later. So then how do you resist the urge to program in XP right at the beginning?

Deepank Saini


That's a great question. I think XP and Problem Frames aren't that compatible... at least through comparing the philosophies of the respective authors. Michael Jackson seems to implicitly stress doing a very thorough analysis before embarking on any project, so that the system built is really what the customer wanted. The XPerts also want to please the customer, but have a strong disregard for this kind of up-front planning. They would probably point out that test-first design and early feedback (by delivering a functional system very early) would drive out requirements... and that there was no way you could find out everything you needed to know in advance, no matter how hard you tried.

Still, that doesn't mean that someone on an XP project can't ask the kinds of questions problem frames raise. I interviewed Steve Wingo's XP team from Southern Company this week, and he mentioned they do what they call a "Virtual CRC Session" - that is, they think out the CRC type of concerns out loud, or maybe with a whiteboard, but don't write anything out on actual CRC cards. The same idea could apply to Problem Frames. When developers sit down to solve a problem, they could ask "What kind of problem is this? Is it a workpieces problem? A transformation problem?". They wouldn't write all these fancy diagrams, but just thinking/talking about it for a few minutes might help a fair bit.

For an interesting sidenote, see www.eXtremeModeling.org. This is intended for Executable Models, so it's a bit different from Jackson's Problem Frames, but you might find it an interesting read.

-Andrew Rosenfeld

Yes, you would not hire Michael Jackson for an XP team! The approach in his book is not compatible with XP. I think the knowledge in his book is compatible. In other words, if you realize that something is a commanded behavior problem then you should ask questions about sensible commands and viable commands. If you are the developer, you would ask these questions when making test cases, and if you can't answer the questions yourself, you should ask the customer. You wouldn't go through the whole process that Michael Jackson advocates, but you would make use of what you learned in the book. Ralph Johnson