Developer Skills
(The following are notes from a call on Apr 21 2011 that included Matt Zumwalt & Eddie Shin from MediaShelf, Julie Meloni from UVa, and Jennifer Vine & Jessie Keck from Stanford.)
Baseline "good" Web Developer Knows
Base set of what a Junior Level Developer should know (entry-level salary)
Valid HTML
HTML versions (when to use, what's backwards compatible, etc.)
Good CSS
Semantic vs Presentational HTML
Progressive Enhancement & Unobtrusive Javascript
Accessibility Concerns - what it means, how to test for it, how to code for it
Ability to understand what you're achieving, why & how it impacts the application as a whole.
Able to write code that generates valid markup. (ie. Rails view helpers)
How do you assess that they know these things?
Ask them! Give them scenarios
ie. You've been handed a website from 1996 full of static HTML. What are some things you would do to assess that code and make it "Web 2.0"
- What is Web 2.0 [note: this IS a trick question!]
- Should ask questions about users, HTML versions, browser support
Senior Developer
Attention to Test-Driven Methodology
- writing tests that are robust, extensible, flexible
Sense of Patterns
- Knowing when to abstract code into a separate library
- DRY code
Sense of when to patch code vs. re-implementing (ie. "this is a little bug" vs. "this code needs to be rewritten")
Plugged into (or at least familiar with) relevant Information Channels
- Mailing lists, blogs, etc. (ie. alistapart, blacklight list)
Aware of Version Control Systems & Distributed Version Control Systems
- ie. Do you have a github account?
Knowing when to make customizations in which circumstances (project-specific vs. core functionality)
Automatic sense of what bad code looks like
Automatic sense of what makes code slow
Ability to talk intelligibility about code, functional requirements & work process.
How to assess
Hand them a piece of code that's badly written. Ask them to diagnose & provide recommendations.
Here's a wireframe. What's problematic?
User Experience Designers & Developers
What makes a good UX Designer?
Tests & Scenarios
Assessing user needs, defining functional requirements
Pulling together Interaction Design, Information Architecture
What makes a good UI/UX Developer? What are their distinctive skills?
This developer has skills that compliment the work of a good UX Designer.
Time & Seasoning
Know how to communicate with a UX Designer (understand the language and concerns)
Strong sense of Accessibility, deeper familiarity with Accessibility Standards
Automatic/intuitive knowledge of HTML standards
Strategies for managing CSS & Javascript (and for recognizing & fixing badly managed CSS & Javascript)
Understanding the tools of the trade
- validation APIs (ie. W3C validator)
- validation tools (ie. firebug, Yslow, wave toolbar)
Assessment questions
What is your browser test suite?