Professionalism and a certification body

Do we need a professional organisation that tests and certifies web developers? This question is suddenly very much in the picture, with Mark Boulton, Richard Rutter, D. Keith Robinson, and Eric Meyer discussing it at length. I decided to throw in a few of my own thoughts and offer a field-tested rough-and-ready method that is quite reliable for separating the chaff from the wheat: the 2 minutes CSS test.

As far as I'm concerned there are several interrelated questions:

  1. Do we need a formal professional body for web design/development? (My addendum: If Yes, should such a body be national or international in scope?)
  2. Should we create a formal certification with formal criteria?
  3. How do we define professional competence, anyway?

Let's start with the second and third questions; the conclusions we'll arrive at will eventually answer the first one.

Moving too fast

The main problem with any kind of Web development certification (as well as Web education) is that the industry is moving too fast for official institutions (with their unavoidable bureaucracy) to keep up. Suppose that today we'd set up certification criteria that all experts would agree to be good; before they're actually implemented by an official body they'd already be outdated. Even if the official body would somehow move with lightning speed, our certification criteria would still be outdated within a year or so.

Besides, everybody's list of desirable criteria for certification would be slightly different, and although discussing and ironing out the differences would certainly be interesting and instructive, it could easily take a year or so; too long for our present problems.

That's not to say we shouldn't start up such a discussion. However, while this discussion is going on we need a quick tool that we can start using immediately, even if the results are not 100% accurate.

The 2 minutes CSS test

Therefore I propose to use a tool that I developed two years ago, that is extremely simple to perform, and that offers a 90% reliable outcome: the 2 minutes CSS test.

I created it for use in my recruitment work. Back in September 2004 I started to recruit client side programmers for my clients, after I heard three complaints in one week that competent CSS wizards were so hard to find. My plan was to test applicants, and send those that made the test on to my clients.

All applicants filled out a form, the most important part of which were three input fields where they could enter URLs of three table-free, pure CSS sites they created. The form was mailed to me, and I performed the 2 minutes CSS test. It consists of the following steps:

  1. Go to one site and View Source. Does the source contain any tables for purposes other than actually showing tabular data? If so, the application is refused.
  2. If the site survives step 1, open it in another major browser. Are there any important differences? If so, the application is refused.
  3. Repeat steps 1 and 2 for the other two sites.
  4. If all three sites pass these tests, the applicant moves on to the next round.

That's it. Any competent Web designer/developer can perform this test in 2 minutes, and the outcome is surprisingly reliable; about 90% of the developers that passed the test were actually fit for a job in the industry.

Why does it work?

Why does this test work? The most important reason is that CSS is the figurehead and symbol of the standards-aware revolution that has swept the Web in the past six years.

When people got fed up with the bloatware that passed for Web sites at the end of the previous milennium, they turned to CSS for salvation. It had (and has) that shiny new quality that promises a true break with the past, both because the best minds in Web development land eagerly took up the challenge it constituted, and because it wasn't yet weighed down by millions of bad implementations.

That being so, those Web developers that are serious about their professional development will have made the step to CSS; and conversely anyone who hasn't made that step has been asleep for the past six years and cannot be called a professional.

In my experience, applicants that survive the 2 minutes CSS test also know about semantic HTML, basic usability and accessibility, and more often than not about unobtrusive JavaScript. Essentially, I "hide" these requirements behind the CSS requirement, because people without CSS knowledge certainly don't know anything about the other stuff.

This state of affairs will not continue indefinitely. As CSS becomes more and more popular, more and more people that are otherwise mediocre Web developers will learn it, and the value of the 2 minutes CSS test will slowly diminish. Nonetheless, it's an excellent way of making the first step towards certification (official or otherwise) right now.

Recruitment: the rest of the story

In order to give a rough idea of what a certification body ought to do, I'll give an overview of the rest of my recruitment process. Agree or disagree with the details—and the rather happy-go-lucky way I implement this process—but an official body would have to take similar steps.

When an applicant passes the 2 minutes CSS test, I invite him (rarely her, unfortunately) for a face-to-face meeting. In addition to measuring up the applicant in general, I further test his CSS knowledge in the following ways:

  1. I ask him to explain the Box Model and its problems.
  2. I ask him how he'd implement rounded corners in a form field (answer: background-image).
  3. I show him a site navigation that clearly needs Sliding Doors of CSS and see if the applicant can explain the technique (with or without the official name).
  4. I show him a case in which a rounded border (ie. an image) overlays a photo, and ask him how he'd implement it. I especially like this question because it's difficult and it allows several answers, for instance absolute positioning, or negative margin-tops for the rounded border.

