Using a metaphor for your software system is a good way of describing how the system should work in a way that other people can easily relate to. This has been described in the eXtreme Programming 'System Metaphor' practice. However, is this really necessary? And what happens if your system changes or you divide your software in more modular parts?
Hamlet D'Arcy writes in his blog entry:
"The eXtreme Programming System Metaphor practice makes a pretty easy target. I've seen large development teams grind to a halt because of persistent broken builds without any continuous integration. I've seen teams' productivity drop to a crawl under the burden of technical debt and lack of test driven development. But what happens when a team lacks a good metaphor for how the system works? Can you really name a reasonable, realistic negative impact from a lack of system metaphor? Just last week I was dismissing it in an internal agility training as an unneeded XP practice. So I was surprised to see Joshua Kerievsky's and Brain Foote's "System Metaphor Revisited" talk at Agile 2009. Seriously, the guy who wrote Refactoring to Patterns is also hyping the System Metaphor? We'll see... "
Home
Community