答案是“4”。
对某些技术的丰富经验至关重要。我知道这种心态是“项目经理不必懂技术,他只管人”。
嗯,不,PM 不管理人:他管理的项目应该产生一些至少在某些期望方面(能力、性能、可靠性、安全性、可维护性等)可接受的可交付成果。如果他不懂技术,他就迷路了。当然,他不必是项目中使用的特殊技术方面的专家:但他必须能够过滤掉 BS,质疑程序员的估计(我们知道这些估计是怎么回事),至少能感受到这里的技术风险或在那里,能够制定特定技术的业务分支。
在某些方面,我认为 PM 对技术的挑战甚至比程序员更大:他必须对技术真正感兴趣,但他不能/不应该有任何技术偏执,才能真正公平地对待他们(他们是什么实际上有好处,它们实际上不适合什么)。
阅读“寻找愚蠢”以了解非技术经理如何将许多科技公司推倒在地。
这是 Spolsky 的精彩总结:http: //www.joelonsoftware.com/articles/Stupidity.html
现在,小字#1:当然,不是每个程序员都会成为一名优秀的 PM。简而言之,控制狂、恶毒的人、自大狂、擅长编码但不擅长谈判的人、擅长编码但太容易屈服于压力的人——都会对他们的项目进行 FUBR。
小字#2:具有非常好的分析能力的人可能会弥补技术经验的不足。我曾与优秀的业务流程和程序设计师合作过,他们本能地理解 UI 应该如何组织,软件应该在这个特定的地方做什么,以及为什么以及即使在由领域专家提供服务的情况下,谁能快速检测到 BS,但谁如果他们的生活依赖于它,就无法编程。