A few thoughts:-
in reply to Random thoughts on programming
- Programmers will test their code to make sure it works. Users will test code to see where it breaks.
- Always look to see where you have hard coded limits. Things like numbers of variables in some array or structure, maximum / minimum values, things like that. Make them at least a globally defined value, so you only have to change things once when the user will (eventually) say "now could we make it do this . . . ".
- Data validation - it is easier to assume all data is wrong, and test to see if it is correct, than to assume it is correct, and look for errors. This, of course, sits well with the taint concept. And if the requirements change ("well, can we now handle negative rates of growth?"), you only need to add an additional validation test, or modify an existing test.