I used to start with one chunk of prototype code in main() and factor out functions and classes as I realize they make sense. Now I make assertions as I go and name it testMain(). Sometimes there's just one assertion of the final result at the end, because even that helps.