we do this at my (very large) company. it's awesome.
the best thing about it? engineers who aren't good at the strategic, human high-touch, or political issues, but excel at execution and implementation aren't managing teams of people -- they're busy executing and getting paid (and further promotions) based on their ability to execute, not on their ability to manage herds of programmers.
as a software engineer, i love that my boss is my boss because he's good at managing teams of software engineers. not because he's the best software engineer in the house.
the best thing about it? engineers who aren't good at the strategic, human high-touch, or political issues, but excel at execution and implementation aren't managing teams of people -- they're busy executing and getting paid (and further promotions) based on their ability to execute, not on their ability to manage herds of programmers.
as a software engineer, i love that my boss is my boss because he's good at managing teams of software engineers. not because he's the best software engineer in the house.