正文

软件企业需求的人才(开发人员与软件开发工程师综合对比篇)2007-05-06 21:43:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/25655.html

分享到:

软件企业需求的人才(开发人员与软件开发工程师综合对比篇)
普通开发人员与软件工程师的区别:

对比1:

A、普通开发人员:

掌握了计算机基础知识;
熟悉计算机资源,学会了编程语言,喜欢卖弄技巧,喜欢比较编程语言的优劣;
以能编出某种特殊功能的程序为荣,不懂原理,不求甚解;
喜欢个人开发,不重视文档编写;

B、软件工程师:

计算机基础知识扎实;
掌握两门以上编程语言,很少停留在表面比较编程语言的优劣;
以编写出用户满意的高质量软件为荣。
懂得个人开发和团队开发的利弊,文档规范,齐全。

对比2:

A、普通开发人员:

只重视功能的实现,不重进度和质量的把握。
怕被“管”得太死,动不动就说限制了思路,没有发挥空间。
不喜欢做测试工作,认为测试低人一等,从来没有做过测试工作。
只根据自己的爱好学习技术;

B、软件工程师:

懂得在进度、质量(功能)和成本之间平衡。
懂得规范的目的在于重用,重用有利于提高效率和集中精力创新。
认为测试工作比编码更具挑战性,自己经常为同伴的代码做白盒测试。
根据企业项目的需求和自己发展目标的共同点选择学习内容和方向;

对比3:

A、普通开发人员:

认为别人程序很差,不喜欢看别人的代码;
总认为自己比业务专家还更理解需求。
项目开始时,喜欢说:“没问题,SO EASY”。
项目大大延期时,喜欢说:“设计太烂,没法编程”。

B、软件工程师:

喜欢为同事走查代码,并以此获得学习他人优点的机会;
懂得自己只是可能比业务专家更懂编程。
项目开始时,喜欢问:“那是什么?这是为什么?”。
项目大大延期时,喜欢说:“我为什么就没想到…”。


软件开发所需要的三种人
软件开发所需要的三种人——软件设计工程师、软件测试工程师和软件项目经理,在各大企业里有什么不同?这些角色的特点又分别是什么?各自职业的发展道路如何?以及对他们的能力有什么要求呢?以下是专家的建议

主持人:张宏江院长曾经多次提到微软亚洲工程院需要三种人,软件设计工程师、软件测试工程师和软件项目经理,请问这三种人在工程院里的角色和在其他企业里有什么不同?这些角色的特点又分别是什么?
张益肇:我先讲一下软件项目经理这个角色。在微软,软件项目管理与其他企业的项目管理有很大的差别。在微软,软件项目经理,也就是Program Manager将不仅仅负责项目的管理,还要对整个软件负责。有别于其它软件公司的Project Manager负责制,在微软的软件开发过程中,将由Program Manager分配资源、控制进度、管理流程。
微软对软件项目经理有很高的情商要求,如亲和的性格、极强的协调和沟通能力、能迅速把握用户需求、深谙项目的分析、设计与进程管理,对于新技术和产品有着超乎寻常的敏锐嗅觉并能迅速深入其中。微软的软件项目经理要知道如何理解客户的需求,如何满足客户的需求,我们的产品目标在哪里,如何细化,需要哪些功能,需要哪些设计,开发的流程又是怎样,等等。可以说作为一名软件项目经理,他的工作就像从编剧到导演以及最后到后期制作,要从头到尾都涵盖进去。

主持人:谈到项目管理,在微软,软件项目经理的职业发展道路是怎样的?
张益肇:在微软,人员的比例大致是10个开发人员会有一个项目经理,相比而言,对项目经理的需求量没有那么多。在比例上,大概每10个人里有一个人是项目管理,但在公司最高层的主管中,项目管理出身的人占了很大比例,这是因为他们对市场的理解以及对技术的理解,都比较全面和透彻。
对于项目经理来讲,更重要是要有很强的沟通能力,不管是中文还是英文,说还是写,都要有很强的沟通能力。文档要写得很清楚,让大家知道怎么开发、怎么测试。我们会给这些年轻的同事到美国工作的机会,让他们理解项目管理在整个项目当中扮演什么角色。

