Taobao practice-liyu-qcon
description
Transcript of Taobao practice-liyu-qcon
响应变化
适合听众
1 大型研发团队(百人以上)
2 直接用户体验和在线服务3 以创新为核心竞争力的产品研发
是什么促使我们做出改变?
使命感
4000
8000
12000
16000
20000
2005 2006 2007 2008 2009 2010
注册会员: 3.7亿
在线商品: 8亿
每日UV: 6千万/天每日PV: 16亿/天成交金额: 20亿/天百万就业岗位/年
PV 全网成交
中国互联网广告市场
危机感
52%
2% 5%
7%
8%
10%
18%
百度 新浪 谷歌 搜狐腾讯 网易 淘宝 其他
2008年
2006 2007 2008 2009 2010
61106
170207
321亿元
41%
7%2% 5%6%
11%
7%
22%
2006 2007 2008 2009 2010
61106
170207
321
中国互联网广告市场百度 新浪 谷歌 搜狐腾讯 网易 淘宝 其他
2009年
亿元
危机感
32%
12%2% 4% 5%
8%
7%
30%
2006 2007 2008 2009 2010
61106
170207
321
中国互联网广告市场百度 新浪 谷歌 搜狐腾讯 网易 淘宝 其他
2010年
亿元
危机感
Think business, Not Projects
按时完成项目?
高稳定性,高可用性?
怎样让产出更符合客户期望?
怎样在市场中保持垄断的竞争优势?
Think business, Not Projects
运维 研发
产品
市场
运维
研发
产品
市场
换一个角度看世界
What businees?生态圈在消耗完免费资源后进入以规模化和差异化为核心的竞争循环
规模化的竞争者必须及时进化,否则就会被边缘化.
新入者和被边缘化的竞争者不断尝试,以重新获得对有限资源的掌控.
偶尔出现新技术新规则引领的市场
抢夺免费资源或占领新市场短迭代,快速上线,尽快让业务看到结果关键词:效率
场景一:开创期
抢夺免费资源或占领新市场短迭代,快速上线,尽快让业务看到结果关键词:效率
场景一:开创期
2-6 Weeks
1day
经过优先级评定的Product Backlog
Sprint Backlog(Xplanner)
增量提交可上线的产品
PlanMeeting
ReviewMeeting
DailyMeeting
策略一: 迅速普及Scrum.统一思路和做事方法,减少摩擦; 增强交流,产品经理进入对应的研发团队.
策略二: 开发运维发布策略:缺陷容忍,一票否决
开发&自测
预研
发布
效果评测
开发
A测试
预发环境
B测试
回滚 分发,冒烟,监控
正式主干开发
发布前代码冻结
测试环境
预发布环境
生产环境
沙箱环境上线评审
缺陷容忍,一票否决
已经成功的产品迅速发展壮大,以获得垄断的竞争优势关键词:规模化
场景二:拓展期
场景二:拓展期
已经成功的产品迅速发展壮大,以获得垄断的竞争优势关键词:规模化
团队A
产品A 应用团队引擎团队算法团队
产品团队
运维团队
应用A
引擎A
算法A
产品团队
运维团队
应用B 应用C
基础引擎
基础算法
引擎C 引擎C
<20人 50人 >100人
算法B
以规模化和差异化为核心的拓展方式
产品
架构
PM
Team
15日 30日 15日 30日
月度PK会
业务需求
技术方案
估算
Plan Review详设
开发
测试
发布
实现方案
策略三: 动态资源分配. 解决不同的产品线间,线上维护与新功能开发之间存在资源争用.
1 Sprint保持统一的节奏。2 大项目划分里程碑1,2,3,插入到每个Sprint中
算法
引擎
应用 Sprint 1 Sprint 2 Sprint 3
Sprint 1 Sprint 2 Sprint 3
Sprint 1 Sprint 2 Sprint 3
Time Line
大项目PM 日常PM
产品 运维
月度会 月度会
策略四: PM培养.解决跨团队需求,一个产品经理面对N个研发团队带来的协调沟通成本.
策略五: 架构师从研发中拆分,形成独立团队.
业务线架构师启承上启下的关键作用
应用A
引擎A
应用B
引擎B
... ...
...
...
纵向架构师
横向架构师
R1( r1,r2)R2( r1,r2,r3)R3(r3)
产品
r1r2r3
月度会前,业务线架构师除了整体考虑产品框架和技术方案,更要将跨团队的需求重新整合打包,转化成非跨团队的项目,减轻团队后期的沟通协调压力。
策略六: 环境分离; 包管理; 自动编译开发阶段持续集成,测试发布阶段自动打包传递
SVN Build
测试
Yum
Daily Build
Check in Build
QA Build
测试QA Build
Dev QA PE
发布
A
A
D
R
开发
开发
Bugfix
ABSMail
DEV SCM OPS QA PE
在稳定平台,保证生存的基础上,不断创新以获得新的竞争优势关键词:差异化
场景三:稳定创新期
场景三:稳定创新期
在稳定平台,保证生存的基础上,不断创新以获得新的竞争优势关键词:差异化
策略七: 平台化.各产品间公用业务组件, 需求分层,统一架构,降低耦合性,平台定期重构.
前端
后端
平台
应用A引擎A
算法A
产品A
应用B 应用C
基础应用,基础引擎,基础算法数据, 通讯, 存储
引擎B算法B
展现
应用运维
产品B 产品C
基础运维
>1000人
策略八: 统一变化入口,平台更稳定,创新更迅速
双月会(项目需求)+双周会(日常需求)+赛马(创新)
30日 30日PlanReview
PlanReview
30日
双月会
双周会
Scrum Scrum
双周会 双周会
TrunkR
A A A
合并分支
开发分支
RA
A A
前端 稳定主干 随时发布 二次回归
后端 主干开发 分支管理 一次回归
Trunk R
A A A日常分支
项目分支
A AR A AR
平台 同步主干 无分支 持续集成
Trunk 1
Trunk 2
Build
DailyBuild All UT -> P1 ST -> P1 FT
(P1─P4)FT ->(P2─P4)STnew
feature
策略九: 适应不同团队的研发模式
策略十: 各职能部門工具打通.进一步自动化,解放生产力.
SVN Hundson
Rviewboard
SEC Review
DeployboxToast
DBA Review
YUM/MAVEN
项目
日常测试单 发布申请 生产变更需求
Depend OPSfree
NOC监控中心
自动部署
应用服务器管理包依赖关系
自动化测试平台
包管理
编译
安全审核
SQL审核
findbug,checkstyle
流程管理平台
工具策略: 自建而不是购买, 已有工具间数据打通,而不是重新打造完美的工具平台.
通过工具间的数据传递促使流程及报表自动化.
策略十一: 组建跨部門的横向协调小组
成本小组 (CDN升级,搜索瘦身,去IOE...)
稳定小组 (故障预防,应用检测,系统智能保护...)
速度小组 (页面优化,TCP优化,web server替换...)
用户体验小组 (UE平台,产品线用户体验报告...)
发现身边一切可以改进的机会,并将其变成真正的价值
END
杭州站 · 2011年10月20日~22日 www.qconhangzhou.com(6月启动)
QCon北京站官方网站和资料下载 www.qconbeijing.com