实用人才
人才服务

软件开发需要那方面的人才呢

你好!

1前言

软件开发并不是只有一个编程的人,而是可以分为不同的角色。

不同的软件公司因为规模大小性质各不相同,所以围绕软件的角色也各不相同。

一个大型的软件外包企业,外资企业,往往分工明确细致,每个人像螺丝钉一样在一起工作,让整个大机器得以运转。

而在一个小型创业企业里面,往往一个人从接触客户,到开发产品到交付产品一条龙走完,整个产品周期就一个人,甚至几个产品周期就一个人。

2软件开发团队角色

一般的项目组可以说一共有5种角色,开发(DEV),测试(QA),质量监督(SQA),技术主管(Tech-Lead),开发经理(SDM)。

2.1开发(DEV)

开发就是大家经常说的编程的人。

工作主要是写代码,其次是跟团队成员客户沟通。

前后者比例大概是7:3的关系。

开发是整个软件开发团队当中的最重要的角色之一,道理很简单,产品出自于他们的亲手。

说到开发,大家的印象就是整天呆在电脑面前,目光呆滞,头发凌乱的计算机人士。

确实,整天和计算机打交道的人的确容易变成这样,因为开发首要解决的问题就是如何用技术能力去解决客户的需求,而不是自己的形象怎么样。

事实上这种情况在现代中得到很大改善,很多IT人士都很注重自身形象。

具体的工作不仅要写代码用算法实现业务逻辑,更要有程序设计的思想,大到整个的程序框架,小到某个小模块的扩展性兼容性,都是在开发真正写代码之前着重要考虑的方面。

现在的编程不像以前打孔式编程那么艰涩,大厂商开发的强大的编程工具(IDE)让编程事半功倍。

然而技术在变简单的同时,客户需求又在日趋复杂化。

而技术就是为了实现业务逻辑,将业务逻辑抽象建模用计算机程序的方式表现出来,所以一个不懂业务逻辑的开发不会了解模块和模块之间如何协同工作,这便给工作带来很大的局限性。

而如果一个开发只关注每个模块之内的细节实现,那在现实中便不是一个好开发,至少不是一个好用的开发。

沟通方面,开发需要和测试,技术主管,开发经理,甚至客户方面沟通,所以必要的沟通能力还是很需要的。

现在的软件不再是一个人在战斗,在团队作战中,开发有时需要和测试讨论“某个软件Bug(缺陷)是不是Bug”,有时需要和技术主管讨论客户的某个需求到底是要实现什么内容,有时需要和开发经理讨论项目的进度是否需要推迟。

就开发的工作本身而言,是不太需要管理能力和全局观的,如果能够做好编程的工作之外,这两方面也比较强,可能就离升职加薪不远了。

2.2测试(QA)

任何一个产品都需要测试,就好比制造业中如果生产了一批电灯,我们不能听制灯师傅说信得过而信得过,而得通过一系列模拟用户的行为来对电灯进行测试,指标合格后方可出厂投入市场。

软件测试也一样,需要对开发者开发出来的模块,产品进行全方位的测试。

原则是“做正确的事”,让客户需求功能得到满足。

基本做事方法就是模拟客户的一切日常行为,包括一些极其变态的行为,考验软件在各个方面的情况下的可用性和稳定性。

而这些“日常行为”便称之为测试用例(Testcase),一个好的QA会设计出一套可以覆盖所有检查点(checkpoint),又不重叠的测试用例,这套功底可以参考MECE方法。

既然如此,QA就需要对整个软件的业务相当熟悉,因为她(他)要知道在某个用户行为下,软件是否做出了正确的反应。

既然是模拟用户行为,那么QA就需要去手动“跑”测试用例。

当一个系统很大的时候,测试用例极其多,光用手点一遍是非常耗费时间和人力的,所以QA可以做自动化测试。

所谓自动化,便是QA编写一些脚本代码,让计算机帮助去实现一些人为的行为,而不用自己手动点。

所以这就需要QA做有一些代码编写能力。

沟通方面,QA经常要和DEV讨论Bug(软件缺陷),Bug的意思是本应该有的功能却没有做到的功能。

对于某些比较似是而非的Bug,怎么能够让开发者心服口服地承认并去修复往往需要花费一番口舌。

而这些Bug往往是根据不同的人的价值观认定是不是Bug,所以合理地传递价值观也是QA的一个基本素质。