In addition to finding out if the applicants actually know the answers, I also want to see how quickly they come up with them, and how sure they are of themselves. If we'd do these tests remotely, applicants could simply search for the answer, and take hours to do it. We won't be able to test whether such things come naturally to them.

Therefore any official certification would, I feel, involve face-to-face meetings with applicants. Is this also true in the design or chemical engineering world?

Do we need an official body?

Do we need an official body at all? It's not strictly necessary for the simple set of tests I described. Keith Robinson doesn't think so, either:

I’d rather something that's free, open to anyone who obeys the rules, and uses peer moderation to weed out the people that aren't supposed to be there.

Agree or disagree with Keith's point that an official body is not necessary; the points he makes are important and should be implemented, officially or otherwise.

Existing bodies?

Eric wonders whether we need a new body and points to the already existing World Organization of Webmasters and HTML Writers Guild. I've never heard of the WOW, but I do (or rather, did) know HWG intimately and long ago decided it's a bad joke.

I was an HWG member from 1998 to about 2002; and I finally quit in disgust when one of the HWG board of directors (or whatever they're called) eagerly joined a flame war about some monumentally unimportant topic, instead of quelling the flames and going on with serious knowledge sharing and other important stuff.

Later on I read a description by Kynn Bartlett about the back-stabbing that was going on within HWG's bowels. (Unfortunately Kynn's original article has been removed, but Ian Hickson has preserved a complete copy.) I cannot vouch for the accuracy of this story, but it fits my experience as an HWG member all too well.

Besides, even if HWG had mended its ways and were now led by sober professionals, the fact remains that thought leadership in the Web development community has shifted to high-profile bloggers. Has HWG (or WOW, for that matter) contributed anything of note to the web development world in the past four years? They could have, but they haven't.

If someone's going to certify me, I want it to be someone I know and respect; and not an organisation with a nice name but an invisible profile. I assume other web developers feel the same.


In conclusion, right now there exists no body that can take on the difficult job of certification. If we feel that such a body is a must, we have to create it for ourselves.

Such a body would have to consist of well-known and respected web developers (ie. bloggers), and as far as I'm concerned it should be international in scope. That last requirement comes from my basic laziness: if the American, British, Australian, German, etc. web developers would set up national certification bodies, I'd feel required to set up a Dutch one, but I just don't have sufficient time to do it. For me, it's far better to take part in an international effort than veering off on my own.

What's next?

All in all, I favour a two-pronged approach:

  1. Use simple tools like the 2 minutes CSS test to start establishing web developer credentials right now.
    Advantage: it will allow us to take action right away, and it will give us some badly needed practical experience.
  2. Start setting up something that could grow into a true certification body in the future; but keep it low-profile for the moment. We'd have to discuss and agree on countless problems, and that will take a while. Only when we're sufficiently certain of ourselves we can go public.
    Advantage: when the certification body officially appears, it'll be complete and serious, instead of just a bunch of web developers who have great ideas but little institutional experience.

This approach combines the best of both worlds: it will allow us to get started relatively quickly, do what web developers expect of us right now, while slowly and carefully preparing the way for an official body.

This is the blog of Peter-Paul Koch, web developer, consultant, and trainer. You can also follow him on Twitter or Mastodon.
Atom RSS

If you like this blog, why not donate a little bit of money to help me pay my bills?



Comments are closed.

1 Posted by Mike Bulman on 19 October 2006 | Permalink

"If the site survives step 1, open it in another major browser. Are there any important differences? If so, the application is refused."

So would fail the application? ;) nice post though

2 Posted by Robert Nyman on 19 October 2006 | Permalink

Just chiming in here...

Regarding the recruitment part, I wrote a part about questions to ask some days ago in "Looking for a good interface developer?" Here’s what to ask to make sure you’ve got the right person.


3 Posted by Mark Kahn on 19 October 2006 | Permalink

Personally I don't agree with the 2 minute CSS test? Why? Take myself for example...

I know CSS like the back of my hand. I can only show one site I've done that's pure CSS:


1 - To start, for 3 of the past 4 years I worked at a company that developed websites based on our own CMS. So when I wrote a page it was only a little part of the entire page. Unless everything on the site was in CSS (which was literally never the case), it would obviously fail.

2 - A good deal (90%) of my private work is on intranet sites. I can't show these. Most are entirely CSS.

3 - A good deal of the work I can show I didn't do the design for. I did all the backend work. I freely admit that I'm not the best graphic designer in the world, although I am decent. I don't really like doing graphic design and so I'm usually not the one to cut up a photoshop file and make it into a site. Thus most of the structural HTML on sites I can show isn't mine.

