#星空云诊所#:以实际项目案例来分享如何管理好二开团队保证高质量交付原创
金蝶云社区-云社区用户g7737637
云社区用户g7737637
114人赞赏了该文章 578次浏览 未经作者许可,禁止转载编辑于2023年12月23日 19:48:45

一、  总述

作为一个项目来说,开发的进度影响整个交付的进度,开发质量影响整个交付的质量,项目的进度及开发质量与开发团队的每位开发顾问的水平息息相关,对于大的开发项目,可能会面临团队多、团队顾问多的问题,那团队管理显得尤为重要,如何步调一致,将每个开发人员的水平能发挥到极致,那才是真正的高效管理团队,这样的团队才是成功的保障,下面以实际项目案例来分享如何排配置好二开团队、如何管理好二开团队来保障高效、高质量交付

二、  场景描述

案例1场景描述

1.   该项目为一央企星空项目,金额比较大,实施由3家伙伴构成(中途有换伙伴),开发由一家开发伙伴完成,开发内容主要体现在生产及财务部分的开发,项目中有大量的集成开发内容,集成主要由一家财务软件公司的资金支付及凭证同步

2.   该项目由于有大量集成,由于第三方财务软件系统供应商本身架构问题,同步都是通过中间表完成,所以不能达到实时同步,因此这家开发伙伴就利用了自己的集成开发平台进行同步,同步也是通过定时任务去完成,通过定时任务去抓取同步需要同步的数据,形成任务

3.   该项目由于开发由伙伴完成,开发管理缺乏,项目经理对开发这块管理也缺失,造成开发当初选择集成平台的方案没人把关,开发质量没人把关,造成上线后出现了两次事故,第一次事故:为集成平台的部署不规范和管理不规范,造成将测试环境的付款单数据同步到第三方财务软件的资金支付平台,其中有一笔数据由客户方资金会计支付了给供应商,金额在1万左右, 第二次事故:为性能问题,造成所有使用人员无法登录星空系统,监控发现使用TCP连接数高、端口释放不及时的情况,导致网络连接很慢(局域网ping延时可达3667ms)。其中mysqld.exe、java.exe程序占了连接数的主要部分,如下截图:

image.png

案例2场景描述

1.   该项目为一国产化替代项目,由SAP替换为星空企业版项目,过去很多在SAP满足不了的需求,通过自研的一个系统来满足所有的个性化需求,这家客户比较精细化管理,造成很多是标准产品满足不了的一些需求,都需要通过二开来实现,因此开发点特别多,包括条码标准产品也无法满足该客户的需求,因此现场当初决定自己全部通过一个比较成熟的平台来进行条码的开发,开发需求特别多

2.   该项目最开始整包给一个实施伙伴和一个开发伙伴,分公司没投入开发人员和开发管理人员,开发团队前期总共5人,团队整体开发能力不行,不仅开发进度不行,开发质量也存在验证问题,由于开发进度缓慢,很多开发没达到客户预期,还存在很多方案不合理问题造成后面返工

3.   元数据有使用协同开发平台,但代码都没通过协同开发平台进行统一管理,都在自己本机开发,造成部署时问题比较多,还很麻烦,问题难排查,不能使用协同开发的在线构建一键式构建方式

4.   开发方案缺比较资深的专业人员来对方案进行把关和控制,造成存在很多因方案不确定就开发的,造成多次返工的情况,还有就是有些方案因为迟迟定不下来,造成一些开发项无法动工的问题

5.   实施人员由于缺乏专业性,对需求没有判断,客户提出的问题就直接登记到在线文档表格中,开发人员没了解到需求的合理性或者方案的合理性按实施人员的需求就直接进行开发,造成返工

三、  改善措施和方案

案例1改善措施和优化方案

1.   规范开发过程管理,包括代码检查和代码调优,代码编写规范等,部署规范的建立、生产环境、测试环境、开发环境完全分离开,将测试环境从原来生产环境账套及应用服务器分开。集成平台对接时指定其中一台服务器,减少

2.   生产环境的管理中心、应用服务器、集成平台服务器分别部署在不同的服务器上(原来在一起),由于应用服务器原来2台做了集群部署的,将集成平台在与星空进行集成时,直接指向其中一台星空应用服务器进行集成,减少对整个星空系统的影响。

3.   不同系统之间的对接环境严格隔离,生产环境对接生产环境、测试环境对接测试环境、开发环境对接开发环境

