Eigenpoll : Best Practices for Software Development : Bottom up 

First make/buy the tools/libraries/(embedded)languages for solving problems of this kind. Then solve your problem with these tools.

This way the actual program is smaller. It can be written many times until it's right.

http://paulgraham.com/onlisp.html