Program Management (at Microsoft): "Long ago, before there were any program managers (PMs), there were just developers, testers, and marketing people. The developers would build software they thought was interesting, and the marketing people would dive-bomb them every little while with the latest hot issue from a customer or magazine reviewer that had to get added or fixed. The developers found this frustrating, because it seemed like they were getting randomized a lot. The marketers found this annoying since the devs seemed pretty unresponsive and did not seem understand the customer or business issues.
The first PM at Microsoft was an Excel developer who decided to 'take one for the team' and act as a buffer between the marketers and developers. He defined his role as a person who would go and figure out what these marketing people were really talking about and understand the customer needs or business problems so he could interpret those into actions the dev team had to take using his technical knowledge of what was possible and what was hard. I believe this was 1987, but I could be off by a year. "