Page 50 - 《软件学报》2021年第5期
P. 50
1274 Journal of Software 软件学报 Vol.32, No.5, May 2021
A) 自治团队:高度自治的团队(团队是松散耦合的,每个微服务团队可以独立开发和交付)
对应建议——建议 1:在开发中加入相关的会议(如技术协调会议、依赖协调会议等),以保证项目整体的同
步性.
1) 赞成:77%的问卷参与者认为,微服务中自治团队的设计是“必要”或“非常必要”的.同时,4 位专家都认为
团队需要自治权,并且自治权体现在每个微服务团队都需要有独立的工程代码、数据库和主机等资源.但其中
一个专家提到:“微服务团队的自治权依赖于服务拆分,服务拆分不合理可能导致不同团队之间有业务交叉,团
队可能需要依赖其他团队的数据或资源,因此会影响到团队的自治权”.
团队的自治权使得不同团队之间的通信需求减少,过少的团队间的通信可能会在项目的整体同步性上带
来问题,因此框架中建议在开发中加入相关的会议,以保证项目整体的同步性.超过半数以上的问卷参与者“同
意”或“非常同意”这个建议.
2) 不同的意见:仅有 3%的问卷参与者认为自治团队的设计是“不必要”的.而对于建议 1,有 15.4%的问卷参
与者认为这条建议的重要性“一般”,且仅有 1.5%的参与者持“不同意”的态度.
3) 结论:构建自治团队的必要性及其建议有效性得到了证明.
B) 通信:良好的沟通结构(团队内部和不同团队之间有效的沟通)
对应建议——建议 2:在不同团队间加入团队协调员,保证不同团队间信息传递的正确性.
1) 赞成:73.8%的问卷参与者认为,微服务中通信结构的设计“非常必要”.4 位专家也认为,微服务的通信结
构设计是至关重要的.通信结构主要从同步通信和异步通信两个角度进行设计.一位专家指出:在实际开发中,
同步通信方式包括站立会议、项目周会、线上会议等;异步通信可以借助一些通信平台,可以支持开发人员在
平台上抛出问题、汇报进度和提出需求等.同时,在正式开发前,公司向开发人员讲解业务需求并合理分配任务,
可以减少在开发过程中因为任务不清等问题造成的沟通成本.
文献中认为,公司需要在不同团队之间加入团队协调员.75.3%的问卷参与者同意该建议.2 位专家同意该建
议,但他们也表示在目前的微服务开发中,并没有专门设置团队协调员的角色.当不同团队间出现问题时,一般
由项目负责人或团队负责人进行解决.
2) 不同的意见:除 15.4%的问卷参与者认为通信结构的设计必要性“一般”外,没有问卷参与者认为通信结
构设计是不必要的.针对建议 2,6.2%的问卷参与者不同意这条建议.一位专家指出:在开发中并未发现团队间出
现问题,因此团队协调员是冗余的.
3) 结论:构建微服务开发组织中通信结构的必要性及其建议有效性得到了证明.
C) 组织结构:与微服务相匹配的组织结构(合适的团队数量和规模,完善的人员配置等)
对应建议——建议 3:每个微服务的团队人数建议在 6~7 人左右.
1) 赞成:78.5%的问卷参与者认为,微服务的实际开发中组织结构的设计是“必要”或“非常必要”的,并且所
有的专家均表示,良好的组织结构有利于提高微服务所带来的收益.但是,适用于所有公司的团队规模设置并不
存在,公司需要根据具体的项目规模以及划分的微服务数量来决定团队规模.团队人数的设置可以根据项目工
作量、商业价值和安全角度等方面的评估进行制定.
70.8%的问卷参与者“同意”或“非常同意”每个微服务团队人数标准为 6~7 人.同时,3 位专家认为,每个团队
的人数应该在 10 人以内,而 6~7 人是实际开发中微服务团队可以参考的人数标准.
2) 不同的意见:对于组织结构的设计,并没有问卷参与者选择了“不必要”或“非常不必要”.同时,仅有 3.1%
的问卷受访者“不同意”建议 3,1 位专家对该建议保持中立.
3) 结论:组织结构设计的必要性及其建议有效性得到了证明.
D) 组织文化:构建优秀的组织文化
对应建议——建议 5:公司需要考虑团队成员对微服务的接受程度,这种接受体现在团队成员是否愿意放
弃原有的工作团队,而有意愿进入新的微服务团队.
1) 赞成:形成良好的组织文化,有助于团队的发展和项目的开发交付.接近 50%的问卷参与者选择了“非常