阿里紫衫架构师推荐 --如何做好跨团队协作项目?

2024-08-22 00:08

本文主要是介绍阿里紫衫架构师推荐 --如何做好跨团队协作项目?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言


  背景

入职阿里从双十一会场前端PM到平台项目等PM大大小小的担任了不少,自认为是老司机,不想还是踩了坑,这段时间好好地回想了下这次项目中的一些问题,根据个人经验整理了这篇文章,方便后续的回顾以及能帮助有同样问题的人。

  

定义

先简单定义什么是跨团队协作项目:跨团队协作是指在给指定时间约束规范内,不同部门与部门之间、个人与个人之间的协调与配合完成一项明确目标的独立的工作任务。

大体上来说一次项目的的流程分五个阶段“项目启动”->“需求评审”->“开发”->“测试(验收)”->“发布上线”,中间涉及的角色有“PD(and 业务)”、“PM”、“设计”、“开发”、“测试”,具体的流程可以看下图:

  项目流程图

在项目的运转中,从最开始来自业务或产品的规划,到需求对焦和分工明确,以及推进到最终上线整个环节中PM的角色都扮演者非常重要的一环,技术PM不仅仅需要了解项目管理的大致流程,也需要了解业务和技术方案,在中间才能推进项目的顺利落地。

后续的章节会重点围绕聚合后的“项目初期”、“项目中期”以及收尾来展开,重点描述下在这个3个大阶段都要做哪些工作和重点注意的事。

项目初期


  KO立项

一个项目的发起,最终过滤层层环节到达你身上时,至少从战略上是的得到大家的认可(当然还是需要保留自己的主观意识做好判断),在项目启动前做为PM需要先了解这个项目,为什么做?目标是什么?可能要涉及哪些角色?作为项目PM,如何自己都搞不清楚前面三个问题,那大概率这个项目做不好,理好些问题后才能更好的去协同资源同时明确目标和项目组的同学一起拿到结果。

在明确了解清楚这3个问题后,第一项要做的就是KO立项。

可能有同学眼里KO看到的和上图一样,一次项目KO非常重要,通过KO可以把关联的同学聚集到一起,分享项目背景和目标形成共识,另外还可以明确人员边界分工和里程碑方便后续的项目驱动通过这个仪式感让参与的同学感谢存在和认可更强,那一次KO需要准备哪些东西:

  • 梳理项目涉及的角色和关联域负责人线下达成一致,明确子域接口人

  • KO PPT 准备(“背景描述”、“目标价值”、“项目介绍”、“产品架构”、“技术架构”、“里程碑”、“人员分工”等)

  • 正式会议邀约,讲价值打鸡血

  需求评审

KO目的是让大家对这个项目有第一印象和共识,通过需求评审能让大家深入的了解项目,一次项目需求评审可能有2次以上,第一次初稿的评审会有产品思考不全的地方,作为PM最重要的除了了解需求本身外需要定制需求截止时间,让需求能快速的评审确定,便于后续的流程正常运行,需求评审需要多了解细节多问为什么,跳开技术的身份去思考业务,带着技术的身份去思考可实施性。

评审完成后最重要的环节除了任务和优先级拆解,以及资源、成本估算和风险评估外,最最重要的就是按照KO大的里程碑将时间节奏计划产出,后续的项目推进将重点围绕这份时间节奏执行。

  任务拆解

在需求评审完成后,就需要开始做子域的划分和任务拆解,避免如上图一团乱麻发力的问题,任务拆解在项目管理中也有类似术语叫做“工作分解结构”(WBS),即把一个项目,按一定的原则分解,项目分解成任务,任务再分解成一项项工作,再把一项项工作分配到每个人,直到分解不下去为止,在做项目分解时可以顺便做好需求优先级的拆解,业务或产品的需求总是一块比较大而全的东西,在实际实现时没法做到一次性完美落地,因为做好优先级的拆解才可以分期按版本完成,优先级的拆解可以按功能的关联度和是否是主流程以及项目目标和业务价值作为判断依据,另外任务拆解的力度尽量要细避免因为过粗导致评估不足和忽略影响整个项目进度的问题,任务拆解中我们可以按照子域和项目中的功能模块来拆解,这样有对比参照,任务拆解完毕后可以通过甘特图等工具来管理。

另外在实际的项目中,由于涉及的人员比较多,绝大部分任务是由子域负责人在拆解下去,所以在这里明确好角色和分工职责非常重要,角色界定不清晰也是时常影响到我们项目落地的一大因素。

  技术评审

任何一个项目技术评审均是必不可少的一环,在需求和任务拆解完毕后,分域做技术评审拉通上下游依赖做正式的review,可以发现在任务拆分或需求评审中所没考虑到的细节,在前期将风险扼杀在摇篮中,另外在做技术成本预估时一定要加上buffer时间,这个buffer时间可以按照以往的经验作为一个系数乘上去如0.3,因为方案评审并不能做到所有的细节一次性考虑周全,不要将自己的加班时间算进去,这本身已经是项目风险。

技术评审需要哪些内容:

  • 业务流程图(基于业务视角你所在域的环节和用户操作流程)

  • 技术框架图(架构或分层,可以了解到你所在域和周边依赖)

  • 方案设计

  • 任务拆解&时间轴

  • 上下游依赖&风险

项目中期


  交流沟通

项目管理中沟通是最重要的一个环节,启动后最大的障碍就在交流沟通上,一个完整的项目会拆分为很多子域,每个子域间会有依赖,在信息传达和处理中可能因为沟通不及时或者理解偏差导致方案设计的问题,如何把这些人聚集在一起项目室是个比较有效的解决方式,可以通过项目室在对项目执行过程时,保持项目成员的沟通的有效性确保方案设计和理解一致。

