软件开发团队成长(程序开发团队)

软件开发 1746
本篇文章给大家谈谈软件开发团队成长,以及程序开发团队对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、如何营造高效软件开发团队 2、

本篇文章给大家谈谈软件开发团队成长,以及程序开发团队对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何营造高效软件开发团队

作者:苏康胜 前言 本人从事软件行业以来,经历了多次的成功与失败的体验,总觉得中国的软件应该可以做得更好些,但结果并不是我想象中的那样,许多的项目实际都还只是以假的、虚的面孔而存在,其中原由大家都可以说得出很多很多,但怎么改呢?一些问题的存在只是因为其他问题存在而存在的,所以我想寻找中国软件行业为什么不能崛起的根源。 中国人智商不够?那绝对是错的。 中国人不够勤奋?那也绝对是错的。 科技不如其它国家发达?通讯如此发达的现代,那不是理由。 中国人做软件的少?那更加不是理由。 ...... 为什么呢?中国缺少高效的软件开发团队吗?这也许是问题的根源。 正文: 喜欢足球的朋友应该非常清楚一件事情,那就是在一场足球赛中假如球员之间缺少默契的配合或教练的指导思想执行不到位等情况下,那场比赛多半是以失败告终的,因为这支球队并不是优秀的球队。开发软件项目就象一场进行中的足球赛,是靠项目管理、系统分析设计、程序编制、测试、市场营销等不同角色人员共同协作完成的,不同角色的人执行的工作相互促进和制约着其它角色的人的工作,因此一个高效的软件开发团队是高质量软件项目或产品的保证,可如何才能营造高效软件开发团队呢?从以下几个方面来说明: 一、 高效软件开发团队的特征 高效的软件开发团队是建立在合理的开发流程及团队成员密切的合作的基础之上的,成员共同的迎接挑战、有效的计划、协调和管理各自的工作以至完成明确的目标,高效的开发团队具有如下特征: 1、 具有明确且有挑战性的共同目标 一个具有明确的而且有挑战性目标的团队比目标不明确或不具有很大的挑战性目标的团队效率高得多,通常技术人员往往会因为完成了某个明确的任务,而且这个任务的完成具有挑战性的意义而感到自豪,反过来团队成员为了获取这种自豪的感觉而更加积极的工作从而带来团队开发的高效率,如作为系统设计人员很清楚的知道在什么时候要做到什么,什么时候开始做,什么时候必须完成,为了完成工作必须面临哪些挑战,怎么解决这些困难等为设计出一个高质量的软件项目提供了重要保证,而模模糊糊的去设计一个系统或模模糊糊的就去编写代码是非常危险的,而且会为此付出高昂代价,因此高效的软件开发团队具有挑战性的共同目标。 2、 团队具有很强的凝聚力 在一个高效的软件开发团队中,成员们凝聚为一个整体共同进行工作,他们是相互支持、互相交流、互相尊重的,而不是相互推卸责任、保守、相互指责的,在一些散乱的开发团队中往往存在这样的问题,一些程序员是比较保守的,明明知道另外的模块中需要用到一段与自己已经编写完成但有些难度的程序代码,他也不愿拿出来给其它程序员共享,不愿与系统设计人员交流,这样给项目的进度造成了些不可度量的因素。 3、 具有融洽的交流环境 在一个开发团队中,每个人行使自己的职责,如需求分析人员制定需求规格说明、系统设计人员做系统概要设计和详细设计、项目经理配置项目开发环境并且制定项目计划等,但每个人的工作不可能做到完美的,如系统概要设计的文档可能有个别地方词不达意,做详细设计的时候就可能会造成误解,项目经理制定计划时可能忽略了某种风险的存在而造成执行者过于紧张的压力等等情况都需要大家通过交流、反馈的手段然后协商解决的,因此高效的软件开发团队是具有融洽的交流环境的,而不是那种简单的命令执行式的。 4、 具有共同的工作规范和框架 高效软件开发团队具有规范性及共同框架的工作,对于项目管理具有规范的项目开发计划,对于分析设计具有规范和统一框架的文档及审评标准,对于代码具有程序规范条例,对于测试有规范且可推理的测试计划及测试报告等等。并且所有成员都明白自己的职责,知道必须完成什么计划?由谁来完成?什么时候开始?什么时候结束?按什么顺序?等,总之一个高效的开发团队无论是工作内容还是工作流程都具有不同程度的规范性和标准风格的框架。 5、 采用合理的开发过程 软件的开发不同于一般商品的研发和生产,开发过程中会面临着各种难以预测的风险,比如需求的变化、人员的异动、技术的瓶颈、同行的竞争等,高效的软件开发团队往往是采用了合理的开发过程去控制开发过程中的风险、提高软件的质量、降低开发费用,这样的团队会根据自身的必要程度决定要执行哪些工作?如配置管理、资源管理、版本控制、代码控制等,团队还合理的分划并定义开发过程的里程碑,决定每项活动内容的底线和审评标准,决定各项活动的先后关系或迭代的关系等。总之高效的软件开发团队的开发过程的原则是高效率、高质量、低成本。 二、 目前国内软件开发团队容易存在的问题 由于传统的旧体制下的管理思想的沿袭、大部分中国人传统的思维习惯及软件行业在中国发展的处于初期阶段等原因,使国内的许多软件开发团队在领导、合作、质量、参与等方面存在一些问题,具体如下: 1、 领导不力 有效的领导是高效率软件开发团队的基本要求,如果领导不力,工作计划就不一定会合理,团队成员也不一定会投入工作的热情,使团队的凝聚力大打折扣;如果领导不力,就不一定有明确且具有挑战性的目标,团队成员就无法完成高质量的项目产品,无法投入信心和激情。传统的旧体制下的管理思想的沿袭,是部分领导还具有老大爷的心态,于是贪功、推卸责任、明则保身等一系列现象也相继而生;如果领导不力,就无法营造融洽的交流环境,团队的工作便是死板的没有生气的;如果领导不力,就不知道采用什么样的开发过程是合理的,就不可能高效率、高质量的完成软件项目。领导不力还可能导致其它问题的出现。 2、 缺少必要的信心和激情 也许你会发现周围的一些同事仅仅是为了薪水而工作,在执行工作的时候即使发现了上层领导忽略的问题依然照糊涂画瓢也不反馈问题所在,即便他是个天才,但成功不会属于他的,因为成功垂青于有激情的人才,其实这些同事并不是一开始就缺少激情的,原因也许是失去了信心,而暂时做糊涂人而已,无论如何,缺少信心和激情的团队,只会是一盘散沙。 3、 软件质量的价值观念模糊 软件质量这个问题已经是老调老谈了,但质量的标准是如何?是否在团队中有明确的评价标准?目前国内的许多软件开发团队都很难给出正确的答案,许多的项目最终仅仅是以可以交差、收到钱、套概念、圈钱等市场行为做为标准。目前流行的许多开发过程、质量体系如:RUP、XP、CMM、ISO9000、SEI等真正应用的又有多少?一些公司仅仅是用来提升公司形象而已。缺少正确的软件质量价值观念的软件开发团队是不可能有明确目标的,不可能会采用合理的开发过程,也不可能有共同的工作规范和框架的。 5、 无效的内耗占据了开发过程的主体 也许是一些不良的传统观念和思想的沿袭,一些软件开发团队出现了排挤其它有异议的成员、推卸责任、相互指责、贪功等,这种情况是最坏的,但却事实存在。没有凝聚力的团队是不可能做得很好的。 6、 模糊不清的角色职责定义 软件开发是由不同角色的成员共同协作完成的,但目前国内的一些开发团队却没有对各种角色成员的职责做出明确的定义,成员就无法明确知道自己的目标,很简单的道理,都不知道要做的是什么,能按时准确的完成吗?如果每人都按自己想象中的职责去工作,那么有多少工作冲突、多少遗漏,谁能给出正确的估计?没有明确的职责定义人力资源的安排可能合理吗?结果可能是找了个资格较老的程序员做了项目经理,找了个没有理会对象概念的人去做面向对象的系统分析,找个不顾网络安全、网络流量、事务特性、运行费用的人去设计一个分布式系统。。。有才华的人也许只能跺在被窝里激呼怀才不遇或许能做个美梦安慰自己。 三、 营造高效软件开发团队的关键因素 如果做到了高效软件开发团队的特征,那么这个团队肯定是高效的团队,可是如何才能营造这样的一个团队呢?上面分析了国内软件开发团队容易出现的一些问题,解决这些问题及避免这些问题的出现是营造高效软件开发团队的出发点,但一些问题产生的原因是其它问题的存在,关键是解决问题的根源,所以营造高效软件开发团队的因素是以下几点: 1、 选拔或培养适合角色职责的人才 软件项目是由不同角色的人共同协作完成的,每种角色都必须有明确的职责定义,因此选拔和培养适合角色职责的人才是首要的因素,如:选拔软件项目开发经理一定要注意,这人要熟悉各种设计方法,愿意听取其他人的意见并且客观上和逻辑上把自己的思想与其它人意见相比,掌握激发团队成员的积极性的方法等;选拔系统分析员,一定要注意,这人要熟悉需要的设计方法,掌握系统分析和设计的原则,拥有完成职责所需技能和丰富经验等。选拔或培养适合角色职责的人才,特别是合适的软件开发经理是营造高效软件开发团队的最重要的因素。 3、 自我管理 作为团队的成员,应该以开发经理为首坚持管理自我,对工作负责,与同事友好合作,遵守工作纪律、自我技能培训等。 4、 学习国外成功经验 学习国外的一些成功开发过程、分析方法、设计思想、体系结构、设计模式等,如学习合理统一开发过程(RUP)的一些实践,归纳适合自己的合理开发过程;学习先进的系统分析、设计的思想力求完成更高质量要求的软件项目;学习各种体系结构优缺点及适应情况,设计出满足系统需求的软件体系结构;学习国外成功设计模式,使代码的编写满足更高质量的需求。

