Difference between revisions of "Documentation-Rons-Rules-For-Tools"
From Slicer Wiki
Line 2: | Line 2: | ||
"Rules for tools" is an informal set of rules that developers should keep in mind when working on '''interactive tools''' for translational clinical research. If you follow them, you will create tools that many people will use. | "Rules for tools" is an informal set of rules that developers should keep in mind when working on '''interactive tools''' for translational clinical research. If you follow them, you will create tools that many people will use. | ||
− | #You make it, I break it | + | #You make it, I break it. <ref>tools need to be robust and function with a variety of workflows, not only the one envisioned by the developer</ref> |
#Your tool does not exist, until it works on my laptop with my data. <ref>Until then, it's an unconfirmed rumor.</ref> | #Your tool does not exist, until it works on my laptop with my data. <ref>Until then, it's an unconfirmed rumor.</ref> | ||
#I am lazy. I do not like to move the mouse or to type. <ref>User friendliness: | #I am lazy. I do not like to move the mouse or to type. <ref>User friendliness: |
Revision as of 11:31, 17 March 2011
Home < Documentation-Rons-Rules-For-ToolsIntroduction
"Rules for tools" is an informal set of rules that developers should keep in mind when working on interactive tools for translational clinical research. If you follow them, you will create tools that many people will use.
- You make it, I break it. [1]
- Your tool does not exist, until it works on my laptop with my data. [2]
- I am lazy. I do not like to move the mouse or to type. [3]
- No more than one simple parameter. [4]
- I have ADD. Make your algorithm fast. [5]
How To Make Algorithms Robust
- Build a case library with 10 or more cases
- Use half for development, cycle through the cases daily
- Use the other half for testing
References
- ↑ tools need to be robust and function with a variety of workflows, not only the one envisioned by the developer
- ↑ Until then, it's an unconfirmed rumor.
- ↑ User friendliness:
- Minimize the number of clicks
- Minimize the distance my pointer has to travel
- Have good default values for the parameter and I/O, and allow me to override.
- ↑ If I need more than 20 seconds to figure out how to set the parameter, I won't!
- ↑ Performance Requirements
- under a minute is good
- 5 minutes are acceptable
- 10 minutes or more are not