1) You follow a well defined and repeatable process
2) You are able to measure progress
3) You have predictable results
4) You are capable of adapting to requirements change
5) You follow a standard of some sorts (coding style, organization, etc)
6) You provide thorough documentation
http://en.wikipedia.org/wiki/Source-to-source_compiler