大型项目的敏捷项目管理探索—即通研发管理组Eagleluo2敏捷大会感受2•21.业界在敏捷方面已经在前面跑了2.路已经有人走了,我们可以借鉴3.敏捷管理不可复制,需要自己找寻4.增强我们继续探索的信心•Agileisnothingspecial–不是发明,而是发现–聪明的人做正确的事•程序员修炼之道,不变的规则–破窗理论:Fixproblemsassoonastheyoccur–DRY原则:Don’tRepeatYourself•如何变得敏捷–工具:故事墙、度量–管理:经理融入团队、充分授权–人:技能提升、更多地学习•如何推行敏捷–从一个团队开始–搞定高层和底层敏捷大会内容——大师的话4DoOneThingWell…(DaveThomas)•从试点到推广•容易产生的障碍–过度承诺:导致不可持续的速度、忽视学习–人的惰性:导致精细管理、过多控制–专业化:导致单一职能,效率重于价值–部分完成:迭代结束时牺牲质量或功能不全–缺少自动化测试:导致独立的测试团队,非跨职能•跨越障碍–合理承诺:增强可视性合理估计,减少遗留问题–人员培养:培养scrummaster、引入持续集成等实践–改变组织:分解项目管理职能、转变团队结构敏捷大会内容——诺基亚-西门子QQ团队怎样做敏捷尝试呢?61.总结教训和过程,不断完善2.选取适合的实践,深化实施3.大团队,小规模,化整为零4.技术改造,控制整体流程,保证执行我们曾经的设想与尝试78责任部门/岗位:即时通信产品部名称:HUMMER项目团队组织架构图编制日期:20060802版本:V1.0项目组内部项目组外部GPM项目总监(jackieliao)Sponsor(wangmeng)日历(baal)通讯录(link)BasicIM(eagleluo)开发负责人(lyy)测试负责人(joyhu)行政支持(jackiechen)客服(superalex)产品体验评审组(enya)技术架构评审组(lyy)产品负责人(hata)QA(jojosun、aliceli)运营开发(daofengluo)营销推广设计中心(thomas)配置管理(lionzhang)专利(lindayan)安全中心(benjurryji)运营负责人(king、marsli)营销负责人(xixiguo)管工(given)UI负责人(enya)法务(allen)主面板/登录/Sidebar/来消息模式(nikitapeng)联系人管理/buddylist/TIPs/个人资料/状态切换/隐私(xcongliu)AppCenter(nikitapeng)广告/营销/提示信息(summerliu)统一通讯/AllInOne/短信通(touch)群/讨论组(shockingli)自动升级/安装/卸载/下载(kenhuang)语音视频/文件传输(malliang)帐号体系/Email帐号(touch)消息管理器(summerliu)统计上报(kenhuang)性能(sober)模式(hata)安全(robinren)VAS(nikitapeng)防骚扰(vivachen)无线(witon)VOIP(simonli)国际化(lilian)Email(hgt)Qzone(sherry)市场调研(nicoleyang)9•建立以PM为主导,包含产品、设计、前后台开发和测试的featureteam,快速进行产品迭代开发通讯录FeatureteamGUIFeatureteamEmailFeatureteam无线Featureteam日历featureteamserverClient产品UI交互测试QAFeatureTeamVoIPfeatureteam评审组体验设计评审组技术架构评审组AppfeatureTeam……BasicIM最早的FeatureTeam设想我们现在的方案1011Pack助理总经理melyin总经理Xiaochaozhang产品总监Band技术总监Lyy技术总监Touch产品组组长Javali业务需求接口人Edisonchen基础需求接口人Jessciadou运营需求接口人Summerliu应用平台组组长Wisonlee应用扩展组组长Loriwu业务组组长Shockingli底层开发组组长Quixxie界面开发组组长Yitan测试总监Joyhu黑盒测试一组组长vickychen黑盒测试二组组长Kennyzhou测试开发组组长Karen测试组组长Florazhang交互设计组PMAlinapanQQ项目QAjackgongServer中心PMEagleluoIM产品中心PMQQHummer团队结构示意图(2009.7)QQ团队QQ2009项目经理IM产品中心产品总监IM产品中心技术总监测试中心总监IM产品组IM应用平台组互联网业务SNS项目组(mikiexu)长连接项目组(samleyluo)功能团队n功能团队1功能团队2底层开发组、界面开发组、架构联合组、性能联合组功能测试、自动化测试IM应用扩展组拍拍项目组群项目组FeatureTeam(包括产品、开发、测试)业务部门相关的产品、开发、测试...功能团队(包括产品、开发、测试)组织结构和项目结构12研发模型图示1、产品规划2、业务发展2、用户反馈3、领导意见产品需求池需求评审需求需求开发功能测试QQ版本规划合入当前开发版本每周需求Review需求短线版本1短线版本2长线版本13以需求为中心,整合产品、开发、测试等资源•版本节奏:–一个季度一个大版本,两个小版本,基本保证一个月一个版本,每个季度初PM确定各个版本的发布时间。–每个版本初始阶段都可以看作一个空箱子,随着需求的不断开发、合入,逐渐形成各个版本的Featurelist。•需求管理:–需求的收集放入日常工作中–由产品统一管理和规划,并输出到TAPD需求池–需求的合入:需求合入前需要通过合入申请,进入系统测试前都可以申请,如果没有评估通过,那么放入下一个版本中。研发流程——需求为中心研发模式——流程示意图14高层、团队、市场、运营需求评审会待开发的需求List(创意、业务、运营反馈….)最高优先级需求产品负责人按小组划分各小组迭代特性List各开发团队进行需求开发最大的问题是什么?15整合、分解、再整合161717(人员上)化整为零,(版本需求上)聚沙成塔”。hummer架构的特点,实现了每个FT可以独立负责一个大功能模块每个FT都有自己的开发、产品、测试,形成小的项目团队组织架构标识虚拟团队构成,营造成员归属感;小团队独立运作,灵活敏捷FeatureTeam介绍(1)1818团队特点Team测试Leader成员1负责人UI测试研发管理团队建设业务驱动SERVER总监PM成员2产品产品leader成员3技术LeaderFeature产品其它设计测试开发–建立以产品特性为核心的自转型团队–包括产品、开发、测试等角色的完整团队–角色分工,但不明确的团体性职责–团队负责人,承担对外接口、团队建设与考核等驱动工作FeatureTeam介绍(2)低耦合的模块架构-QQ项目敏捷开发的基石19全新的架构设计:支持良好的扩容性和可维护性;组件化IM基础功能模块:代码耦合度低,模块间的依赖性小,插件化业务模块:降低业务和QQ的耦合度,自升级、自维护,满足业务需求的快速滚动应用层IM层内核层VAS•协议、网络、文件系统•独立的增值业务模块•登录、聊天、群、分组•传文件、表情、通讯录20多流开发-QQ项目敏捷开发的支柱20HummerMultiStrProj_IntHummerMultiStr1.10ProjHummer1.10_MagicProjHummer1.10_Wireless_PlusProjHummer1.10_VietnamProjHummerMultiStr1.1ProjHummerMultiStr1.5ProjHummerMultiStr1.15ProjHummerMultiStr1.2Proj当前开发流特性开发流合入主线申请分流测试验证每周Rebase•对独立的特性建立单独的开发子流•每个DE有1-n条开发流•保持一个主流,并规定时间窗发布•完成单元测试的开发子流,合入主线随时间窗版本发布多流开发——全新的协作模式21•多流模式给开发团队带来的好处:多流支持多版本并行开发,满足产品的多版本规划产品功能、业务模块可以独立开发,满足业务部门需求的快速滚动适当规避风险,项目的节奏更可控开发任务间相互依赖性小、程序设计耦合度低,降低代码占用的冲突,提高开发资源利用率TAPD-QQ团队敏捷开发的助力2223对外发布形式——灰度发布的补充•博客版本–关键技术或产品体验的小范围尝试•试用版本–版本发布前的用户试用,收集问题,覆盖式测试•小版本–开发周期在一个月左右,功能相互独立的(主要是业务支持),一般不动app和底层•大版本–开发周期在1季度左右,为满足较大功能或重构的版本,涉及app和底层修改回顾241.总结教训和过程,不断完善2.选取适合的实践,深化实施3.大团队,小规模,化整为零4.技术改造,控制整体流程,保证执行2525QQ的发布节奏还是跟不上业务的需要;QQ自身的功能发展缓慢;用户市场扩大化,产生国际化需求;用户飞速增长,性能问题越来越重要;……我们存在什么问题?问题都解决了吗?26