Drupal Curriculum and Certification - The Open Source Route DRAFT

This document is available under the Creative Commons license By-SA (http://creativecommons.org/licenses/by-sa/2.0)

Levels/Awards

Each of the following can be assessed as Novice- (has participated in an introductory training and can pass a quiz), Skilled- (has shown can perform most competencies) , Experienced- (has demonstrated can perform most competencies in a variety of contexts), Expert- (possesses extensive portfolio demonstrating nearly all competencies across a number of sites). Other possible qualifications: instructor (can train users and content administrators) and assessor (can examine portfolios). User and Content Administrator could possibly only have two levels: Novice / Experienced.

 

Drupal User can log in and post content as instructed
Drupal User/Content Administrator can create users, monitor content, moderate users, moderate taxonomy, fix formatting issues
Drupal Backend Administrator can create CCK types, simple Views, panels, set up taxonomy and other administrative tasks, can search documentation and access resources on d.o
Drupal Backend Integrator can install Drupal following best practice, can configure a functioning site using contributed modules, can assess reliability and security issues of contributed modules and themes, can create a theme based on graphic templatesThe developers I've shown this too same theming as a separate skill, you might want to remove it  -Julia Kulla-Mader 9/2/09 2:44 PM , understands Drupal community
Drupal Theme Developer can install themes, subthemes, make full use of Drupal theme engine, write enough PHP code to support theme logic, has sufficient knowledge of CSS and HTML principles
Drupal Code Developer can develop modules using Drupal API (can write basic code in all and advanced code in at least one of the following: PHP, JavaScript, SQL)

These levels are cummulative and non-linear similar to ACTFL (http://www.actfl.org/files/public/Guidelinesspeak.pdf). This means that the level of skills and knowledge from one level to the other increases exponential rather than linearly. It also means that two people at the same level may have slightly different expertise. It is assumed that a person at an upper level will be able to do everything at a lower level (to an experienced level)
  

Competencies

Competency areas:

  1. User-level Skills
  2. Core Installation and Configuration
  3. Contributed Modules Installation and Configuration
  4. Development/Code/API
  5. Theming
  6. Community
  7. Performance
  8. Security
  9. Content managment (Views / CCK)


Sample competencies:

Competencies are defined loosely based on Bloom's taxonomy of cognitive skills with regard to affective and psychomotor domains): knowledge (identify, list, describe) comprehension (compare, distinguish, interpret, summarise, predict), application (change, apply, modify, operate, prepare, produce), analysis (contrast, diagram, relate), synthesis (categorise, combine, compile), evaluation (appraise, express preference, support argument, etc.)

Each individual module could also create their own competencies.

Area

Competency (what a person can do or knows)

Criterion (how well they can do it)

Level (what level this competency is expected at)

Assessment (how can the person demonstrate)

Learning/Teaching Activities and Materials (SCORM)
A Retrieve forgotten password
Skilled User Quiz, Screen cast Training, D.o Docs
AEdit account information
Skilled UserQuiz, Screen castTraining, D.o Docs
BDownload latest version of Drupal
Novice

BIdentify location of configuration files in the file structure

Quiz, Print out of a site config
CFind appropriate module



CAssess reliability of a module
ExpertModule review, Site module listCommunity participation
DImplement hook_ help, etc.



DFind information on hooks on api.d.o



EIdentify themes for reuse



EIdentify modules to support theme development



ECreate a .tpl.php file



FIdentify key individuals in Drupal community



FPost issues (queries, patches) in the right place



GConfigure Drupal installation for maximum performance



GIdentify key MySQL configuration settings for optimum perfomance



GDescribe external services available for performance optimisation



HConfigure input formats for maximum security



HSet permissions appropriately



ISet up a new content type



ICompare the use of taxonomy with content types to classify content



IUse v. reuse CCK fields appropriately



ISet up a basic view



ISet up a tabbed view



Assessment

Portfolio-based comprised of self-assessment, internal (for large institutions) and external verification.

Self-assessment tools could be created to help individuals identify needs for further development.

Developer aspiring to a particular level can compile a portfolio of achievement that can be certified by a recognised assessor.

Portfolio can contain:
  • screenshots
  • screencasts (e.g. using Jing or Skitch)
  • certificate of attendance at courses
  • copy of presentation at an event
  • configuration files (site, modules, settings.php etc.)
  • code
  • samples of community activity

Another way of assessing the portfolios would be through some sort of a web-of-trust system that security certificates use. I.e. have parts of the portfolio reviewed by another user

Management of the curriculum

  • The curriculum can work on annual releases just like code but certifications would be valid for three years. They could conceivably be tied to Drupal releases but that would probably create too many issues of timing - but in specific issues, there could be point releases tied to a Drupal release.
  • Each competency area could have a maintainer responsible for its release.
  • Community members can submit issues and "patches" that can then be voted into the release.

Additional certifications

Drupal companies could be classified based on how many certified developers they have at each level
Established Drupal shops could be providers of portfolio certifications as well