We advocate an ``extreme'' style:
-
Develop functionality incrementaly.
-
Start small.
-
Make sure you have beautiful code that works before
you add any new functionality.
-
Think before you code (but not too much).
-
Design in small pieces -- don't do everything at once.
-
Accept that the design will change.
-
Write good tests.
-
Don't test you program by running it. Use automatic tests!
-
If the tests pass, you should be pretty sure you coded
correctly.
-
Write good code.
-
First, write the simplest code possible.
-
Get it to work (pass the tests).
-
Last, improve the code by refactoring: improve
structure without changing functionality.
-
Iterate.
-
Once you get something beautiful that works, begin to
design the next piece of functionality.