Ken Orr wrote ( in Cutter IT Journal Vol.3, No. 7 ):

Agile . since Jun 23 . Index . DOCs TOP TOC

Simple Design


From Beck's standpoint, "The right design for software at any given time is one that:

§      Runs all the tests.

§      Has no duplicated logic. Be wary of hidden duplication like parallel class hierarchies.

§      States every intention important to the programmers.

§      Has the fewest possible classes and methods." [1]

As you might imagine, "simple" has lots of meanings to lots of people, and I can imagine a number of scenarios where Beck's definition of simple might not turn out to be so simple after all.

Agile . since Jun 23 . Index . DOCs TOP TOC

Testing


"Top XP teams practice 'test-driven development,' working in very short cycles of adding a test, then making it work. Almost effortlessly, teams produce code with nearly 100% test coverage, which is a great step forward in most shops," writes Beck [1].

Test-driven development means that agile development starts by defining tests before developing code. It is easy to overlook the importance of this idea. In doing so, programmers are forced to work out the inputs and outputs that they are trying to achieve and then to build code that produces the correct results from the predefined tests. Like so many factors in agile development, the basic strategy rather than a set of heavy-handed management controls is responsible for good code and good programming discipline.

Agile . Index . DOCs . TOC