做软件开发的团队最终发展方向是什么?

我们公司和你的情况类似,公司人数是越来越多,但是老板脸上笑容不见增长多少,营业额也是增加,但利润不见增长,我们也不断思考软件开发趋势,思考团队发展方向,几点心得和你分享:

1、不能啥单都接,这样下来没有积淀的,就像路边的饭店,啥菜都做其实就是没特色,别人也始终把你当大排档而不是精品饭店,你的溢价能力上不去的,专注某个行业某个领域你的品牌才能形成积淀,而这种心智作用在将来的营销中会带来成本的降低;

2、一定要打造自己的产品,啥都是外包和定制,如果中间还有二道贩子的话其实盈利空间很小,但是产品化的话边际成本趋近于零,也才有自己的烙印,至于选择哪一块作为产品化方向,建议从非标小众的角度考虑,例如勘察设计院的项目管理系统,例如月子会所管理系统;

3、低代码开发模式将成为未来发展的主流模式,传统软件开发对高精尖程序员依赖性大,项目多你必须招大量高薪程序员,但项目少的时候又不可能立刻都干掉,辞退还得赔偿呢,但是借助低代码开发平台可以有效降低成本,缩短周期,提升业务调整灵活度,天翎平台,天纵平台,普元平台,国内这类型开发工具经过近二十年发展已经非常成熟;

