This is so true. It's almost like you've worked at some of the same places I have. :P
Another thing that eventually works its way into things is politics and process. When you've only got half a dozen people sharing an office, communication is pretty simple. You turn your chair around and talk to the person you need to. When your organizations starts to grow beyond one room, things change. It gets even worse when you start getting requests from people within the organization that you've never met (or never talked to before). Eventually a sort of abstraction layer forms - requests get funneled through a group of people. All of these layers add even more overhead to getting something - even something simple - done.
I think this is almost every startup from a first time founder :)
Process should be something that helps productivity, not hinder it. Otherwise... what's the point? Retrospectives are incredibly important because that's where conversation about various processes should happen. Teams should have the freedom to implement or get rid of processes so long as they believe their decisions are going to help.
I agree that in many cases, processes are implemented for the sake of implementing them and that kills productivity. Politics doesn't help either, though I feel that it's in human nature to start having politics. These are harder problems to solve though. I wrote the post to talk about the pure technical side of things because it is a much easier problem, even though it may not seem like it sometimes.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.