4 - Time, time, time. CSS is very annoying at times with specific layouts...for example you can't easily create a layout with a 100px title bar and a content area that's 100% of the rest of the area in CSS. I'm not sure you can do it at all (with a method that works for every browser). You have to use JavaScript to get it to work. You can do it in 2 seconds with a table.

4 Posted by Rimantas on 19 October 2006 | Permalink

I do not do hiring, but sometimes I do evaluate the quality of some website. This is similar to your test, but for the tables I have a simple (it can be improved, but I don'bt bother, cause it is good enough) bookmarklet alert(document.getElementsByTagName('table').length)
and another thing is to disable styles via WebDeveloper Extension.
These to say pretty much about how particular site was built.

5 Posted by Tanny O'Haley on 19 October 2006 | Permalink

What do you do for developers like myself where I only have two public sites. One site uses a CMS system that does not create semantic HTML in the content and I can't be held accountable for that. However the template I created uses CSS and does not use tables for layout. The other site is my personal site and it would pass. However, every other site I've created is behind a firewall on an Intranet. You would not be able to look at them unless I logged in and showed them to you myself.

Then, you have a public site where I only did one piece of the site. I did the dropdown menu using CSS, sprites and the Suckerfish dropdown code for IE. It was a lot smaller than the 80kb plus menu code they had before. However the rest of the site uses nested tables within nested tables. At one place I counted a table that was nested 13 levels deep! The developer puts script elements to include external javascript files in the body! It is a mess, I don't understand how he can even maintain the site. He doesn't understand that using CSS for layout and semantic HTML would make it easier for him to maintain the site once it was created.

How does someone like myself pass your two minute test?

6 Posted by Krijn Hoetmer on 20 October 2006 | Permalink

I only disable (author) stylesheets in Opera and take a look at the indentation of the HTML (silly thing, actually). Most sites are crap when using that method. Especially those coming from some sort of a CMS.

Btw, I remember having problems with your fourth question 2 years ago. You didn't notice the sweat dripping from my back, did you? ;)

See you next week!

7 Posted by Nick Fitzsimons on 20 October 2006 | Permalink

I implemented the markup and CSS (amongst other things) for a single design that's used by 34 local radio stations here in the UK. Can I just point you at three of them? ;-)

8 Posted by Alex Lein on 20 October 2006 | Permalink

I must say I disagree with the 3 site minimum. A lot of very qualified developers work behind a firewall, or are not in full control of the CMS. I myself am in this situation. However I do know tons about CSS, unobtrusive Javascript and server-client communications. Taking a strict approach to interviewing isn't a good idea, but I assume you make allowances for such things.

My coworker (the designer) makes things much prettier than I do, and uses CSS strictly... however his code is a mess of divs and spans. He has absolutely no clue when it comes to Javascript, nevermind the unobtrusive part. I'd wager that your test (which is already 2 years old) is out-moded. I agree that using specific technical terms (like "Sliding Doors") is also a bad idea, especially for those of us who solved these problems on our own without reading ALA.

I'll be interviewing in the near future and the only way I can be sure about qualifications is posing problems and asking stuff like:
a) What elements would you use to setup a header, a navigation, an article with comments?
b) How do YOU maintain functionality in a non Javascript enabled browser?
c) What layout problems do YOU encounter most?
d) Do you read any developer sites/forums? Which ones?

9 Posted by Michiel van der Blonk on 21 October 2006 | Permalink

Have you heard of CIW (certified internet webmaster)? I don't see it in your evaluation, and at the time I learnt about them their tests were reasonably good (not perfect).

And I agree with all above postings on showcases. You're talking lone freelancers who create sites from scratch, not developers who stand in the middle of a team.

Also, how about the tests?? Pretty good for starters.

10 Posted by Andrew Donaldson on 21 October 2006 | Permalink

