The Peter Principle: software developers version

There's a classic book called The Peter Principle by Laurence J. Peter. The short summary is that in a hierarchy every employee tends to rise to their level of incompetence. Why this should be is pretty obvious: if someone is good at what they do, they get a promotion. Eventually they get to where they're not good enough to get the next promotion, so they stay there: at their level of incompetance.

Software development organizations all have a version of this problem: if they're developing some system, and things are going well, it's impossible to resist adding just one more feature or extending some requirement. This feature creep continues until the whole system and organization are on the brink of falling apart. It's this level of organizational pain that gives folks the ability to say no to the next feature request. It takes an extraordinarily disciplined team to say no before they've hit their pain limit.

Related to this there is a problem plagues folks like me, who develop tools: we percieve some level of pain in a developer organization, so we develop or enhance a tool to alleviate the pain. But over the long term we discover that we can't actually make pain go away: the developers happily use the tool, that source of pain is solved, but then they go up more notches in complexity until they run into another source of pain.

December 3, 2003