A skill is a specific area of expertise. For example, a Web developer may have expertise with JavaScript, CSS, and XHTML. A database administrator may have expertise with Oracle and SQL. Or a programmer writer may have experience with PERL, XML, and XSLT. Three different resources, each with different areas of expertise and therefore, different skills.

In many cases, it's the actual skill (or group of skills) that is the reason behind why a particular resource (or group of resources) is assigned to work in a task plan. By using skills as a key data point while doing resource allocations, and by using skills in conjunction with resource roles, you can help to ensure that resources are being given appropriate assignments.

Some skills are common to a resource role (Web-based programming languages such as JavaScript, XML, Flash, or HTML) and should be skills that any Web designer (regardless of level) has some expertise. However, some skills are unique or may be specific to a resource role. For example, some organizations may require that before a resource can reach a certain experience level they must hold a certification in one or more skills related to that experience level. For example, a senior Web designer will have skills in JavaScript, CSS, and XHTML, but may also hold a certification in AJAX development techniques.

Skill levels can be specified in many ways, including using: Some organizations view certifications as a skill that lives alongside the other skills, such as Flash or Flash, Certified.

The level of detail that your organization needs depends as much on how your organization wants to track and manage skills usage and availability as it does on the size of the organization itself. In general, the larger the organization, the greater the need for more refined skills management and tracking. Whatever approach is taken, it is more important that the list of skills (and roles) be meaningful to all of the people involved in managing projects in your organization.