The following standards have been developed through partnership of the FITS developer resources with the goal of creating common practices of development that will ensure the team is capable of supporting each others work while also fostering continual improvement.
Languages
FITS has established standards in language choice for development. Team members should default to the following languages for the given needs.
- Python - Automations and Data Pipelines
- Ballerina (Java) - API Services
- JavaScript & Node.js - Web Applications
If these is a need to develop outside of these standards, please bring them to the team for discussion. Ideally, we all work within the same frameworks to enable cross team support and easier onboarding of new team members. This does not mean we should not experiment with new tools or methods, but when it comes time to develop for production, a discussion should be had to ensure the new tooling fits within the team's workflow.
Development Standards
- Development of code should be done in Visual Studio Code. VS Code is the Integrated Development Environment (IDE) of choice for FITS. The tool features many built in features that enable improved debugging, automated environment deployment, and easy integration with the university's code repository.
- All code should be stored as projects in the code repository and communication with the repository should be accomplished with SSH keys. This articles has a step-by-step instructions for implementing SSH communication.
- The FITS group in the repository should be added to all projects to allow the entire development team to access the code base.
- All development should be done within virtual environments to ensure isolation of library versions and environment variables.
- The Python PEP8 style guide should be used for all Python development.
- All secrets should be stored in PAM and local copies of environment files should be added to the .ignore file to prevent sensitive information being pushed to the code repository. Access to PAM is managed through the Group Management Service.
Documentation
Documentation of development should come in two forms.
- Code Repository ReadMe's - All projects in the code repository should have a ReadMe.md file stored in the main project directory. This file should contain all the details necessary for a developer who is unfamiliar with the projects to deploy, run, and further develop the project. This would include, but is not exclusive of dependencies, data sources and targets, library versions, log standards.
- Knowledge Base Articles - A KB article should also be developed that is a simplified version of the ReadMe file targeted at non-developer resources. This should include topics such as: why the code exists and what the code does, link to the project in the code repository, and location of where the code is deployed.
Continuous Improvement
The FITS developer team meets monthly for retrospectives, code demos, and process improvement discussions. As new standards and processes are improved, these will be documented here.