4、软件开发的第二个趋势是变!这和第三点异曲同工的,你会发现项目实施过程中会不断变化需求,上线后也会不停的调整,没办法这是市场环境变化的客观要求和企业主观管理升级的必然要求,借助MYAPPS低代码开发平台等工具就能很好的应对这种趋势;

5、至于团队内部管理,建议安排个计划经理的岗位,通过禅道等工具把所有人的工作计划和产量管起来,我们是每个人每天六件事,每天对清单,及时协调资源,通过科学管控而不是盲目加班来提升效能。

怎么带好软件开发团队?

经常开会交流想法跟经验,对于有困难的同事多给与帮助,理解能力差的要淘汰。

软件开发精神上本来就累,要多多组织活动。 经常开会这个是必须的。

如何带领好一个软件开发团队?

我记得10年前在cisco的一个面试, 几个问题记忆尤深:

1) How do you recognize the contribution of your team member?

2)Can you remember the name of your team member's other part?

还记得大胡子CEO讲的一句话,一个团队重要的是公平, 我觉得追求公平这是

人的天性。 我个人经验, 公平是目标, 平衡是手段, 沟通是工具。

软件开发团队的难点在于你如何评估每个人的贡献, 不容易。 单纯的代码量是没意义的。

一个简单的修改后面可能是几天, 几星期, 甚至更长时间的辛苦工作。 我曾经听到过抱怨,

老板问改动了多少, 哥们回答道1行, 老板问要这么长时间?

所以好的软件部门经理或项目经理, 要有sense,这是行业经验积累来的。 还有就是沟通,

全面的沟通, 超出工作范围的沟通, 沟通是弥补行业经验的手段。

