假如我是项目经理 博客分类: 编程大杂烩 项目管理编程软件测试工作敏捷开发
程序员文章站
2024-03-02 20:36:34
...
做过不少项目,也跟过几个项目经理,管理水平不同,管理方式也各有千秋;有的不懂程序,只做管理;有的只做程序,不去管理;还有的水平一般,经常做一些指手画脚的事;更多的是负责项目,也做开发。勿庸置疑,项目经理对于一个项目的成败至关重要,也肩负着最大的责任。
首先,优秀的程序员与平庸的程序员效率差5-10倍(有资料提到)。因此,选择最优秀的程序员,绝对是项目经理的第一要务。 “优秀的程序员”比较难以定义,但依然会有一些共性。首先,高等教育,基础扎实,自学能力强,编程领域,永远不要指望别人教你什么什么。其次,勤于思考,动手能力强;逻辑能力和抽象能力非常重要。当然,还有其他一些属于优秀人才的但不限于优秀程序员的品质,比如:做事积极,团队合作等等。我认为,对于采用一个优秀程序员,给予3倍4倍甚至5倍的工资,也要比采用2个或3个平庸的程序员来的划算。因此,编程工作,其实应该是一个工资相差极大的工作。
其次,项目控制。项目控制过程,就是Team管理(建设)的过程。Team 所有工作的成果,就是提交一份代码,因此,成员代码的质量以及对代码的控制,是Manager管理的主要任务。
1. 代码规范的控制。代码90%的时间是人在读,而不是机器,因此,代码其实是写给人看的。简明、清晰,是第一规范。
2. 不合规范的代码应该尽早找出,这个可以通过小组会议,做代码View,找出不合规范的,并警示之。不合规范的东西要尽早找出,这样改正代价比较小。
3. 交叉测试。自测是必需的,但作用也是有限,因为人往往都是对他人的缺点很清楚,却不能看清自己的缺点。并且你很难控制程序员自测到何种程度;因此需要交叉测试。根据需求,A实现的代码由B测试,B将测试结果反馈到A,由A修改之。B的代码由C测试,同样,C的代码再由别人测。
(暂时想这么多)
首先,优秀的程序员与平庸的程序员效率差5-10倍(有资料提到)。因此,选择最优秀的程序员,绝对是项目经理的第一要务。 “优秀的程序员”比较难以定义,但依然会有一些共性。首先,高等教育,基础扎实,自学能力强,编程领域,永远不要指望别人教你什么什么。其次,勤于思考,动手能力强;逻辑能力和抽象能力非常重要。当然,还有其他一些属于优秀人才的但不限于优秀程序员的品质,比如:做事积极,团队合作等等。我认为,对于采用一个优秀程序员,给予3倍4倍甚至5倍的工资,也要比采用2个或3个平庸的程序员来的划算。因此,编程工作,其实应该是一个工资相差极大的工作。
其次,项目控制。项目控制过程,就是Team管理(建设)的过程。Team 所有工作的成果,就是提交一份代码,因此,成员代码的质量以及对代码的控制,是Manager管理的主要任务。
1. 代码规范的控制。代码90%的时间是人在读,而不是机器,因此,代码其实是写给人看的。简明、清晰,是第一规范。
2. 不合规范的代码应该尽早找出,这个可以通过小组会议,做代码View,找出不合规范的,并警示之。不合规范的东西要尽早找出,这样改正代价比较小。
3. 交叉测试。自测是必需的,但作用也是有限,因为人往往都是对他人的缺点很清楚,却不能看清自己的缺点。并且你很难控制程序员自测到何种程度;因此需要交叉测试。根据需求,A实现的代码由B测试,B将测试结果反馈到A,由A修改之。B的代码由C测试,同样,C的代码再由别人测。
(暂时想这么多)