Page 51 - 《软件学报》2021年第5期
P. 51
崔海涛 等:面向微服务架构的开发组织适应性评估框架 1275
必要”,27.7%的问卷参与者选择了“必要”.所有的专家认为:无论使用单体架构或微服务架构进行开发,组织文化
的设计都是至关重要的.一位专家指出:“团队成员间频繁的沟通、积极地分享工作和问题以及定期举办活动,
都有助于形成良好的组织文化”.
微服务中,组织文化有一个特点,即可能存在部分开发人员不愿意离开单体开发团队,因此,公司需要考虑
团队成员进入微服务团队的意愿.55.4%的问卷参与者同意该建议,且一位专家指出:其公司会根据开发人员的
经验、工作意愿以及繁忙度等因素来挑选人员构建团队.
2) 不同的意见:没有任何一个问卷参与者认为构建良好的组织文化是“不必要的”或“非常不必要的”.建议
5 与实际开发中的实践存在一定的差异,13.8%的问卷参与者不同意该建议,且 3 位专家对该建议保持中立,在他
们所进行的微服务开发中,并未出现开发人员抗拒进入微服务团队的案例.
3) 结论:微服务中组织文化设计的必要性得到了证明,建议 5 的有效性得到了的证明但与实际的微服务实
践存在一定的差异.
E) DevOps:与 DevOps 紧密结合(实现持续监控,持续交付等)
对应建议——建议 4:每个微服务团队都应该包括开发人员、运维人员和质量保证人员.
1) 赞成:问卷结果表明,70.8%的问卷参与者认为微服务中需要 DevOps,4 位专家也均认为微服务中
DevOps 的应用是必不可少的.
DevOps 的一个特性是打破开发和运维之间的壁垒,因此使用微服务进行开发,框架中建议每个微服务团队
都应该包括开发人员、运维人员和质量保证人员.本条建议在问卷参与者中支持率为 69.2%.4 位专家认为本建
议可行,他们指出,开发人员、运维人员和质量保证人员在微服务团队中是肯定需要的.但在实际开发中,可能一
人会扮演多个角色.例如,开发人员和运维人员可能同时也是质量保证人员.
2) 不同的意见:有少数的问卷参与者(4.6%)认为,微服务并不需要 DevOps.同时,有 9.2%的问卷参与者不同
意建议 4.
3) 结论:DevOps 的必要性及其建议的有效性得到了证明.
F) 开发人员:由经验丰富和技能娴熟的开发人员构建团队
对应建议——建议 6:开发前,对开发人员进行技能和微服务基础知识的培训;
对应建议——建议 7:确保每个微服务团队中都包含有微服务开发经验的人.
1) 赞成:除 15.4%的问卷参与者选择了必要性“一般”的选项,剩余的所有问卷参与者(84.6%)均认为,团队需
要由经验丰富和技能娴熟的人员进行构建.4 位微服务领域的专家表达了支持态度,但他们也强调,团队中所有
成员均是技能娴熟且经验丰富的当然是最优解.但在实际开发中,这点并非是必需的或者很难实现.团队中一定
会存在新手开发人员或未接触过微服务开发的人员,公司在开发前对这些人员进行培训,同时确保每个团队中
有 1~2 个有微服务开发经验的人即可,这也证明了框架中建议 6 和建议 7 的有效性.
团队中不可避免地会加入新手开发人员或没有微服务开发经验的人员,因此框架中建议对团队中的人员
进行技能和微服务基础知识的培训,以避免在开发中陷入一些常见的技术问题.同时需要确保每个微服务团队
都有微服务开发经验的人,以在开发过程中帮助团队成员解决遇见的问题.各有 80%的问卷参与者同意建议 6
和建议 7.
2) 不同的意见:仅 3.1%的问卷参与者不同意建议 6,6.2%的问卷参与者不同意建议 7.
3) 结论:微服务中开发人员的必要性及其建议的有效性得到了证明.
G) 技术/工具:微服务团队合理选择开发工具和技术
对应建议——建议 8:微服务团队需要有对技术和工具选择的自主权,但公司必须给出一个可供选择的技
术和工具的清单.
1) 赞成:90.8%的问卷参与者认为:在实际开发中,每个微服务团队对开发工具和技术的合理选择是“必要”
或“非常必要的”.且 4 位专家表示:每个团队合理地选择开发工具和技术,可以防止技术和工具的过量使用导致
的项目可维护性差等问题.