Huffman encode the function names. Short names for frequently used functions (ok, is), longer and more descriptive for less used ones. It Has To Work! On every Perl version (back to 5.6.0), on every OS. If Test::More breaks, CPAN breaks. This means sometimes you have to throw out an interesting feature that might be jittery. Spin it out into another test module instead. Functions do one thing only! Contrast with Test.pm's ok() which does about four different types of tests. Be predictable, no helpful magic! For example, Test.pm's ok() will "helpfully" run code references for you. It will guess that '/path/' is a regex. These make test behaviors unpredictable and difficult to document. Hard things possible! The basic testing unit is ok() because it you can write any test with it. No interference! Test::More should effect a running process as little as possible. It should stay inside it's box. No assumptions! Don't wire assumptions about how the tests will be written into the code. No coupling! Don't couple Test::More with (for example) Test::Harness. No dependencies! Anything Test::Builder depends on can't be tested with any derived module. Push complexity down into Test::Builder.