Generic Development Information
Information pertinent to all development goes here.
Operating System Compatibility
We have two primary types of software systems: embedded systems and user-interfacing systems. These, obviously, will have different compatibility expectations and development environments. The information below is relevant for all new development, and re-development as required for legacy systems.
Embedded Development
Each embedded system has its own development environment, and thus requirements specific to it. However, the following generic expectations are in effect:
- Build: The final release build and flash to the embedded system must be completed on a Windows 10 machine, and the build requirements and instructions properly and completely documented and stored with the source code.
- Developer Testing: Must use the anticipated deployment environment.
- User Testing: Must use the anticipated deployment environment.
User Interfacing Development
User interfaces should use the standards of the intended operating system (i.e. cancel buttons to the far right on modals in Windows vs OK button on the far right in Mac)
Generic Testing Expectations
While each system is anticipated to have specific test requirements, the vast majority of software has a level of basic, low leveling testing, that should be performed by the developer prior to starting user testing.
- Confirm the system cleanly and safely handles sudden loss of power. (Intended primarily for embedded systems, but a good practice on computers)
- Confirm the system cleanly and safely handles sudden loss of network connection/external communication. (For user systems: It does not crash. For embedded systems: No runaway robots)
- Confirm the About text is actual informative (version number, website link, etc)
- Confirm that any Help button lists information that is actually helpful to the user. Either the OI, a quickstart guide, or troubleshooting information, as appropriate.
- Confirm there are hover tool tip descriptions to provide user clarity in the application.
- Confirm all user interactable objects either function correctly, are disabled, or provide clean exception handling in all possible software states.
Link Information
- Git: Our development revisioning and collaborating tool. We use this to track changes, parrallel development, and, in conjunction with a git server, software issue tracking.
- Visual Studio: Blah blah
- Qt: Blah blah
- Resources: This is where you can find templates, installers, and other helpful references and downloads to help with development.