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


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

  • New capabilities and access control
  • Events and logging classes
  • 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
  • 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)


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)