WRT ExtremeNormalForm, BradAppleton asked "How do I know which subset of the XP practices are the necessary yet sufficient ones to do this?" More generally, one might ask "CanXnfComeOnlyFromFullXp?" For my money, no. Xnf describes the state of the software not the process that got it there. (OTOH, Xp is a damn good way to get it there!) Starting with high-precision use cases, for example, shouldn't ''prevent'' a group of developers from reaching Xnf. I would go further still: it is possible to reach Xnf following processes that are ''counter'' to Xp. For example, one might build for the future WRT some part of the software and subsequently have predictions pan out sufficiently well to get the code to Xnf. Lest anyone think I've been "deprogrammed" out of the Xp cult (;->), I believe that Xp is the best way to get to Xnf. Extra-Xp practices will tend to reduce ones odds of getting there by diverting precious resources. Counter-Xp practices make getting to Xnf a fluke. --KielHodges (now wondering if ExtraXpImpliesCounterXp) ''Just so. The XNF idea is the conceptual state of software that works, is surrounded by tests to enable change, has nothing extra, assumes nothing, prohibits nothing. Posit a definition XNFD that allows a scientific metric to say how close code is to XNF. Now measure some code. It turns out to be exactly in XNF. How did it get there? Clearly, there's no way of knowing. Maybe some guy just got lucky.'' ''If '' '''we ''' ''are lucky, XP is '' '''a ''' ''way to get some benefits, including getting to XNF. --RonJeffries' ' ------ Some small examples of code which are probably in Xnf are in books like Dijkstra's (EwDijkstra) DisciplineOfProgramming, they certainly didn't get there using XP. But, most of us aren't Dijkstra, and we need to write programs longer than one page. ------ I've been reading qmail, which is an awesome system. It was written by one genius programmer, and so certainly not using XP. It is low on tests, but otherwise fits ExtremeNormalForm. --RalphJohnson