View on GitHub

UWaterloo software development

Home

Software practices

The following practices are not intended to be rules, but rather a collection of best practices which aim to improve the supportability and longevity of any custom developed system.

One can summarize the objective of these practices by asking the following question:

If every expert supporting a system leaves the University, with what degree of success can a new individual continue the development, operations, and support of this system?

Development

Important

Good practice

Operations

Important

Example LTS plan
----------------
Project maintainer will execute the following every 6 months

Perform update assessment
- Check for security vulnerabilities
- Check for component/platform updates
- Are there any deferred from last cycle?
- Assess user impact of implementing/not implementing udpates

Engage stakeholders regarding system usage and update assessment
Should the updates be implemented?
- No - document and communicate any risks with stakeholders
- Yes
    - Create plan for development, testing, and deployment
    - Communicate plan with stakeholders
    - Execute plan

Good practice