Feature implementation task checklist

This checklist is designed to collate together all the common tasks that need to occur when developing a new feature in Totara. This can be used when assessing scope of work to ensure you've considered everything that will be required. While it obviously doesn't include feature-specific tasks, it tries to give a generic description of what will be involved in a way that might help with estimating.

 

Generic behaviours expected from all new core functionality:

Cross database compatibility
Accessibility
Internationalisation
Multi-language support
Right-to-left support
Performance
PHPUnit and Behat test coverage
Data generators
Security
Cross-browser support
Responsive design
Feature enabled flag support
Backup/restore
Migration/upgrade path
Deprecation of existing/old APIs/legacy data
GraphQL APIs
Multi-tenancy support
Product usage analytics
Scalability - paging, search, filters, sorting, bulk management

 

Specific feature implementations that might be required for any given feature:

New capabilities and access control
Events and logging classes
Hooks for local developers
User data classes
Report builder sources
Notifications
Totara menu items
Audience rules
Badge criteria
Changes to HR import/bulk upload
New front-end components (Vue)
Mobile support
External API
Feature specific blocks or other plugins (auth, enrolment, tool, etc.)
Full text search
Additional registration data
Workflow classes
Activity modules support archiving completions (for certifications support)
Check API classes

 

Other considerations:

Considering impact of deletion of items on related objects
Considering impact of changes on the system (e.g. audience membership changes, user reconfiguring active items, etc)
Ability to automatically delete/cull/archive items over time - data lifecycle

Â