项目开发中如何提升团队的战力?

前言

曾有一些好友和同事问我: 伴随着团队人数的增加,怎么样能让整个团队的产出是 1+1 >2? 起码也是 1+1 = 2 。

结合我自身的一些角度和经验,我给出了我的一些想法和做法。

(这里的角度是从实际开发中合作的角度来考虑的,提升薪资一般能在很大程度上提升战力 ^^, 这个不在本篇的讨论范围)

1. 统一团队的“语言”

之前看过一本书, 书中说了这样一个寓言-- “巴比伦通天塔”

内容大概是:人类希望能联合起来建立通往天堂的高塔。为了阻止人类的计划,上帝让人类说不同的语言,使人类相互之间不能沟通,计划因此失败,人类自此各散东西。

这里的统一的团队“语言”,只的是环境和编码上的一些习惯和规定。细部可以是:

1. 统一的规格文档

项目不管多少人做,规格文档总是需要的, 只是形式和标准上会有一些不同。

比较小的项目, 人比较少, 可以考虑在 Wiki 上来写规格。形式也可能比较随机。 但是对于涉及人数比较多, 项目较大的状况,规范的规格文档就会比较重要。SA, SD , AP, QA 都需要能看得懂。 规格也成为大家交流语言的"教材"。 设计一个好的规格文档的模板也就至关重要。

2. 统一的集成开发环境。

对于 Java 开发者来说,Eclipse 是个还不错的选择。 当然你也可以选择 IntelliJ IDEA。 但是对于开发同一项目的团队来说,大家一定要选择同一套。

对于各种IDE工具来说,优点应该是各有千秋,选择一个最适合项目,适合团队的。这个工作可以在项目进入开发阶段时大家一起筛选。

3. 统一的开发环境

开发人员常见的开发方式 一种是在本地建立个人开发环境进行开发, 另外一种是在一台共用的服务器上建立个人开发环境进行开发, 使用代码控管工具(P4 or Git)进行代码的获取或提交。

不管是哪种,经常会有以下状况发生:

1) 新加入member请老员工查看本地开发遇到的问题

2) AP 1 请AP 2 在AP 1 上查看AP 2 写的Code 的问题

3) 大家一起在某台机器上会诊某个问题

如果每个开发人员的开发环境相差甚异,势必会浪费一些不必要的熟悉环境的时间。 所以, 统一大家的开发环境的路径,开发项目名称,统一的部署测试脚本也就不无裨益了。

4. 统一的编码规范

衍生统一的开发环境, 团队成员使用统一的代码规范, 像代码文件路径,文件命名, 类的命名, 方法命令,变量命令,参数命令都能统一的话, 彼此之间熟悉代码就会比较快,维护和更改也就方便了。

2. 共用功能组件的宣传,推广

一般项目的设计与开发中, 必不可少的总有共用模组的存在。(如果没有,就要反思一下了)。

共用方法, 共用类, 共用模块。 总有一些部分是可以提取出来供团队来使用的。除了方便其他人,加快开发速度。

相对于每个人都写一套类似的东西,花比较少的时间来提炼,锤炼共用的功能部分,使共用的部分无错误,高效率,对提示项目的质量也大有好处。

但是,共用组件的提取和宣传是需要有专门的意识和规划的, 相对单个开发人员来说, 完成了既定功能的开发,是时间要求很紧的状况下,他个人是没有精力也不想花额外的时间去做共用化的,更别说宣传和推广了。

当然, 即使共用的组件也不能从共用后就不再变化了, 功能完善与升级也是需要相应的途径的。

简言之, 以生命周期的方式来管控和维护共用组件。 从计划,到实施,到销售,到更新升级,到Release .... .

3. 代码质量保证

一个团队要做正确的事,要正确的做事, 在统一"语言"之后,是很有计划达成 1+1 >2 的效果。 但是一定要确保正确的做事,同理之,如果某个成员制造了一个Bug, 影响的不仅是他自己, 错误同样也会出现 1+1>2 的状况。

所以,每个人代码质量都要尽量有保证。

自动代码Check,  定期的Code Reviewer, 结对编程都不失为一种好的做法, 同样,选择适合团队的状况的方法就可以了。

时间: 2024-10-28 00:51:41

项目开发中如何提升团队的战力?的相关文章

在复杂的项目开发中使用结对编程

在复杂的项目开发中使用结对编程 卢占辉译 在开发软件项目时,不仅写出相应功能的模块很重要:确保写出的模块的易维护性(bug 修复,代码重构)也同样重要. 主打互联网技术和门户网站的Perpetuum 手机公司曾开展了一个长期的软件项目,以研制出一套基于web的内容管理软件.Perpetuum公司的许多开发者都参与了这个项目.项目中大部分复杂的模块都是完全靠个人开发的(非多人协作完成).维护这些模块(即非多人协作完成的模块)非常困难.因为开发某一模块的人还需要开发新的模块或者维护另一既有模块,这需

项目开发中常用的PHP函数

