Module Evaluation
ITS reviews all modules that are included as part of the centralized Cal Poly Drupal installation. We do this to ensure that Cal Poly Drupal remains a stable, secure and supportable product for the campus. The following are some of the initial criteria we use to evaluate a module.
-
Code Review:
- Are there any pending security bugs in the bug tracker? What are they and how long have they been there?
- Is it performing sql queries directly? If so, does the module escape user input?
- How does it handle user input? Is it being escaped? Is user input cleaned before printing it out in a page?
- Are permissions check in place? Are the checks manual or does the code rely on other core methods?
- Is the code well documented? Does it follow a standard?
- Is the javascript code and css well structured? Does it follow follow a standard?
- Does it have readme, install and upgrade files?
-
Lifespan/Activity:
- How long has this module or 3rd party program been around?
- How many developers are working on it?
- Is there a roadmap? What does it look like?
- What is the release life cycle?
- What is the average turn around time for critical bugs?
- How active are the forums or mailing list discussions?
- Do other programs use or depend on this library?
-
Support:
- Is there user documentation? Is there documentation for developers?
- Is a documentation generation system like phpDocumentor used?
- How quickly do the developers respond to requests?
- Are newer and older versions of Drupal supported?
- What is the learning curve like?
- Is the module usable through the Drupal interface or does it require users to work with HTML, CSS, theme changes or other advanced techniques?
-
Compatibility:
- Does it conflict with other existing plugins or modules or other updates?
-
Cost/Benefit:
- Will the module work with Cal Poly Drupal as is, or would some re-write be needed?
- How complex are patches to apply? (# of classes, files, and db tables affected)
- What % of our users would benefit from this new module or plugin?
-
Redundancy
- Does Cal Poly already provide this service?
- Is this capability already planned for an upcoming Drupal release or update of a currently supported module?
-
Accessibility
- Is the site accessible?
- Is the site accessible?