One phrase that has stuck in my mind over the years, in relation to software development team management, has been interchangeable morons school of resource management. I finally tracked it down last weekend when I was archiving all my C++ books to a bookcase in the garage. It was used by Bjarne Stroustrup in the 2nd edition of "The C++ Programming Language", published 1991. In chapter 11 on Design and Development he wrote:
As in all other areas of software development it is necessary to consider the longer term. It is essentially impossible to judge the performance of an individual on the basis of a single year's work. Most individuals do, however, have consistent long term track records that can be reliable predictors of technical judgement and a useful help in evaluating immediate past performance. Disregard of such records - as is done where individuals are considered merely as interchangeable cogs in the wheels of an organization - leaves managers at the mercy of misleading quantity measurements.
One consequence of taking a long term view and avoiding the "interchangeable morons school of resource management" is that individuals (both developers and managers) need longer to grow into the more demanding and interesting jobs. This discourages job hopping as well for job rotation for "career development". A low turnover of both key technical people and key managers must be a goal. No manager can succeed without a rapport with key designers and programmers and some recent and relevant technical knowledge. Conversely, no group of designers and developers can succeed in the long run without support from competent managers and a minimum of understanding of the larger non-technical context in which they work.