Allen Pope should make software executable by others
Details on how to do this task: Make software executable by others
Between READMEs, the Workflow diagram, and Comments, all code should now be sufficiently clear for other people to execute my software. I made explicit the order of scripts to be called, the purpose of the code, any paths called for files I/O, any other functions/scripts called within the code, and any parameters used in the code (thresholds, etc.)
Software used (including versions, toolboxes, etc.) are documented in the overall Readme file
This task made me realize how many things were hard-coded into the software. The unwieldy issue here is the large filestructure that is in place at this point (the end of the study) - scripts call from all over the place, and I know now for the future to create folders & populate them from within the code so that it can be more repeatable in the future. As it is, there are so many manual calls for folders that there we really too many to reasonably make parameters.
Instead - as with some models I have used - I have defined these things thing up front in the script. Yes, it requires some user interaction, but after that initial section everything should run smoothly. If these haven't been set correctly, it will throw and error and the user will then have to go fix it.
ALSO - some of my code is text files to just copy and run in the command line. These are by necessity hard-coded. I have now many this explicit with some commenting. I don't currently have the knowledge to automate these or make paths parameters.
So - my software is executable by others, but it will take just a little more work and stresses the importance of thinking of these things BEFORE you start coding!