Fail Fast

01 Sep, 2004

Many people recommend writing software so that it automatically works around errors. This results in software failing in mysterious ways later on. "Fail Fast" means writing your software to fail immediately and visibly when an error occurs. It results in more robust software with fewer defects. (Article hosted on Martin Fowler's website.)


Continuous Design

01 Jan, 2004

Continuous design is the process of using refactoring to continuously improve a program's design. In this article for Martin Fowler's IEEE Software "Design" column, I discuss my experiences with continuous design, particularly with seemingly difficult scenarios such as internationalization and transactions. (Article hosted on Martin Fowler's website.)