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