现实的一个案例是,公司某QA“传递价值观”能力极强,于是被拉去做市场去了。

除此之外,QA还要经常和技术主管沟通,熟悉客户需求。

全局观是因为QA要做集成测试,这样需要对产品本身有个全局的观念。

比如产品有个用户管理系统和订单管理系统,那么对于“删除一个用户”的行为,用户的订单会怎么处理?这便是一个全局观的意识。

往往一个好的QA在这点上可以帮用户想到很多用户没想到的东西。

2.3质量监督(SQA)

如果说QA的作用是确保“做正确的事”,那么SQA的作用就是确保“正确的做事”。

通常SQA是不会直接参与软件开发的工作中,而是通过在一旁监督软件开发的过程,然后把监测的结果反馈给软件开发团队。

既然是监督过程,所以SQA经常是流程化的代名词。

流程是外企当中比较看重的东西,从每天的Dailyreport,到每周的weeklymeeting,从什么时候把当天的结果存到服务器上,到为什么团队出现重大事故,几乎都会有SQA的参与。

所以在前期制定一个符合项目的流程是SQA的必然工作。

项目运行过程中,所有项目流程规定的点所涉及到的邮件都要CC一份给SQA。

当SQA通过流程观察项目的运行情况的时候,必然会收集到很多数据(包括刚才提到的邮件)。

SQA会对这些数据进行统计归纳,然后总结出规律和报告直接递交给总监(Director)。

鉴于此,SQA在我们公司地位还是很高的。

SQA还会不定期对开发团队进行个人的facetoface面对面一对一沟通,名字叫Audit,中文翻译过来类似叫审计。

这种行为更针对“人”的评估,而不再是产品。

因为产品的好坏决定于人的好坏。

2.4技术主管(Tech-Lead)

技术主管在我们公司往往就是一个项目的负责人。

最主要的工作莫过于软件架构设计,客户需求沟通,技术难点解决和内部团队管理。

技术主管,名字便告诉了大家技术功底一定要很牛,在我们公司经常是一些工作了2-3年以上的软件工程师或者高级软件工程师担当。

虽然技术很牛,不过实际上直接参与软件开发的还是DEV(开发者),技术主管只是在比较高的一层面进行协调,所以直接代码编程很少。

但是遇到了技术障碍DEV无法克服的时候,技术主管一定要及时站出来做一个Problemsolver。

技术主管的日常主要工作就是和客户沟通,熟悉需求,然后把业务需求转换成软件需求给DEV去做。

所以技术主管对业务逻辑要相当的熟悉,在整个项目角色中,对业务最熟悉的除了客户就是技术主管。

所以技术主管起到了一个衔接的作用,沟通起了客户和开发,连接起了现实的业务需求和虚拟的软件实现。

这一切,对技术主管的沟通能力的要求就很高了。

软件团队不是一直和谐的,有时会出现某个模块的接口和另外一个模块的接口衔接不上,有时会出现一个人的工作被另外一个人的工作Block(中断)了,有时也会出现某个DEV总是不买某个QA的账等等,所有的这一切,从技术到人本身,都在时时考验一个技术主管的管理水平。

2.5开发经理(SDM)

软件开发经理是一般软件项目中执行层面上的最高职位了。

其主要作用是项目的进度控制,客户高层沟通,甚至到项目预算控制。

软件开发经理的编程功底要看具体人而定,在我们公司软件开发经理一般都是技术出身,5-8年的工作经验或软件行业的资历。

在具体的项目中,几乎不参与任何代码的编写和设计工作。

前期的项目计划(ProjectPlan),中期的项目进度管理和客户需求管理,到后期的项目交付,所有的工作都是软件开发经理和客户主要要沟通的东西。

业务方面,软件开发经理对业务认知的能力是非常强悍的,因为资历深的人对很多陌生的业务嗅觉和认知要比其他人强。

不过在实际中,业务需求方面大部分工作给技术主管做了,所以软件开发经理主要关注于项目总体,对细节不太关注了。

软件开发经理还有个重要的作用便是在软件项目过程中,积极地调动项目内外的资源。

简单的说,把合适的人放在合适的位置上。

当团队出现无法解决的问题时,软件开发经理会想方设法从外部获取资源帮助团队渡过难关。

3从软件开发团队成员看21世纪企业所需的人才素质

