Earlier quoted context omitted.
How do you define "best" for a software developer? Lines of code written? Products shipped? Bugs fixed? Tickets closed? For both, it's a softer metric. Lawyers are also a good example because a large number of them work in independent consulting practice (where the "best" ones are the most profitable), but there's also a decent population in corporate law where they are paid on a salaried basis and have a less measur…
I am not the one trying to define (or use) the concept of productivity in this discussion. So I don't think it's remotely straightforward. I'm not sure how useful it is either. A career in law is largely dominated by the "partner track", which in modern software circles is equivalent to getting hired by Google or Microsoft. The bar is pretty high to get in, few ever get fired, and the pay is good.
To review it slightly -- You either become a greybeard (partner), you become a manager (could also be considered a type of partner), you become a highly paid consultant but don't achieve your previous salary-equivalent. If you miss your mark and don't achieve one of those, either you wash out of the field, or you have a difficult time finding a place and when you do you accept one that is not in line with your experience. (ex: You were an AIX admin paid $120k/yr, now you are a contractor for Dell making 4-hour response service calls on server hardware.)
And I would also not say that a job at Google or Microsoft is for life (you get stack ranked out pretty fast at Microsoft as you age), nor would I say that the pay's that good unless you're really awesome. I've gotten SF Bay offers, and after you factor for cost of living changes, they're much less than I make for my current company telecommuting from central Texas.