Friday 18 April 2008
It's common knowledge that programming ability varies widely and that elite programmers are perhaps an order of magnitude more effective than run-of-the-mill programmers.
It's less widely known that the same is true of specification editors. I'm talking about people who write specifications for organizations like WHATWG and W3C, as well as people who write specifications internally as part of software development, particularly when they're writing specs for platform functionality --- APIs and formats that will be consumed by other software developers --- and particularly when compatibility constraints are important. Juggling the requirements of compatibility, ease of use, ease of implementation, evolvability, functionality, orthogonality, politics, performance, and so on is a delicate art that few people seem to be able to master.
Unfortunately, this work is usually seen as glorified QA and is thus grossly undervalued by organizations. Superstar developers are hard to find but at least their talent is recognised. Superstar spec editors are not well recognised and for that and other reasons they're far harder to find.
We don't know how to find these people, or train them. Like programming, a lot probably comes down to innate talent that cannot be taught. A computer science background is helpful, programming and QA skills are very helpful. Domain knowledge is very helpful too.
We have public organizations now --- WHATWG, and increasingly, the W3C --- where volunteers can try their hand at the task. The challenge is to get the right people to have a go, and to create visible career paths to encourage them to pursue it.