delivered by Kent Beck. He had an interesting talk, and got a lot of feedback from the audience. My notes:
Keynote - Kent BeckThe Spirit of Extreme Programming Asked the audience for some expectations - questions related to topic of talk
How did XP get started? (Creation Myth)
- How do you deal with the question - How dare you challenge the conventional wisdon?
- How do you handle personality issues?
- Do you always find an appropriate system metaphor?
- How often are clients really involved in the process?
- How do you convince an organization to use XP?
- Pete McBreen - Software Craftsmanship - square with XP
- From a client perspective - what is the value of XP?
- how to iterations work with project manager schedules?
Always been a programmer, father was a programmer. Always immersed. Was in the Smalltalk world, where it's easy to learn about programming. Technical expertise is just not enough - projects mostly fail for political reasons. Wanted to expand his viw beyond the programming to the whole context of programming. Question - what is the least I can do (besides programming) and still succeed? Only once - 1994 - got in at the start of a project. typically gets in after deadline, when everyone hates each other, and when the money is gone. This project is where SUnit, lots of testing, and frequent refactoring were born. It was a typical mainframe to mid-range project. After 4 months, much progress - but management liked it so well, that they explained the actual goal, as they say it - get the calculation engine running on the mainframe. So goals are important - but they change Next - brought into Chrysler for the payroll project. The goal was to fix the performance problems. Asked - where are the tests, so I don't break anything? Answer - we don't get correct answers yet. Said - I can make it run fast, so long as you don't care what the answers are. So, half the team left within 3 days, contracters were kicked out. IT chief asks for answers:
picked option 3, so long as Kent was in charge. He objected, as he said he was not a project lead. CEO convinced Kent with large sums of cash. inspiration - a combination of preparation and panic Now had plenty of panic. Interviewed entire staff so as to get to know them better. Came up with iterations (3 weeks), stories (to flesh out iteration goals) with first person. As things progressed, came up with acceptance tests to validate. Then came up with Unit tests as a developer task to help get to acceptance test Kent: I was just making this (expletive deleted) up Open workspace, people sitting together, continuous integration, unit testing - it all just came together on the Chrysler project with the team. Mental Model Do what they would normally do, but at maximum effort took 3-4 months of coaching to get to all those steps at once take everything I knew about software development, and turn it all up Thought this was having the knobs all the way up Since then, have moved to 1 week iterations - fits with the human notion of a unit of time that is imaginable.
- Cancel it
- keep going the way you are going
- Throw away all the code, give everyone a week off, and start over.All successful ventures have a creation mythCompanies and nations have them - projects can use them as well.
Questions from earlier: What about personality issues? Kent - started out shy and introverted. The more people I meet, the more I learn and the better I get at what I do. Having different sorts work together helps. This is why the requirements come from the customer representative.
Question from earlier: How often do clients really get involved? Software as sexual reproduction? Male - business representative Female - Developers Male - leaves 9 months later - the software is born Hurts so much, you aren't even going to try that again soon. (Business rep comes in with a new spec immediately...) Answer - How often are males really there all through pregnancy? What about software as ballroom dancing? Male - business Female - partner work - together If one leaves, it's not dancing Using dancing as a metaphor, software doesn't work unless the client gets involved. You need to get this metaphor embedded, and then it guides the process Metaphors are hard to come up with
Close by talking about another question - What is the value to the customer? Total Effort - No Excuses. Focus and Intensity. Turn the knobs up. Be willing to recognize and try to kill doomed projects