I think everyone who's reacting with 'I have to make my templates work in an old CMS :(' should get a grip and improvise. If you know your employers CMS is mauling your markup, then put up your squeaky-clean templates elsewhere for people to see.

My point is, if you have something you want to show off, you should find ways to show it off, not hide behind excuses that the content is inaccessible in some way or other.

As someone based in the recruitment process, this two-minute test is more or less the approach we took. Additionally, the rounded corner question was one we asked and got some cracking answers (all involving tables.. groan).

11 Posted by Johan on 21 October 2006 | Permalink

Do you have a live example of
I show him a case in which a rounded border (ie. an image) overlays a photo, and ask him how he'd implement it. I especially like this question because it's difficult and it allows several answers, for instance absolute positioning, or negative margin-tops for the rounded border.

12 Posted by Johan on 21 October 2006 | Permalink

And again: you have no tests for
knowledge of usability, information architecture, experience design. And they do exist, for instance:

13 Posted by ppk on 21 October 2006 | Permalink

In general I agree with Andrew: if you want to be hired because of your CSS knowledge, put your stuff somewhere online. Although I prefer sites made for real clients, mock-ups that prove your CSS adeptness count, too.

Besides, a true CSS adept would convince his bosses to change the templating system of the CMS. Not always feasible, I know, but it should be tried nonetheless.

14 Posted by Ryan Cannon on 22 October 2006 | Permalink

For almost all professions, the first part of maturation and certification comes from creating a code of ethics. There's a lot of talk about CSS and other things, vaguely, but perhaps we should come up with a solid, agreed-upon definition of what being a professional means. That way we'll have a better idea on how and what to test—CSS and design certainly are not everything, nor the only thing.

15 Posted by Barney on 23 October 2006 | Permalink

Interesting notion this.

Your 2-min test is a very good insight for a systematic way to go, 'right, is this guy any good?'... But you are communicating to fellow literate people with this. You are helping people who have to be able to be as clever as the people they want...

I think the whole idea behind the international body is to help employers without that basic grasp; within our circles we have no great difficulties (I think), but there is a plague about the internet whereby the wrong people are hired by clueless but influential employers to do the wrong jobs.

Also, all you people saying you have nothing to show... Work for free if you have to, but don't complain to Peter when you can't be proud of three of your own works! ;)

16 Posted by Johan on 23 October 2006 | Permalink

What strikes me that web designers, web developers, interface designers, usability consultants, server-side networkers that they dont join all together. And above all, we need to protect the client's integrity as well. How to? Good contracts like on AIGA.

17 Posted by Alistair Burrowes on 23 October 2006 | Permalink

The test doesn't provide a 90% success rate.

Say you get 1000 applicants and 100 are worth hiring. Of those 100 perhaps only 50 have 3 CSS driven publicly available sites.

58 pass the test and you hire the 50 good ones. Sure of those that passed 90% go through, but that doesn't take into account the quality people you rejected. Of the 100 you should have hired you only picked up 50.

A better albeit impossible calculation is:

Total quality applicants / number of quality applicants hired.

This is not to say the test is bad, my figures are arbitrary. Although it is skewed to the guru more so than to the switched on initiate.

In my case I only have 1 site publically facing as my career hasn't given me the chance to have more. Also I am still learning and fit more into the bracket of an junior web dev than a very experienced one.

Despite this I have a very good attitude and understand the semantic concept well. I believe this attitude is fundamental between good and bad developers of any kind and it is something that your test misses.

On the whole, I think it is a good quick test when hiring senior web devs.

18 Posted by Jordy on 23 October 2006 | Permalink

Although I can see where the test is going, I don't really agree with it.

"Does the source contain any tables for purposes other than actually showing tabular data?"

There are some situations where using tables for something other than tabular data is preferable.

If I have to put up a form for a while (30- days), as an employee, would you want me to spend 1 hour making it in CSS, tweaking it so that it doesn't have "any important differences?"

Or I could make it in a table in 5 minutes.

There is more to HTML/CSS than standards.

You point this out so graciously at the bottom of your blog:

"Invalid XHTML 1.0 . I use custom attributes in the comment form."

Standards are good for getting rid of most of the dirt. But some of that dirt is required to be there. Just as you shouldn't kill all bacteria.

I do understand the need for some basic test questions. But I'd prefer to just talk with the person about HTML/CSS and gauge what their knowledge is. There is a lot more information in that, because someone can be great at HTML/CSS, but be a complete jerk to work with. Doesn't make them a good candidate.

19 Posted by Brian LePore on 24 October 2006 | Permalink

Maybe this is a stupid question, but I have to ask what do you consider a Web developer? To me a Web developer will be doing some work on the server end, while a Web designer will be doing more work on the client end, be it CSS or JavaScript. Your tests only test for things on the client end and ignore the server end. Shouldn't such a body of Web professionals have server side developers as well?

20 Posted by Alex Lein on 24 October 2006 | Permalink

#18 - It takes me on average about 5 minutes to setup a form with divs and labels. It just comes quickly because I have a lot of experience making forms. Tables are not the answer.

#19 - This is the way I rank it.
Web Designer: designs a layout, writes it up in HTML/CSS.
Web Developer: lays out a design, codes well in HTML/CSS, can work with Javascript.
Web Programmer: Codes the logic used on the server. Codes in HTML very well, Javascript optional.
Web Application Developer: Codes in HTML/CSS/Javascript/back-end logic, can layout designs, works at the high-end of compatibility.