You have an idea for an application that would help improve the quality, efficiency, or reach of your research. Unfortunately, the application doesn't already exist in the marketplace. Thinking about custom development? Here are some things to consider before you begin.
Software Lifetime: No software or application lasts forever; it's important to make your application development plan with the expected lifespan in mind. An application that will be used for only a few months or less does not have to be planned as carefully. If the lifetime will be longer, a stricter approach should be followed. For example, if a student is developing the code, you will need to make a transition plan for when that student leaves.
Maintenance: All software will require bug fixes and most will require updates as languages and other dependencies (e.g., databases, operating systems,etc.) get updated. There should be a clear maintainer of your application code. If you are contracting a developer to write code for you, be sure maintenance is addressed in the contract, or else make an alternative and realistic plan for maintaining your software as operating systems and platforms are updated.
Deliverables: If you are using a student or a hired developer to produce code, be clear about what the deliverables are. At the very least, the deliverables should include source code and documentation.
Revision Control: If you are using software to transform your data, reproducibility is vital. The results you get today should be the same tomorrow, next week and years in the future. Your software is likely to change over time as bugs are resolved and features are added. With revision control you can always return to a previous version of your code to validate results. Revision control has many other benefits as well and is recommended for any software development. Some very widely used revision control programs include git, gitlab, bitbucket, and subversion.
Test Data: Any software that will be used for research should be validated with test data. Be ready to provide your developer with test data where the expected results are known.
Information Security: The level of information security that will be required depends almost entirely on what kind of data you will be using this application for. You should consult with your LSP if you have any concerns that the data may be considered sensitive.
Other Options: Developing a custom application is not always necessary. If you consult with your LSP about the project, they may be able to recommend other tools and applications that are already in use on campus. If you can use a tool that already exists, you will save your project a lot of time and money.
For Assistance: SASC staff members have experience engaging the services of third-party developers, whether student workers or outside developers. Consult with your Local Support Provider (LSP) for further guidance in engaging the services of third-party developers.