4.   代码检查及代码优化,优化有性能影响的代码,包括对调用接口建立连接后需要及时释放连接,为了减少请求次数,同步时调用批量接口方法

5.   生产环境的文件服务器从原来应用服务器里分离

6.   数据库服务器硬盘检测发现不是固定硬盘,存在较严重读写问题,改为固定硬盘

7.   使用协同开发平台,部署时只能通过部署包进行部署,修改元数据时不能直接连生产环境进行修改,实施人员不能直接在客户生产环境维护数据,收会过去生产环境权限太大的问题

8.   部署方面必须是客户参与UAT测试,并且测试通过的才能部署到生产环境

案例2 改善措施和优化方案

1.   总部资源现场支持开发指导,建立开发规范,比如统一使用协同开发平台进行开发,把原来所有的线下工程代码都统一迁移到协同开发平台上,并将原来太多的不规范建立的工程统一整合,让后期维护方便

2.   对于比较复杂且与标准产品有关的不确定的方案,总部专业人员给出一些合理的方案或者通过总部人员对方案进行把关后才进行开发

3.   提升现场开发人员的能力,提供一些参考案例让开发人参考学习和利用

4.   修改过去直接修改后台数据的方法,比如很多地方需要价格修改和调整,原来直接用执行SQL 进行修改,统一改为利用星空模拟界面保存的方法,给对应的元数据赋值,然后调用标准产品的保存方法的方式,这样就减少很多风险,如果直接修改价格,不用标准的保存方法的话,则会跳过所有的校验及值更新事件,会造成后续很多业务和财务问题

5.   协调技术比较强的开发资源包括分公司的星空开发资源,逐渐代替原来的技术水平不高的开发人员,增强开发团队的实力,既保证了开发进度、又提高了开发质量,逐步替换的方式也降低了项目风险。

6.   由于开发团队人比较多,为了规范建立和制定了开发规范,部署由专门的人员负责,这样既保证了规范,出问题时也会出现能快速定位和解决。

7.   严格控制开发需求,必须通过开发负责人确定后并讨论对应的需求的合理性后,并跟客户确认清楚后才形成开发需求规格书进行开发

四、  总结:如何管理好二开团队

总结以上两个问题项目,开发都存在着严重问题,共同点如下:

1.   都是开发外包,开发团队的能力都存在着不足,开发团队人员都没经过分公司的面试

2.   机构也没自己的开发人员参与项目,分公司也没派懂星空开发的人员来管理开发团队,把控项目风险

3.   都没使用协同进行统一团队管理,开发不规范、部署不规范

4.   缺乏开发方案及开发需求把关的人,造成开发进度延期、开发质量不高

       因此要管理好团队需要从下面细节做好把控

1.  建立高效的开发团队,做好人员及角色分工

团队人员的素质直接决定了项目交付进度和质量

(1)  提前做好资源计划、合理调动和分配好资源

首先要根据概要需求做好工作量评估,做好开发资源计划,做好需求难易度识别,掌握好团队人员的能力分布情况,对于开发实现难度大、影响面广、对开发能力及设计能力要求高的一定要安排骨干开发人员来实现,对于一些影响面小、技术能力要求没那么高的可以安排经验稍微没那么丰富的人员来实现.

问题: 如果资源不够,需要外包时需要注意什么?

1)  必须选择开发实力比较强的伙伴,开发团队中必须有开发能力比较强的资

源做保障

2)  如果大型项目必须有资深的能做技术架构和设计的人员,并且能与项目经理一起把控开发风险,协助进行团队管理

3)  外包开发团队人员必须是需通过面试,具备和符合要求的人员才可以进团队

4)  对开发过程中不符合开发要求的人需及时调整人员

5)  必须对外包团队进行统一管理,如果有多个外包团队更需要做好各团队之间的协作,对需求、方案、质量进行统一管控

    

(2)开发负责人的任命

每个开发团队必须指定一名开发负责人,对于多人的开发团队,开发负责人不仅需要跟踪进度,定期检查开发规范及质量,把控需求范围,还是与其他开发团队、实施团队及客户团队沟通的窗口,核心技术实现方案及集成方案把关

2.  必须有颗粒度很细的可执行的开发计划

(1)  当有多个开发团队时,每个团队的开发负责人都需要制定颗粒对很细的详细开发计划,最好是将任务逐层拆解,直到不能拆解为止,最好能到天,每个任务最多不能超过3天,如果超过3天的任务是可以继续进行拆解

