> Related, sort of, to this thread, I had this idea (but I'm sure that other
> people also had this idea as well) - of studying 'talented' programmers -
> you know, those 'stars' in the 'start-up' who ruthlessly code for hours on
> end, providing solutions to problems with apparent (and enviable) ease. I
> can see that programmers vary in performance, but to what degree? (thinking
> about it, I think it was a comment by Hank Kaheny in the Payne, Green et.
> al. edited book that started me off...
>
> Perhaps by studying talented programmers and 'scientifically' studying their
> cognitive capacities of various forms, we could begin to get a better
> picture of 'what' faculties make a these 'good' programmers. Of course,
> choosing these talented programmers is a whole other issues - and maybe the
> only way to do this would be through 'peer reviews'. And a study of
> 'cognitive capacities' may necessitate the evil of psychometrics.
Hi Chris,
yes this idea is more interesting, there are big differences in
programmer efficiency, even between groups of programmers who should
be a priori of the same expertise (I've seen figures of 1to5 upto 1to10
in various books).
I'm pretty sure it's possible to find some cognitive
differencies between good/medium programmers (such as the use of
external memory devices, i.e. taking notes, knowing in advance what you
need to remember for later on). Have you read anything about 'deduction'
skill, hypothesis testing ability?...
one problem though is that, from the point of view of a sensible
company, the no of lines written every year won't mean much. other
aspects such as design skills, capacity to work in sync with other
programmers, to help other programmers of the same team (or of other
teams), to estimate the amount of work left, or simply the fact of
being a decent and easy-going chap, will matter more.
peer reviews can help managers to evaluate all these, as long as there's
not too much competition between peers... something that a good manager
would try to achieve anyway.
all this means once again that good managers will try to retain their
staff (as long as they are not bad performers, and because they have
application knowledge, experience, and since it takes resources to go
and recruit and train new programmers). you know about that!
Fabrice