Software development practices
This page provides an overview of AITSL's approaches to developing digital software products, including guidance on archtecture, integration, process and documentation.
On this page
- Headless CMS
- API usage
- Modularity
- Authenication
- Code management and version control
- Testing
Headless CMS
AITSL uses a Headless CMS architecture when developing applications that separates back-end content functions (like creation, management, and storage) from front-end functions (like presentation and delivery). Application content is created within our website Sitefinity CMS and then is exposed to other applications for consumption using APIs. This allows us to manage and store content in the one location and provides us with the flexibility to consume content anywhere.
API usage
AITSL leverages APIs as part of its digital development, for example, in its Headless CMS approach it provides content to the front-end of applications like the Teacher Self Assessment Tool and the My Induction app.
APIs must be documented in AITSL's Swagger Hub, our API Design and Documentation platform. Contact the Brand, Comms and Digital Team to discuss if API usage is right for your project.
Modularity
AITSL digital products should be developed with adherence to the principle of modularity, that is, that software systems should be built from cohesive, loosely coupled components. A cohesive component has a well defined function or purpose, the components are loosely coupled if their interdependencies are minimized, cohesive, loosely coupled components are easy to understand, reuse, and replace.
Authentication
AITSL applications must authenicate through our Sitefinity website, with user credentials stored in the CMS.
Authenticaion can be complex and requires careful analysis and guidance. For further information on authentication contact the Brand, Comms and Digital Team.
Code management and version control
AITSL keeps all code for its applications within code management and repository software called Bitbucket and Github.
External vendors must work on application code from within AITSL's repositories, unless there is an overriding reason not to. Vendors must also hand over all code from projects to AITSL so that it can be kept within our code repositories.
Testing
AITSL tests its digital products to ensure they are clear, simple and easy to use before they are launched.
There are numerous testing approaches that can be applied.
These include but are not limited to:
- unit testing
- integration testing
- system testing
- interface testing
- browser testing
- load testing
- security testing
- regression testing
- user acceptance testing
Not all tests are always practicable or needed. You need to assess each project in order to define exactly what testing is required for that specific project.
It is recommended that you contact the Brand, Comms and Digital Team for advice on testing.