XP/Agile Universe 2003: Day 1
XP/Agile Universe 2003 was held Aug. 10-13 in New Orleans, LA (NOLA) and was a great experience.
Ivar Jocobson did the keynote on the future of process. I was impressed that Ivar is not a prescriptive process proponent. He is working toward the goal of having an invisible software development process, much like the process of driving a car is invisible. His current tack is to define (in a standards body) all the best practices along the various dimensions (technical, project mgmt, human, organizational, ...). Given this list of BPs, process definition becomes choosing all the BPs you need/want (if you believe him).
Ward Cunningham also had a keynote about the limits of XP. Essentially the limits come down to organizational values conflicting with XP values and teams dealing with specialized hardware (firmware development). He then demonstrated some techniques for pushing the limits back when dealing with hardware by writing an emulator for the hardware.
Gary McGraw did a session on how XP and software security do and don't mesh. His grasp of XP was sketchy in some places, but he had good questions. The best question was whether security could be refactored into a system, his opinion was that it is doubtful. He also pointed out that static code analysis could remove most of the security issues that get reported on the news and that continuous integration is a good insertion point for this technique.
J. B. Rainsberger, Ron Jeffries, and Rick Mugridge hosted a workshop on programmer tests. A goodly amount of time was spent discussing what exactly programmer tests are, with no resulting consensus. Next was the discussion of how or if programmer tests should deal with “hard“ tests such as concurrency, resource starvation, performance, etc. At that point small groups were formed to discuss other topics. I attended one talking about dealing with legacy code. We defined legacy code as code without programmer tests. We discussed the use of “learning tests“ to probe the functionality of legacy code and talked about techniques for modifying it. We also traded war stories on the worst legacy code we had to touch, JB one this one with 20+ singletons in one app. I then joined a group discussing the use of mock objects which turned into a discussion about when to use mocks vs the Object Mother pattern.
I then had a nice dinner with Ken Auer, Bret Pettichord, Gerard Meszaros and others where the conversation ranged greatly.