日期操作 为了便于存储.比较和传递,我们通常需要使用strtotime()函数将日期转换成UNIX时间戳,只有在显示给用户看的时候才使用date()函数将日期转换成常用的时间格式. strtotime()  函数将任何英文文本的日期时间描述解析为 Unix 时间戳 eg: <?php echo(strtotime("now")); echo(strtotime("3 October 2005")); echo(strtotime("+5 hours&

逆向思维在项目开发中真的很重要

最近一直和我的小组开发一个投资类型的网站,网站的整体已经完成得差不多了,客户今天突然提出了一个要求,希望能够在所有人退出当前聊天大厅后,后面进入的人不能够看到之前用户的聊天记录(原来是可以看到的).由于聊天室代码是别人写的,且基本算木有注释,也木有相关的文档.研究源码太耗时间了,由于聊天数据比较小,聊天室窗口是从messages表中读取的数据,所以打算当用户退出时,执行某一机制将Ajax_chat_messages表中对应聊天室的数据copy到一个新的Chat_messages表中,同时清除Aj

SSH项目开发中,将jsp页面放在WEB-INF的原因解析

 在一些安全型要求比较高的项目开发中,我们经常看到jsp页面都被放在WEB-INF下面了.这是出于对安全性的考虑, 是为了代码的安全.这样实现起来虽然麻烦了点,而且页面跳转很不方便.但是整个项目的安全性就提高上去了!所 以还是建议在一些安全性要求比较高的项目里使用这种做法! 这是我写的一个例子,我就是将所有的JSP页面都放在WEB-INF下面,然后按照模块进行分配,course文件夹就是放和 课程信息管理相关的JSP页面.假如我们输入https://localhost:8080/项目名称/p

项目开发中db设计

项目开发中db设计 0.根据原型分析出数据的由来和数据间的关系(实体关系); 1.提取字段,通过powerDesigner设计表; 2.先不加约束,先只建立数据上的单向关联,有需要时在建立双向关联或中间表;3.也可以先建立外键关系,最后删除外键关系;(方便查看表的关系);4.对实体对象通常会补充的字段:     id         主键    entity        关联实体/自己    isDelete varchar(1)  Null    #是否删除    CreateEmpId v

项目开发中对设计模式的思考

前言: 做项目的时候经常会这样的体会:我的代码实现需求了,代码重用性也可以.由于前期需求分析不彻底,只考虑到一种情况,做出来的东西给用户测试的时候,发现又需要改动,这个时候又会觉得前期的设计太过复杂,改动也比较麻烦.当然问题的根本原因是需求分析不彻底,或者对业务敏感度不够.面向对象的封装特性的核心是封装变化点,由于没有察觉到业务变化点,也就无法封装变化点.基于这个问题,我总结的方法是(1)多考虑用户的潜在需求 (2)无法感知用户潜在需求的情况下,代码设计尽量简单,不要做过多设计和封装,在重构的时

项目开发中自定义字段设计原则

在开发系统过程中,做到自定义字段策略设置,目前这种功能是很多系统的标准配置,这样子可以简化后续增加字段的难度,并对自定义字段做管理. 自定义字段功能要注意到以下几点: 1.批量规划好要自定义字段的数据表.2.对自定义字段存放的表字典表做设计3.对自定义字段做不同的属性设计4.自定义字段的扩展设计 1.明确是哪个表需要自定义字段.如果是开发一套易用的系统,做开发的时候对用到的主表做统一的自定义字段设计.这样子方便在以后的开发应用中直接操作自定义功能就能增加字段.很多程序员在初写程序的时候,增加字段

记录在一次前后端分离的项目开发中遇到的坑

问题如下图: 在一次实际的项目开发中,我负责前端开发,使用的是vue+axios,后台使用的是php,由于我们的开发环境处于不同的域名和端口下, 所以出现了跨域问题,当然php服务端 可以直接解决这个问题,但是后端设置之后,前端每次都会先发出options请求,然后再post请求, 这说白了,就是每个接口请求两次.我们来分析下原因: 出于安全考虑,并不是所有域名访问后端服务都可以.其实在正式跨域之前,浏览器会根据需要发起一次预检(也就是option请求),用来让服务端返回允许的方法(如get.p

谈谈项目开发中的管理

开篇不知道写什么,但想想最近在项目中发生的事情,总觉得身心疲惫:下面聊聊最近的一些事情: 刚接到事业部指令,需到兰州出差带领一个小团队开发:在需求阶段,本人未参与其中,只是在总部参与功能点汇总,讨论大致开发的内容.会后吃饭,第二天赶赴首都机场,飞往兰州的路上:抵达酒店第二天上午休整完毕,直接去客户现场:现场项目经理.开发组长.俩开发成员.外加其他项目开发指导成员一枚:总体来讲在事业部开发力量从人数上占绝对优势.出差第一天,人员介绍,想甲方介绍各成员,及参与项目接口成员.然后将开发计划与客户核对,