Exteme Programming

What is Extreme Programming? XP is a practice for programming that is social and iterative. It seems to run counter to traditional advice about how to programme and seems closer to real practice.

From a note I sent Steve.

What intrigues me about how James presented XP (which I realize is not Kent Beck) is:

1. It is a social activity
2. It is a practice designed to avoid “death march” programming – in other words xp is about having a life
3. It explains what you told me about you and Stefan X programming HyperPo – I didn’t get the reference when you described the programming in a cafe
4. It could be adapted to programming outside the cubicle – with wireless XP could scale programming out into social locations
5. It looks like a great way to learn to program, not unlike the apprenticeship you put me through
6. It contradicts a lot of other advice on how to program (like planning and anticipating everything) – it seems closer to making sense of what we do

So, how could this be applied to other activities like writing? I should begin by saying XP is not textuality (I was confused in my other note) – it is a disciplined practice of writing that can be compared to writing practices as set out in “how to write” books.

1. Writing should be done in groups.
2. Plan just enough to start writing – don’t outline the whole thing
3. You can’t anticipate everything when taking notes on research – instead you should write something and then do the research needed to develop what you wrote. In other words you don’t first do all the reading and feel guilty that you aren’t taking perfect notes. Instead you start writing and read/research to develop the idea.
4. Try writing in pairs where one person writes and the other critiques. Try dialogues.
5. Assign the role of critic to someone – they have to keep us focused on what the reader might think
6. Write the simplest and shortest piece and then refactor it iteratively

I wonder if this applies to Ivanhoe as a system that structures writing in a group and like a cvs system keeps versions under control?