A list of possible rules (copied from above link) is:
- Use version control
- Use credible solvers
- Explicitly list your limitations
- Define the context the model is intended to be used for
- Define your evaluation metrics in advance
- Use appropriate data (input, validation, verification)
- Attempt validation within context
- Attempt verification within context
- Attempt uncertainty (error) estimation
- Perform appropriate level of sensitivity analysis within context of use
- Disseminate whenever possible (source code, test suite, data, etc)
- Report appropriately
- Use consistent terminology or define your terminology
- Get it reviewed by independent users/developers/members
- Learn from discipline-independent examples
- Be a discipline-independent/specific example
- Follow discipline-specific guidelines
- Conform to discipline-specific standards
- Document your code
- Develop with the end user in mind
- Provide user instructions whenever possible and applicable
- Practice what you preach
- Make sure your results are reproducible
- Provide examples of use
- Use traceable data that can be traced back to the origin
- Use competition/alternative methods to compare results
Allow me to jump start the discussion and suggest alternatives. It would be beneficial to all if we conduct this discussion on the wiki and the forum. However, since some of you may not be comfortable with it, I decided to start this by email. If you are comfortable with a discussion on the wiki/forum please let us migrate there and someone else should start it and suggest a direction.
On an attempt to start a thread allow me to select the 3 most important elements from the list. I suggest you do the same and explain why. This should give us a good idea on what to discuss.
My selection of the most important elements are:
1. Use competition/alternative methods to compare results
2. Use traceable data that can be traced back to the origin
3. Use version control
I can add a few more rules from the list and there are overlaps, yet my selection is based on my experience. These points characterize my work and I found them important to keep my development stable. My argument is that with those elements it is possible to gage the success of your model and identify elements in it that do not work well and improve them in the next version. Following these three elements it is possible to constantly improve a model.
I hope I was able to convey my argument well and that you will follow up with a discussion. We have about a week for this discussion before our meeting. I hope we make the best out of this week.