XP daddy: go incremental on design
Safe steps for hectic times
QCon 2008 Age mellows us all and the co-inventor of extreme programming (XP) and an early Smalltalk advocate, Kent Beck, is apparently no exception.
During his presentations at QCon this week Beck advocated the principle of taking "safe steps" in the evolution of a software design to ensure that technical risk is properly managed.
Beck noted wryly that traditional approaches to software development ran contrary to economic realities. Yet, despite bold attempts at change - such as experimental work on URL-driven design (UDD), literally generating HTML code in real time in response to a web request, during the early days of XP - he has settled on a measured approach.
"Received wisdom is that if you spend time up front getting the design right you avoid costs later. But the longer you spend getting the design right the more your upfront costs are and the longer it takes for the software to start earning. So a rational model of software is to design it quickly - the economic pressure to improvise presents an interesting challenge," Beck told QCon.
Referring back to his early work on XP and UDD, Beck said: "I had long been a fan of incremental design - but I'd never thought until then of how you could take it to the limit and push it to this level."
Needless to say, the approach never went beyond a theoretical possibility and Beck's approach now relies on a more measured philisophy. "Design should be easy in the sense that every step should be obviously and clearly identifiable. Simplify elements to make change simple so you can manage the technical risk," Beck said
In his keynote speech on agile development Beck emphasized the importance of teamwork and relationships alongside purely technical expertise. Beck separately told Reg Dev that the main trend in agile development is towards transparency and accountability because deployment cycles are speeding up.
"Organizations want small changes in functionality on a more regular basis. An organization like Flickr deploys a new version of its software every half hour. This is a cycle that feeds on itself. The business looks at it and says: 'Yes we want to be able to respond quickly so give us something today'. Agile development enables us to deliver incremental change - not because it is better but because it matches what is going on outside."
Beck said this mandates a cultural change in software development with an emphasis on more transparency. "You need a cultural change first - developers can still be uncomfortable revealing that they are tracking bugs, which should not have been there."®
The Register is a media sponsor of QCon London 2008.
Sponsored: Hyper-scale data management