N4M said:
May I ask how productivity of a(C++) programmer can be measured?
Do you want to rate individuals, or improve user productivity early and
often?
If the former, either run tests, or ask team members to vote on who, besides
themselves, helps the team the most.
If it is measured by number of code lines per day,
A line of code is _spent_, not gained.
To measure a team's productivity, every Monday select a few features of
highest business value. Spend the week implementing them, while writing unit
tests. Don't allow any code that does not support the current and new
features to remain in the codebase. Do not count lines, or reward based on
any ramp in line count. It should curve over (y^2 = x), not up.
On Friday, count the number of features implemented, burn a new version of
the program onto a CD, and pretend to deliver it.
Because this code is bug-free, and contains high-priority features, your
business managers have the option to deploy it to users. Whether they do or
not, the version should demonstrate the ability to boost user productivity.
The team's "velocity" is their number of features per week. Improve this
number by programming in small groups, not alone in individual offices, by
continuously integrating, and by passing all the tests between the fewest
possible edits, say 10 at the most.
what are the
estimated productivity of a programmer at beginer, intermediate (Me),
advance, master, guru,and sifu (B.Stroustrup, H.Sutter, S. Meyer)?
Tests have shown an order of magnitude improvement between intermediate and
guru level. Credit those authors with the experience to rarely get stuck,
but Bjarne shouldn't be revered if he didn't invent a language that others
could benefit from.
The best way to keep a team fast is to allow its gurus' influences to spread
rapidly. Keeping them alone and watching them shred is irrelevant to team
progress. And some folks are faster in some domains than others.