软件开发是一个非常感性的,完全以人为基础的创作性工作,所以想提高产品的开发效率和质量就必须从人入手!可是正因为软件工作者都是具有较高知识水平的工作者,所以管理软件工程师绝对不可采取像管理传统产业工人类似的方式,那只会适得其反。管理软件工程师应该从人性化的角度去做,让软件工程师从内心中对工作负责,只有软件工程师(以下简称工程师)自觉、自愿的为产品着想,才有可能高效的创作出高质量的软件产品。
同时,从某种意义上讲软件就是团队!所以要想创作出高质量的软件产品就必须提高项目组的士气!
首先,在项目组中每个成员都应该有明确的权利。
一个高效的项目组能够赋予项目组成员权利、并明确他们的职责。明确的责任与权利会消除或的冲哦诺称中的障碍,并使项目组成员专注于自己的工作目标。
高效的项目组能够保证项目的目标和进度可以达到。每个项目组中的成员根据它所负责的任务进行时间、进度的估计和安排。
然后,使软件工程师有成就感
高效的项目组能够使项目组的每个成员对产品都具有归属感。项目组成员认为产品的某项特性归属于自己的努力,真正对产品负责。如此,成功的产品会是成员具有荣誉,产品失败了成员就感到遗憾。
要让每个组员明白他们对项目的贡献,这个项目的目的是什么,还有要根据表现给予适时的奖励或鼓励。
其次,项目组成员间要有有效的沟通
软件开发是一组成员之间合作和配合的过程,有效的沟通是促成项目得以顺利进行的必要条件。
在MSF的课程中有一个试验:每六个人一个小组,一人充当邮件系统,其他人分为A、B、C、D、E五个角色。其中A只能和B进行沟通,C、D、E分别只能和B进行沟通,但他们之间不能沟通,B能和所有人沟通。A、B、C、D、E分别得到一张画有五个图形的纸,他们只能通过邮件系统进行沟通(用纸写的邮件,路由为:From xx To xx)。(试验时间是10分钟)。试验的结果使每组都能找出1个所有成员都有的图形。其中A相当于总经理,B相当于项目经理,C、D、E是项目组成员。最开始只有A明确试验中的任务。其实很少能在10分钟之内完成任务的小组,大多数人(除了A)都不知道在做什么,项目组成员之间甚至会传递诸如中午吃什么饭的消息。项目中的成员A一位其他人都知道任务是什么,B、C、D、E却非常茫然;第二个知道任务的是B(他直接和A交流);但是由于B忙着回复其他成员诸如午饭问题的不相关信息阻碍了消息的传递,甚至等试验完毕后某些成员都不知道自己要做什么。可见有效的沟通在项目开展中的作用。
如果你的项目较大,注意促进项目成员之间的沟通,比如说一个特性(里程碑)完成了,可以在项目组中通报,鼓舞士气。
然后,不要让工程感到落伍了
软件工程师是一个需要不断学习的工作。如果工程师不能在工作中学习到新的东西,项目将不能吸引工程师的注意。在项目中都应该让工程师学到新的东西,同时提供必要的培训。
再有,团队需要有一个精力充沛的宣传者
当项目较大时,团队的士气某些时期必要会比较低落,这时候就需要有个人成员为充当宣传家的角色,为整个项目组做宣传、鼓动工作。
最后,加班是最后一招
软件开发的过程就是一个在资源、特性、时间中不断作出权衡的过程。要想得到高质量的产品就不许在这三者中作出好的决断!但是当资源、特性都一定的时候,要想完成任务就必须延长项目时间,但是如果连时间都固定之后,那只有加班这一条路可走了,但是这时候要注意:这样往往不能达到理想的效果!所有除非万不得已,否则应该考虑其他的方法,如:增加资源或者去掉不太重要的特性等。
总之:项目组管理就是要给每个项目组成员赋予权力、明确责任,并给予鼓励保持沟通在一起不断进取的过程。
==================================
附录A
waif:Exchange资深专家!在Exchange部署、实现、开发和项目管理上有丰富的经验。
--------------
waif says:
项目管理? 呵呵,这种东东需要人的素质
Ankh says:
是的!需要整个团队中每个成员都有更高的素质
waif says:
其实是这样的,如果人的素质很高,则项目管工作就会较轻,每个人都是一个单兵作战能力很强的个体。如果个个能力弱,则需要很好的项目管理与协调。 其实项目管理最终的目的就是能让n个人的工作都朝共同的一个目标,明确分工,发挥群体的优势、
Ankh says:
嗯,有道理!但是我想还是需要有些东西进行调解,你说的只是理想状态,所以还需要管理
Ankh says:
尤其是团队士气、和协调
waif says:
呵呵
Ankh says:
waif says:
说得不错呀~~ 不过这年头,主要还是说到要做到
Ankh says:
双手双脚同意!尤其是人的素质,即使领导才能再好,别人不配合也是枉然
waif says:
呵呵,不过,特别是在人员素质差的情况下,管理很重要,特别是领导,不能推卸责任
Ankh says:
嗯,我听过一个台湾教师的爱国主义演讲,他讲道:国家兴亡,我的责任!我想我们也要发扬这种精神
==================================
附录B
宝俊:软件工程师。认为件开发过程贯穿了哲学思想和艺术思想,对软件开发有独到见解!
-----------------
Ankh says:
看了吗?有什么不对的地方?
宝俊 says:
看了,你对项目管理工作是有经验的。
Ankh says:
过奖过奖!我是新手,还很嫩
宝俊 says:
我想是否可以把管理方面的想法和编程技术规范统一成一套软件项目开发的质量保证标准。
Ankh says:
我想关于编程规范很难形成标准,每个公司都可能不同,即使同一个公司各个项目组也不一定相同,
Ankh says:
项目管理可参考RUP或MSF
宝俊 says:
我的公司使用企业文化来创造一个沟通环境。
Ankh says:
什么样的企业文化?
宝俊 says:
就是对员工修养,素质,团体精神等许多方面的规范要求。
Ankh says:
嗯,这只是前提
Ankh says:
也是基础
宝俊 says:
对,在我们公司要赞同企业文化才能提拔到管理层。
Ankh says:
其实管理不是目的,我认为高超的管理,是让成员不知道感觉不到管理
宝俊 says:
对,管理是平衡学,平衡各种工作的矛盾。
Ankh says:
不错!同意!
宝俊 says:
我觉得最根本的是向每个程序员灌输质量观点和个人修养,特别是与他人的合作沟通的能力。
Ankh says:
对,我个人认为沟通能力强于其他技能
宝俊 says:
我觉得软件开发过程贯穿了哲学思想和艺术思想。
Ankh says:
哈哈,不谋而合!软件开发本来就是一种艺术创作!