Agility does not mean that: Problem solving must occur in two week increments You only talk informally about code 'smells' instead of having in-depth design discussions and review You equate refactoring code with good design (and don't design before you code) You do whatever works without regard to any process. Formal = bad; Informal = good Design descriptions and documentation add no value -- Rebecca Wirfs-Brock "Skills for the Agile Designer" (2002) #### fact = Hash.new {|h,n| n < 2 ? h[n] = 1 : h[n] = h[n-1] * n}