(2)  这个开发计划必须是开发负责人列出具体的开发任务清单及开发任务责任人,具体所需时间可以由具体开发人员根据自己能力情况填写具体所需要的时间,或者是开发负责人安排好,通过开发任务责任人确认没问题后方可生效,一定要确保这个时间表是可执行的,后面将根据这个开发计划表进行进度跟踪,大的时间节点一定不能轻易调整,遇到风险时及时采取措施

(3)  开发任务责任人按核心人员核心开发任务的原则进行分配,核心开发人员需要扛起模块的开发任务大梁,实现客户的核心价值

(4)  详细开发计划中必须体现出重要里程碑需求分析、需求确认、开发设计、编码、单元测试、系统测试完成确认等,如下截图

(5)  开发计划就是开发人员每天的目标,每天都需要围绕目标去完成,如果遇到不能按时完成与计划有偏差时必须采取及时措施,并且需要评估对整体进度的影响,如果会偏差较大,目前开发完成的里程碑时间不变时,则需要对资源进行调整或者是补充资源

3.  做好开发团队管理

(1)  建立开发规范

对于一个开发团队甚至多个开发团队,人员众多的时候,必须有一套开发规范来约束开发人员,让开发人员都遵循其规范,才能既保证开发效率又能保证开发过程中的开发质量,具体规范如下

1) 项目组统一使用协同开发平台(统一平台协同开发,保证高效协同及版本管控),目前星空企业版和旗舰版都有协同开发平台,要求团队都必须使用协同开发平台

2) 客户化开发过程参考让开发人员编码时必须按其规范执行,包括二次开发管理规范、业务对象开发规范、代码编写规范、脚本编写规范、API开发规范。

3) 开发过程代码编写是必须注意代码质量,不能在开发过程中出现影响性能的代码,

4) 协同使用时也需要建立协同使用规范,比如协同平台使用时需要同步元数据到本地,然后签出,使用完自己验证没问题后及时签入、协同不能直接连生产环境等相关的一系列规范

(2)  建立沟通协同机制

1) 开发组每天开个站立会议(时间可以精简),沟通开发进度及开发过程中存在的问题

2) 对于遇到的问题一定要及时沟通解决,需要解决的问题争取当天就解决

3) 开发组内单独建开发群,以便日常问题沟通,形成沟通记录

4) 重要会议必须要有《会议记录》,包括技术实现方案讨论、集成方案沟通、需求讨论、技术实现细节沟通等

5) 每周至少开一次开发组会议,进行每周开发进度穿透及周总结,并进行下一周开发工作部署,对一周中遇到的问题处理情况进行回顾,当周的问题必须当周清0.

6) 开发人员在开发过程遇到技术瓶颈时,可以在开发群需求帮助,也可以及时将问题反馈给开发负责人,开发负责人可以通过自行解决、开发组会议沟通解决,如果需要总部产品部支持的可以建立对应的沟通群进行交流沟通

(3)  开发团队进度汇报和开发进度日常跟踪

1) 对于多团队、多开发人员每天汇报自己当天任务完成情况及下一天计划安排(结合开发详细计划表中自己的任务,并需要更新每个任务的完成百分比)

2) 开发负责人每天需按详细开发计划每个任务完成的时间节点及开发每个任务实际完成情况,如果存在偏差需找对应的开发人员进行沟通,使用加班等方式来完成,如果对后续重大里程碑造成重大影响的,需采取补充资源等措施进行解决,并需向项目经理及时反馈风险情况,及时采取措施

3) 每天跟踪需形成跟踪记录,并结合风险跟踪表一起使用,跟踪过程中需及时进行风险预警

4) 开发负责人每周需进行开发周汇报,汇报时需汇报当周开发任务完成情况,汇报里必须包含开发人员的计划开始日期和计划结束日期,实际开始日期和实际结束日期,对于延误的任务需用红色底色标记出来,并注明补救措施

(4)  做好开发过程需求控制

1) 编写的开发需求文档必须是明确、清晰,并注意版本管控,需求调整时需标注

调整内容

2) 需求文档一定需要客户确认签字,未明确的需求禁止开发,减少返工带来的损失及防止需求范围扩大

需求变更时必须让客户签署《需求变更单》,未签署的变更需求和未得到确认的变更需求禁止开发

 

 

 

 


图标赞 114
114人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!