Last active
August 25, 2016 06:56
-
-
Save monkut/4577ae4e392ba7c52467e54bd15dfa58 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Tool Creation Guidelines for High Performance Teams | |
The objective of these guidelines are to clearly identify what is desired of a tool for use in fast moving teams with clear objectives. | |
- Minimize necessary user actions/input | |
- Minimize the Tool purpose | |
--> if a tools has multiple functions consider breaking them into smaller tools. | |
- Avoid a GUI when possible | |
--> Good GUI design is hard and creation process is time-consuming, as there is no clear "right" answer. | |
--> If a GUI is necessary, create a 'core' component with clear intefaces so that the GUI can be easily added, but still not necessary. | |
- Tools should be scriptable regardless of the language it was written in. | |
--> A command line interface is sufficient. | |
- Tools should run on linux. | |
- Tools may run on windows | |
- Tools should have a built-in help, explaining basic operation | |
- Tools should have a README, explaining all user-facing features | |
- Tools may have detailed documentation with location clearly stated in the README (... but if needed, your tool is probably too complicated already) | |
- Tools should output to common formats: | |
- SQL DATABASE (Postgresql, etc) | |
- CSV | |
- GEOJSON | |
- Tools should avoid misdirection [via extended referencing or deeply defined, hard to find functions ] (this is the stuff of magic, and only leads to confusion) | |
- Tools should have testcases! (include small sample set data with the tool project) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment