快生活 - 生活常识大全

管理五字法激活微服务


  随着敏捷、精益、持续交付方法论的深入人心,虚拟化技术与DevOps文化的快速发展,传统的单块软件架构逐渐无法适应互联网时代对软件的要求。在这一背景下,微服务架构逐渐流行,它提倡将单块架构的应用划分成一组小的服务,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,互相协调,互相配合,为用户提供最终价值。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境。譬如,Z集团公司将互联网的创新成果与企业党建工作深度融合,自主研发搭建了党建信息化平台。该平台采用业内先进的微服务开发架构,根据"先试点,后推广"的实施策略,选取各方面相对成熟的"支部生活"模块进行微服务试点探索,为平台的最终实现提供了有力保障。随着用户需求个性化,以及产品生命周期变短,微服务架构将是未来软件架构朝着灵活性、扩展性、伸缩性及高可用性发展的必然方向。
  无论何种新技术,都必须借助人的一系列智力活动才能得以实现,而且团队协作共同达成目标已成为常态。绝大多数的问题归根结底是人的问题,因此在面对综合素质高且思想异常活跃的团队时,必须高度重视人力资源管理。笔者将人力资源管理与微服务新技术、产品型项目管理有机结合,形成了一套激发小微技术团队高绩效的管理方法——小、快、通、产、学"管理五字法",从尊重个体出发,在发挥个人主观能动性的前提下,激活个体,进而激发团队活力,提高微服务团队整体绩效水平成为试点探索的核心所在。小——保持合理的团队规模和结构
  保持合理的团队规模和结构,是高绩效微服务团队的基础条件。微服务团队的组织结构必须是跨功能的、强搭配的DevOps开发运维一体化团队,理论上团队人数在10人左右。人数太少,不能独立地完成团队职能;人数太多,其运作速度又会有所下降。微服务架构是按照业务的功能进行划分,每个单一的业务功能成为一个服务,每个服务对应一个独立的团队,团队里包含业务需求人员、用户交互UI设计师、后台服务开发人员、测试、DBA、运营和运维人员。在内部业务服务需要升级或者变更时,团队内的各角色成员进行沟通即可,而不需要进行跨团队沟通,这大大提高了沟通效率。
  由于是试点探索,整个中国石油党建信息化平台(以下简称"平台")项目组没有先期可借鉴的经验,在第三方咨询公司的建议下,试点微服务团队按照功能实现所涵盖的全部角色进行人员配置,包括业务咨询顾问、前端工程师(PC端、移动端)、开发工程师(PC端、移动端)、测试工程师、代码管理工程师等共计13人。团队组建后,第一时间明确了试点的目标,明晰了各小组负责人、各方职责以及沟通机制,组建了目标明确、步调一致、各司其职、沟通高效的团队组织架构。实践证明,因为是小微团队,体量适中,而且大家各有所长、分工明确,因而打破了组间屏障,极大降低了日常沟通成本,行动更加灵活方便,作战能力大大提升。快——采用敏捷开发模式和基层设施的自动化
  敏捷开发模式和基层设施的自动化,是团队高效率的保障。敏捷开发以需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视化、可集成和可运行使用的特征。云化及自动化部署等技术极大地降低了微服务构建、部署和运维的难度。团队要依据微服务不断进行流程变革,通过应用持续集成和持续交付,实现生命周期管理和基础设施自动化,可以大大缩短微服务交付时间,提升微服务交付效率。
  试点启动前,为了保证在规定时间内达成试点目标,与平台项目组就试点范围进行了边界明确。
  首先仅选取"支部生活"中的"支部党员大会"作为试点功能,并且明确业务方案以设计初期的功能方案为依据,后期不断迭代;同时采用敏捷迭代开发方式,随着新业务需求的梳理和输入实现功能的迭代;需要调用其他模块的内容,包括组织、人员、角色、通用组件、UI标准等先用挡板隔离,即用敏捷方式先实现本微服务的主体功能,提高"自消化"能力,同时梳理与其他微服务间的接口,但接口数据先采取模拟数据处理,后期待其他微服务实现后再打通接口间的调用关系;过程文档采用简化便捷的处理方式,并做好知识管理,做到边试点、边总结、边规范。
  整体而言,本次试点的设计方案、功能开发、文档标准都采取了敏捷思维,保证了快捷高效的微服务开发节奏。通——创建良好的沟通环境
  良好的沟通环境可以保证和谐共赢的微服务团队氛围,提高团队凝聚力和战斗力。不论团队内外,传递信息效果最好、效率最高的方式是面对面的交流。微服务的实现,同样要求业务人员和开发人员通力合作,高频、高效沟通,避免出现信息递减以及期望偏差。因此把微服务的用户故事打印出来挂到白板上,让团队所有成员铭记于心,此举会大大强化团队对微服务的边界认识。虽然随着团队的反思和学习,用户故事有可能会发生变更,但只要让团队形成共识一致的意见,让业务、开发和测试达成一致,清楚了解要做、能做、不能做的事情,沟通即为有效,因为实现了既"沟"且"通"。
  由于微服務团队包括各种角色的人员,用同一种"语言"说话,是任务达成的基础,因此高效沟通显得尤为关键。试点团队主要从三种途径畅通沟通渠道:(1)从地域上,指定团队联合办公区域,布置白板、投影、视频工具等沟通辅助工具,要求所有成员集中办公,实现沟通交流无缝、无地域对接;(2)从信息上,反复强调试点的大目标和各小组的阶段目标,功能设计方案若有变更或增减,将在第一时间进行变更通知,保证团队所有成员接收到的信息是对称透明的;(3)从心理上,营造一种张弛有度、自我管理、自我学习的团队氛围,通过谈心、充分授权、信任尊重、团队建设等管理方式,让大家在和谐快乐的工作氛围下实现目标一致、无障碍沟通、共同进退。
  产——小步快跑,快速持续产生交付物
  微服务开发迭代周期不能太长,要防止集体"画大饼",重点是关注每日和每周的工作目标,而且要倒逼团队产出,进而推动整个项目目标的实现。团队交付周期必须短且可评估,上线成为家常便饭,随时迭代,而不是过去短则数月、长则一年的大爆炸模式。形成有规律、有质量的团队交付节奏,并让软件系统时刻处于可发布状态,用关键产出驱动开发,提高团队的交付能力。
  要实现上述目标,做好项目的过程管理十分重要。首先组织团队各小组对工作计划进行详细讨论,达成共识,明确清晰的工作计划和工作产出物;其次要求各小组长每天下班前对工作计划进行刷新细化,达到工作进度公开透明,掀起组间竞赛的目的。当功能开发进入白热化阶段,各小组甚至将每天的工作完成情况用数据呈现在白板上,充分调动大家的工作积极性,达到非常好的效果。
  由于强调有效产出,试点团队总结的文档资料为后期平台功能推广打下了坚实基础。最终形成的文档资料除功能实现的相关成果外,还有两类工作成果,一类为工作产出物,包括需求规格说明书、详细设计说明书、业务流程图、数据库设计、测试用例以及梳理的接口、调用矩阵、界面字段等;另一类为过程跟踪产出物,包括工作计划、工作日报、问题清单、会议纪要等。学——持续改进,重视学习和反馈
  持续学习,打造高绩效的微服务团队,微服务架构才能持续发展下去,保持旺盛的生命力和活力。因此,增强学习能力,在试点团队内营造善于学习、勇于实践的浓厚氛围显得至关重要。
  試点中,团队成员坚持开放、创新、共享的思想,学以致用,指导实践,推动工作,做到既把学到的知识运用于实践,又在实践中增长解决问题的新本领。通过自己学、组内学、团队学,促进团队成员共同学习、共同成长、共同进步,提高团队的综合作战能力,逐步成长为全功能团队。
  作为试点团队,为后续微服务团队当好先遣团是首要任务。因此在每天下午的工作例会上,除了简要汇报工作进度外,各类主题分享成为重中之重,包括各小组遇到的困难、需要协调解决的问题、资源调配、经验总结、业务知识、开发知识等等。这样不仅能在最短时间内暴露问题,而且快速提升了团队成员发现问题、解决问题、总结汇报、沟通表达、自主学习等能力,同时为试点总结会提供了大量宝贵的素材。
  总之,微服务架构催生出的微服务团队,既要有理论指导,更要量体裁衣,坚持符合企业文化和项目自身特色的运作。而一支高绩效微服务团队的打造,既要灵活运用"小、快、通、产、学"管理五字法,还需要其他配套机制的有力补充,例如团队负责人的团队管理、组织协调能力,团队成员快速响应、沟通学习的能力,以及企业的项目精细化管理水平、项目的总体管控能力等。
网站目录投稿:涵易