软件开发团队描述(软件公司团队介绍)
本篇文章给大家谈谈软件开发团队描述,以及软件公司团队介绍对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
我现在要组建一支软件开发的团队,开发一款购物软件,请问都需要哪些类型的人才,大概需要几个人。
1 前言
软件开发并不是只有一个编程的人,而是可以分为不同的角色。不同的软件公司因为规模大小性质各不相同,所以围绕软件的角色也各不相同。一个大型的软件外包企业,外资企业,往往分工明确细致,每个人像螺丝钉一样在一起工作,让整个大机器得以运转。而在一个小型创业企业里面,往往一个人从接触客户,到开发产品到交付产品一条龙走完,整个产品周期就一个人,甚至几个产品周期就一个人。
2 软件开发团队角色
一般的项目组可以说一共有5种角色,开发(DEV),测试(QA),质量监督(SQA),技术主管(Tech-Lead),开发经理(SDM)。
2.1 开发 (DEV)
开发就是大家经常说的编程的人。工作主要是写代码,其次是跟团队成员客户沟通。前后者比例大概是7:3的关系。开发是整个软件开发团队当中的最重要的角色之一,道理很简单,产品出自于他们的亲手。说到开发,大家的印象就是整天呆在电脑面前,目光呆滞,头发凌乱的计算机人士。确实,整天和计算机打交道的人的确容易变成这样,因为开发首要解决的问题就是如何用技术能力去解决客户的需求,而不是自己的形象怎么样。事实上这种情况在现代中得到很大改善,很多IT人士都很注重自身形象。具体的工作不仅要写代码用算法实现业务逻辑,更要有程序设计的思想,大到整个的程序框架,小到某个小模块的扩展性兼容性,都是在开发真正写代码之前着重要考虑的方面。加我裙子,前面是257,中间是014,后面是.001,组合起来就行。现在的编程不像以前打孔式编程那么艰涩,大厂商开发的强大的编程工具(IDE)让编程事半功倍。然而技术在变简单的同时,客户需求又在日趋复杂化。而技术就是为了实现业务逻辑,将业务逻辑抽象建模用计算机程序的方式表现出来,所以一个不懂业务逻辑的开发不会了解模块和模块之间如何协同工作,这便给工作带来很大的局限性。而如果一个开发只关注每个模块之内的细节实现,那在现实中便不是一个好开发,至少不是一个好用的开发。
沟通方面,开发需要和测试,技术主管,开发经理,甚至客户方面沟通,所以必要的沟通能力还是很需要的。现在的软件不再是一个人在战斗,在团队作战中,开发有时需要和测试讨论“某个软件Bug(缺陷)是不是Bug”,有时需要和技术主管讨论客户的某个需求到底是要实现什么内容,有时需要和开发经理讨论项目的进度是否需要推迟。
就开发的工作本身而言,是不太需要管理能力和全局观的,如果能够做好编程的工作之外,这两方面也比较强,可能就离升职加薪不远了。
2.2 测试(QA)
任何一个产品都需要测试,就好比制造业中如果生产了一批电灯,我们不能听制灯师傅说信得过而信得过,而得通过一系列模拟用户的行为来对电灯进行测试,指标合格后方可出厂投入市场。
软件测试也一样,需要对开发者开发出来的模块,产品进行全方位的测试。
原则是“做正确的事”,让客户需求功能得到满足。基本做事方法就是模拟客户的一切日常行为,包括一些极其变态的行为,考验软件在各个方面的情况下的可用性和稳定性。而这些“日常行为”便称之为测试用例(Test case),一个好的QA会设计出一套可以覆盖所有检查点(check point),又不重叠的测试用例,这套功底可以参考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经常是流程化的代名词。流程是外企当中比较看重的东西,从每天的Daily report, 到每周的weekly meeting,从什么时候把当天的结果存到服务器上,到为什么团队出现重大事故,几乎都会有SQA的参与。所以在前期制定一个符合项目的流程是SQA的必然工作。项目运行过程中,所有项目流程规定的点所涉及到的邮件都要CC一份给SQA。
当SQA通过流程观察项目的运行情况的时候,必然会收集到很多数据(包括刚才提到的邮件)。SQA会对这些数据进行统计归纳,然后总结出规律和报告直接递交给总监(Director)。鉴于此,SQA在我们公司地位还是很高的。
SQA还会不定期对开发团队进行个人的face to face面对面一对一沟通,名字叫Audit,中文翻译过来类似叫审计。这种行为更针对“人”的评估,而不再是产品。因为产品的好坏决定于人的好坏。
2.4 技术主管(Tech-Lead)
技术主管在我们公司往往就是一个项目的负责人。最主要的工作莫过于软件架构设计,客户需求沟通,技术难点解决和内部团队管理。
技术主管,名字便告诉了大家技术功底一定要很牛,在我们公司经常是一些工作了2-3年以上的软件工程师或者高级软件工程师担当。虽然技术很牛,不过实际上直接参与软件开发的还是DEV(开发者),技术主管只是在比较高的一层面进行协调,所以直接代码编程很少。但是遇到了技术障碍DEV无法克服的时候,技术主管一定要及时站出来做一个Problem solver。
技术主管的日常主要工作就是和客户沟通,熟悉需求,然后把业务需求转换成软件需求给DEV去做。所以技术主管对业务逻辑要相当的熟悉,在整个项目角色中,对业务最熟悉的除了客户就是技术主管。所以技术主管起到了一个衔接的作用,沟通起了客户和开发,连接起了现实的业务需求和虚拟的软件实现。这一切,对技术主管的沟通能力的要求就很高了。
软件团队不是一直和谐的,有时会出现某个模块的接口和另外一个模块的接口衔接不上,有时会出现一个人的工作被另外一个人的工作Block(中断)了,有时也会出现某个DEV总是不买某个QA的账等等,所有的这一切,从技术到人本身,都在时时考验一个技术主管的管理水平。
2.5 开发经理(SDM)
软件开发经理是一般软件项目中执行层面上的最高职位了。其主要作用是项目的进度控制,客户高层沟通,甚至到项目预算控制。
软件开发经理的编程功底要看具体人而定,在我们公司软件开发经理一般都是技术出身,5-8年的工作经验或软件行业的资历。在具体的项目中,几乎不参与任何代码的编写和设计工作。前期的项目计划(Project Plan),中期的项目进度管理和客户需求管理,到后期的项目交付,所有的工作都是软件开发经理和客户主要要沟通的东西。
业务方面,软件开发经理对业务认知的能力是非常强悍的,因为资历深的人对很多陌生的业务嗅觉和认知要比其他人强。不过在实际中,业务需求方面大部分工作给技术主管做了,所以软件开发经理主要关注于项目总体,对细节不太关注了。
软件开发经理还有个重要的作用便是在软件项目过程中,积极地调动项目内外的资源。简单的说,把合适的人放在合适的位置上。当团队出现无法解决的问题时,软件开发经理会想方设法从外部获取资源帮助团队渡过难关。
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 结束语
二十一世纪是一个社会高速发展的时代,我们需要的是具有全面素质的复合型人才。
如何营造高效软件开发团队
这个理论的东西太多了,理论上的原则就是严格遵守software engineering规范,就不给你啰嗦了,各种书籍资料一大堆,网上一搜也一大堆。
主要给你说说我这些年组织团队的心得体会吧:
首先,高效率的软件开发团队的关键因素是团队结构和"人"。
选择团队组织结构和人员是非常重要的起始环节。而且这两个方面是相辅相成的。团队组织结构大体上分为横向和纵向两种,横向结构表示团队成员的权限和等级是相同的,即每个人在团队中的作用和地位是一样的;纵向表示团队是一种从上而下的管理组织结构,典型的分为项目经理、架构人员、主程序员、程序员、测试负责人、测试专员等等。具体的实践过程中,还会把这两种结构相互融合,构成横向为主纵向为辅,或者横向为辅纵向为主的组织结构。
在选人上,一般注重人员沟通能力和技术能力,学习能力虽然也很重要,但是绝对不是高效软件开发团队需要重视的方面。我是不会要技术能力差的人的,这种人只能浪费大家的时间,要么不断跟他解释、要么就要等待他完成自己的学习曲线,高效的开发团队中不会有技术能力差的人。如果有人说他自己学习能力强,短时间就能提高自己,那么我会说,请你先用短时间来提高自己,再申请加入我的团队。很多企业都是先招人,然后慢慢培养,但是先进的企业即使是招人来培养也是招能力高的人(比如著名高校的优秀应届毕业生)。
选好人后,再根据现有人员来决定到底是哪种架构。如果手上的人员沟通能力普遍非常强,那么横向为主的架构是首选;如果他们的沟通能力较弱,而个别人沟通能力强,那么纵向为主的架构是首选。
其次,必须运用奖惩等激励机制来提高责任心。很多人在团队中工作,都只是为了工资、积累经验等与自身有关的因素,其实不能过分要求他们对团队负责。但是作为团队组织者,必须让他们把自己与团队结合起来,让他们的自身利益与团队利益协调一致。比如,订立团队项目终结奖励机制,对团队成员进行项目红利分配,在订立项目合同的时候对项目的红利分配定为浮动式,可以设定为如果客户在一段时间的软件使用期内找到一个不能在2天内解决的bug,该bug涉及的负责人员的项目红利相应减少一定份额;这样就能在开发的过程中充分调动所有人的积极性,尽量的完善用户需求、架构设计、代码质量、测试环节,为了减少用户可能发现的bug,并且完善文档,用来提高解决bug的效率,从而能保证自己最后得到的项目红利不会减少,或者不会过分减少。
其实还有很多类似内容涉及到提高软件开发团队效率,主要原理是和营造团队文化、营造团队成员的集体思维意识有关。
软件设计团队的配置?
不同规模的软件开发团队,需要的人员组成结构是不同的。小型软件开发团队:软件开发人员、软件设计人员。其中具体包括编程人员、美工人员、创意人员等;大型软件开发团队:软件开发人员、软件设计人员、市场研究人员、客服人员、推广人员等。其中技术人员具体包括编程人员、美工、创意人员等。
如何评价一个软件开发团队
可以从管理和技术两个方面评价。
管理上,看团队的管理制度或方法是否有效,各岗位分工是否合理、明确,人员配置是否到位,成员的相互了解和沟通是否充分,团队是否有大家认同的解决争议的原则,团队负责人或权威是否被其他成员认可。
技术上,团队所采用的开发技术是否落后,每个成员的水平如何,成员之间在技术角度有没有互补性,团队对新技术的接受程度如何,技术权威是否有能力为其它成员提供指导或帮助。
简单的归纳了一下,不完善,可以再补充些。
关于软件开发团队描述和软件公司团队介绍的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。