主持人:林斌先生,也请您介绍一下软件设计工程师和软件测试工程师的角色吧,微软对他们的能力有什么要求?
林斌:开发,最关键的一点就是要有对技术的热爱,这一点是作为一个开发人员最基本的要求。虽然说的简单,但是是很难做好的,这牵涉到很多方面。作为开发人员,首先是写代码,要写得多么细、多么好、多么完美,一定要做到尽善尽美。一个优秀的开发人员可以把代码写得很漂亮,每行写得很整齐,看起来像一个艺术作品一样,而不是堆起来的代码行。
刚才张先生讲到对PM要求要有很强的沟通能力,其实对开发人员,我们一样要求他们有很强的沟通能力。比如在写代码的时候,写一个函数,不能一上来就说你写的这个是不好的,我写的这个是好的,应该以技术的背景来说服别人。怎样说服别人,不能让项目经理替你说服别人,而你自己要有这方面的能力,去说服别人,与别人沟通。
一个很好的开发人员除了会写代码以外,还要会做设计和技术顾问。设计方案出来以后,怎样很好的跟同事、测试人员、项目管理人员协商得出一个很好的设计,这是他综合能力的体现。这些能力要体现出来,要看他的技术背景是否强,能否利用一些真实的数字、例子说明他的设计是好的;还要看他的表达能力,让别人知道他的设计是怎样的好。因为最后对这个设计做出实施的决定,不是他一个人说了算的,是需要调动团队成员一起做的。我是开发人员,在这方面有深刻的体会。除了技术能力外,还要涉及到方方面面的协调能力。

主持人:网上很早就流传微软亚洲工程院面向测试工程师的一道面试题,“给你一台冰箱,你将如何测试它?”在工程院,测试工程师都做哪些工作呢?
林斌:测试工作是很有意思的。很多同事觉得测试工作就是每天坐在电脑前点鼠标,点出很多Bug来就可以了,这其实对测试是片面的理解。测试,鼠标去点是一个。微软做了很大工作,就是希望把鼠标去点的工作变成全自动,所以在这里面产生了新的工作范畴。微软产品这么复杂,要达到完全自动的去做测试,这么多测试怎么去自动完成。这就体现微软对开发和测试人员的要求。
测试人员也要写代码,而且写代码的质量要求也要非常好,要有设计结构的能力。除了自己写代码以外,还要具备很强的洞察能力。测试的目的就是要找到问题,找到目的就是好的测试师。找不到问题,也就没有洞察能力。有些人员做测试工具的开发,有些开发做着做着,应该把工具做得非常完美,可是在做测试工具开发的时候,他可能掉进一个误区,他只是注重工具的完美性,没有注重实用性。工具开发出来,搞了半天,没有找出问题。可以检讨一下为什么会这样,在这个过程当中,应该对产品有很强的了解。在开发工具以后能够找出问题,洞察能力要强。
我强调一个是开发能力,一个是洞察能力,这是我们对测试人员的一些要求吧。测试工程师的洞察能力要比较强,好的开发工程师不一定是好的测试工程师。

主持人:微软亚洲工程院在做一个产品的过程中,还会包括哪些人,除了项目经理、程序员和测试员,细分下去还有什么角色呢?
张益肇:一个产品开发出来,在项目管理、软件开发人员、测试人员之后,还要有做交互设计、用户研究方面工作的人,对这方面的人才我们也有需求。他们要能够真正考虑到用户的需求,以及产品的功能如何更好的使用等等。微软在交互这方面下了很大的工夫。一种技术要真正做到产品,让上亿人使用,对专精的程度要求是非常高的。

阅读(2946) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册