The repository is a space/site dedicated to storing community defined Drupal-related competencies. But what is a competency? How are competencies organized? I have been doing some pondering and tested my thoughts with a google search.
Definitions: According to http://managementhelp.org/staffing/specify/cmptncys/cmptncys.htm, "Job descriptions typically list the tasks or functions and responsibilities for a role, whereas competencies list the abilities needed to conduct those tasks or functions. Consequently, competencies are often used as a basis for training by converting competencies to learning objectives." By definition "A competence is the ability to perform a specific task, action or function successfully."
General Requirement: These search results provide a way to hone what we already have started in such a way that I think many will be able to relate. So for our repository, I propose we need a way to capture 'ability statements' that can be mapped to tasks and their associated processes with the site life-cycle.
Examples: We have this started in our spreadsheet. For instance, the ability to 'Create a new content type.' The task might be 'content type development' and this task is probably associated with the 'build/development process'. Another example might be the ability to 'Create a node.' The task could be 'content development' and the process 'content management'. Another example might be the ability to 'Use the hook_form_alter API to change a form.' The task might be module development and the process might me the build/development process (like the example above).
Model?: We might want to look at how D7 organizes default tasks in Drupal to see if that task organization is a good model. It would certainly help sync up this effort with Drupal going forward.
Requirement Specs: Assuming all are in agreement with my assumptions above, I propose the repository have and do the following.
Competency field - long enough for a sentence (255 chars? or more?). Has a child relationship with the task field. Can have more than one task parent. Needs to be only one sentence/statement with an action verb (e.g., create, define, install, configure, etc).
Task field - should be a shorter statement (255 chars or less). Has a parent relationship with the competency field. Can have multiple children. Ability to have more than one process parent is TBD. Has a child relationship with the process field. The task statement should also include an action verb as tasks are actions. Tasks are broad enough to...