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)