软件开发团队人的因素很强, 每个人就是一部”生产机器“,很多脾气很大, 不好沟通。作为leader重要的是从哪里, 哪方面为他们提供帮助, 我想除了技术之外还有很多, 你可以从这方面作为出发点。比如职业规划, 比如人际关系。

一点拙见, 希望有帮组。

如何创建软件开发团队?

这只是Tim Lister在Agile 2013的演讲中引用开发生活学习的两个例子,他是一位富有经验的软件开发人员。为了更好的一起合作,我们努力了四十年,他在田纳西州的纳什维尔这样说。

Lister是位于纽约市Atlantic Systems Guild公司的主席,也是《华尔兹与熊:管理软件项目风险(Waltzing With Bears: Managing Software Project Risk)》、《人件:生产项目和团队与肾上腺素吸毒者(Peopleware: Productive Projects and Teams and Adrenaline Junkies)》以及《模板僵尸:理解模式的项目行为(Template Zombies: Understanding Patterns of Project Behavior)》这几本书的联合作者。他给开发人员分提出一些项目管理方面的建议,开发人员如何培养他们的职业生涯,如何处理仲裁纠纷涉及的挑战,以及在Agile 2013会议上的更多分享,此一年一度会议由非盈利组织软件组织敏捷联盟(Agile Alliance)举行的。

他的建议包括如下:

在创建软件开发团队中,选择雇佣合适的人员并不仅仅只是第一步,它也是最重要的一步

。Lister回忆了一下他作为软件项目领导的一天,当时他是一个承包商,不负责招聘。有一个新人第一天来公司报道。Lister当时只看到那个人的简历,没有其它别的。Lister把年轻的开发员直接带到了代码前,让他马上参与到项目中。不幸地,这个新人对于代码的喜爱并不如他在他的简历上和面试中表现的那样。午饭时候他离开了,再也没有回来 。

从雇佣到组织一组开发人员,组织一个软件开发团队,这在任何一个项目中都是最重要的,Lister.说。项目经理需要尽职尽责地调动起所有有希望的团队成员。

不要害怕把最好的和最闪光的人员放在一个团队中。

Lister回忆了在1992他在国防部的Arlie委员会项目中工作的情景。当时他在软件开发人员名册中看到一些了不起人员的名字,如Grady Booch,他担心可能会血溅当场。

即使大部分的团队成员过去曾是大佬级人物,可能会有一些争执,但项目还是会顺畅地运行。项目中的每一个人,为了软件系统的开发都会把个人自我放到一边。如果一大群像我们一样的自大狂可以胜任它,Lister说,你的团队也有很多机会。

当软件团队内部出现争论时,让每一个人都发现自己的意见。

确保他们知道他们很努力,而且他们的意见将会被考虑,即使他们只是在抒发自己的个人情感,没有提出解决方案。

Lister在他担任美国仲裁协会法官时学到了一个教训。在仲裁中,如果双方都是进行情感的请求,这将不会提到法庭上打官司。通常,对方律师将试图指出反对理由,转移话题,停止讨论另一个方面。年长的仲裁者给Lister展示了一项技术,他称为神奇的手指(the magic finger)用于这些情况。该技术要求法官用手指在空气中指一个律师站的方向,同时保持目光接触证人。一方面,他让律师知道,作为一个法官知道将要发生什么,你选择认可它。另一方面,法官对另一边也做了相同的处理。神奇的手指也用来解决小组内部争端, Lister.说。

记录下你所做的、你的专业见解及意见。

写作经验是有价值的,无论你是写论文、博文、对行业出版物或书籍的文章,Lister说。为了记录,开发人员必须把他的思想紧密地结合,并确保它支持某个观点。这一流程提升了编者每天的工作质量。

记录还要让同行审查。从Lister的经验来年,同行审查提供了强有力的支持、包含重要的反馈和有趣的讨论。有论文对于提取的你思想和意见,并把些思想从一个框架移动到另一个框架是一个很好的方法,他说。

找到工作的乐趣,并享受工作。

它引用了软件组织Red Gate软件公司,在此公司中应用开发的确是很享受。联合创始Neil Davidson 和Simon Galbraith培养了这样的一个环境和文化:在此环境和文化中好的开发人员茁壮成长。走进这个地方,你会不自觉地笑,他说。

软件开发团队成长的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于程序开发团队、软件开发团队成长的信息别忘了在本站进行查找喔。

扫码二维码