建立周会和日会机制,按项目的不同阶段运行,在开发开始运行时可以通过周会的方式,一周同步下当前进度和风险以及下周重点计划,确保项目按期执行,运行至中后期时需要开始日会机制,加强沟通交流,方便风险和问题及时同步,会议的主要内容可以按以下方式:

  • 今日主要做的事&整体进度

  • 是否有风险和依赖

  • 明日计划

  • 昨天风险是否接触

  风险控制

风险的主要来源很多,比如前期需求理解不一致、项目计划不合理或需求变更等等,风险是无法完全避免的,但我们可以通过历史经验或项目管理来提前发现、最小化风险,整个项目最核心的也就是这部分,风险的大小和暴露的早晚会直接影响到这些项目是否顺利,因此对于项目中暴露的问题需要保持足够的敏锐度,遵循墨菲定律,另外加强沟通、管理和交流保持信息获取的有效性。

项目收尾


  测试问题推进

在项目进行到后期收尾阶段,最大问题就是issue的fix和测试覆盖是否齐全的问题,每个问题的修复可能都会暴露出新的问题,问题修复的越早,留个测试和项目的时间也会越足,因此在开发联通提测前需要开始测试用例的梳理和评审,确保测试流程覆盖度,在测试开始后需要关注问题的推进和修复,尽量确保问题日清。

  项目验收

‍项目的最后一个环节就是验收,验收方式分2种,一种为组织会议预演,另外一种为推进产品(业务)和视觉验收(走查),第一种比较容易理解,即申请正式的会议拉上关联项目组成员和业务同学做产品功能的预演,确保产品和业务理解一直以及功能完善,第二种则由产品和业务以及设计同学,分别以各自的域走查,确保视觉还原、产品逻辑、产品文案的一致性。

另外最重要的一点是项目方案如果涉及到新老版本交替时,一定要考虑到二者的兼容和对用户的影响以及预案,避免影响用户,如果是个block change那需要确保足够的稳定,用户为第一优先级。‍

常见误区


  • 过分悲观 or 乐观:这两者均建立在对项目掌控度不够的情况下,会导致对于项目的判断失误,过分悲观会影响到项目组同学的积极性,反之会导致风险暴露在后期。

  • 忽略细节:即墨菲定律,凡是觉得可能出错或小概率出错的事一定会出错,当review发现问题时需要深入到细节中了解和推进,避免问题最终暴露在线上。

  • 信息断层:跨团队项目中涉及的人较多,信息传递中因为不同的同学判断和思考方式不一样,导致最终你得到的信息可能是有误或缺失的信息,需要多问多了解。

  • 考虑不全:每个人抛开项目PM都有自己原本的角色,比如前端、某某平台开发,导致自己站位思考会下意识从当前域去看,丢失了其他面,作为项目PM需要抛开自己的身份,站更广的域思考。

  • 不敢取舍:项目启动后因为外部各种因素感染导致项目的需求上变化,针对明确的项目目标和计划需要做好取舍,了解需求的本质,敢于说不。

  • 前松后紧:不合理的规划会导致项目陷入这种状态,导致提测时问题过多,开发未自测质量差等情。

常见问题


下面的问题主要是个人见解不一定是最佳实践,有好的其他答案欢迎回复。

  上下游不配合如何推进?

  • 换位:每个人每个Team都有自己规划好的事,当我们换位思考了解当前依赖的团队目前的规划和方向是怎样,是否有周边其他方向一致的合作伙伴,才能更和的切入推进和合作

  • 利他&共赢:这2个词可以合成一个,做好一件事的前提条件一定是大家方向目标一致,这样才能长期正常的运作下去,只有利他才能形成良好的运作模式,抛开屁股意识尤为重要,避免短期利益,另外在找上下游寻求帮助前一定要提前想清楚他要什么?我能给什么?想不清楚建议在重新review是否找对人和做对事。

  • 借势:分2种情况,第一和当前大团队或者集团大的方向目标捆绑,跟着大的背景驱动下前行;第二向上寻求帮助,个人的力量和可以调动的资源总归有限,要学会向上管理寻求帮助

  如何做好项目风险把控?

  • 项目开始前:风险往往发生在你所未关注的视角或者依赖的上下游部分,一个复杂的项目涉及的人和方案会较多,不同域方案不一样一个人的精力总归有限,这种情况下拆域化简明确分工职责和接口人尤其重要,细分好域明确子域同学职责

  • 项目中:”沟通“项目协同管理最核心的事,和子域负责人保持信息沟通交流,定期(日、周会等方式)对焦进度和风险,才能提早发现问题,另外避免只把自己局限在自己这块域上,更深入的了解细节和技术方案才能比较好推进,方案评估时对于时间节奏buffer才能掌控自如,以及提前发现风险和推进解决

  • 项目上线时:作为项目最后一环较多问题主要为之前忽视偶现难排查问题以及未考虑应急预案,遵循墨菲定律,你所未在意的问题可能成为压倒这个项目的最后那根稻草,上线前多预演和准备好check list以及预案手册

总结


任何一件事或项目光靠一份文档是无法保障稳定的,还是需要更多自己沉淀、积累以及跟进,做的多了跟的紧了才能确保没问题和沉淀自己的方法论,事在人为。

这篇关于阿里紫衫架构师推荐 --如何做好跨团队协作项目?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094678

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建