How "Technical" a good technical PM should be

Charles has a good post where he talks about the right balance of skills between developers and Program Managers in a scale that ranges from "technical" to "customer focused". His does a good job making his point well clear and it becomes more interesting when you try to apply it to special "type"s of PMs. At Microsoft we have many different types of PMs (International, Architect, Release, Feature, etc, ) and each PM may need to get involved with the technical design at a different level depending on the job demands.  

For example, think about PMs who design features for developers. The trick here is think about the developer customers exactly like any other customers. One should look at the skills and requirements of the target developer in order to build features that best satisfy such requirements. This means that this PM has to be technical enough in order to completely underestand the developer customer and the problems they are trying to solve.

Lets take API design as an example. A good API, like a good User Interface, should serve the purpose of its user and enable them to complete their tasks fast and efficient. There are perhaps more (or equal) dimensions to the design of a good API than to design a UI (yes I am biased:-).  Steven (who I worked with when we were designing the CRM web services) has a great article on different dimnesions of API design (it is based on the research work that was done at the university of Cambridge) that shows different aspects of API usability.

The moral of the post is depending on how technical your customers are, you may need to be as technical of a PM but never loose sight of your customer needs and requirements no matter how technical you need to get.