从一个软件开发团队中开发(DEV),测试(QA),质量监督(SQA),技术主管(Tech-Lead),开发经理(SDM)这五类角色所具有的各种能力我们不难看出二十一世纪的社会需要的是什么样的人才,答案很明确,二十一世纪我们需要的是复合型人才。

那什么是复合型人才呢?复合型人才就是多功能人才,其特点是多才多艺,能够在很多领域大显身手。

复合型人才包括知识复合、能力复合、思维复合等多方面。

当今社会的重大特征是学科交叉,知识融合,技术集成。

这一特征决定每个人都要提高自身的综合素质,个人既要拓展知识面又要不断调整心态,变革自己的思维,成为一名“光明思维者”。

那么一名复合型人才又应该拥有哪些素质呢?

3.1高尚的思想政治品格

首先,要树立正确的马克思主义世界观、人生观、价值观,用辨证唯物主义的观点,客观、动态、全面、本质、联系地看问题、分析问题、解决问题。

其次,要有坚定的政治立场,坚持四项基本原则,树立共产主义的信念和理想,自觉、积极、热情、主动地参加有中国特色的社会主义的建设,为实现社会主义现代化而奋斗。

在现今社会中,要能识别和抵制各种错误思潮的影响,坚定正确的政治方向。

第三,要有现代意识,譬如竞争意识、时效意识、科学意识、开放意识、改革意识、民主意识、法制意识、平等意识、信息意识、优质服务意识等。

3.2良好的科学文化知识

科学文化素养是指人们对自然科学、人文社会科学、文学、美学、艺术等人类文化各种基本知识或常识的认识程度和掌握情况。

21世纪的人才又需要精深而娴熟的专业知识、先进而新鲜的前沿知识以及与本专业相关的各种知识。

3.3法律道德知识

21世纪的社会将是一个法制社会,法律在它的适用范围内具有普的约束力和强制性。

尤其在社会主义市场经济下,任何经济活动都必然依法进行,知法、懂法、用法、守法,增强法律意识就显得更加重要。

所以,21世纪人才必须有较高的法律修养,了解宪法和法律的基本内容,正确行使公民权利,认真履行公民义务,作一个守法的公民,运用法律维护自己的正当权益。

3.4健康的心理

所谓心理健康是指个体在各种环境中都能保持一种良好的心理效能状态,个体在这种状态下能以社会认可的方式调节内部心理结构,以取得对外界环境的良好适应,并充分发挥其身心潜能,保持旺盛的生命力。

3.5一定人际交往能力和合作精神

21世纪是一个变化极快的时代,由此是一个竞争异常激烈的社会,但也由此不可能光靠一人的能力来成就事业,因此21世纪更加需要合作。

合作精神是一种值得弘扬的时代精神,也是新世纪人才必备的一种优良品质,我们必须放弃“鸡犬之声相闻,老死不相往来”的陋习,倡导科学、文明、健康、开放的社会交往方式,学会交往,学会合作,提倡合作精神。

在人际交往和互相合作过程中注意互惠互利、互相尊重、互相信任、摆脱嫉妒、能力升华等,把祖国建设得更富强。

3.6新时代的创新精神

创新精神是21世纪所必备的,没有创新就意味着“一潭死水”,停滞不前,继而落后,继而挨打。

科学技术要走在世界前沿,经济建设要跻身世界前列,无不需要创新,尤其在建设有中国特色的社会主义的中国,从事这具有开拓性的亿万中国人民所从事的崭新事业,既无前人之鉴,也无现成的经验参考,这就完全要靠我们自己去开拓、去创新。

3.7身体健康素质

人乃万物之本,人之成才要在体力和脑力上付出艰辛的劳动,这就要求在生理机能上有良好的体质和健康、发达的大脑。

身体健康素质应包括三个方面:一是要有结实健壮的身体,能够抵抗疾病、承受繁重的工作和各种艰苦环境的考验;二是要有健康、发达的大脑,能够足以用它来汲取知识和承受繁重的脑力劳动;三是要有良好的心理素质,保持健康人格。

综上所述,这几大素质是21世纪人才必需的。

它们不是各自孤立的,需要全面、整体、和谐地发展,才有可能形成新世纪人才的基本素质。

4结束语

二十一世纪是一个社会高速发展的时代,我们需要的是具有全面素质的复合型人才。

转载请注明出处人才网 » 软件开发需要那方面的人才呢