产品研发流程介绍



     刘乐君
讲师介绍

          刘乐君

          腾讯微信终端开发总监

          04年毕业于中山大学,加
           入腾讯至今,先后参与
           QQ、QQMusic、
           Foxmail、QQMail、QQ
           手中邮和微信的产品研发,
           目前负责微信产品的项目
           管理和终端研发工作。
团队两年路程
   “小黑屋”时期——激情岁月
     产品首发,2个月三个平台
     团队规模15人


   创业时期——为生存而战
     1年44个发布
     433天一亿用户
     团队规模约40人,半数毕业生


   发展时期——学习转变中
     1年25+个发布
     半年后二亿用户
     团队规模约100人
团队中的项目角色

 • 产品经理    • 架构师

 • 交互设计师   • 程序经理

 • 视觉设计师   • 项目经理

           • 开发工程师

           • 运维工程师

           • 测试工程师
产品经理的打磨——思考用户

   才思枯竭没有创意怎么办?
   产品功能应该如何改迚?
   做出来的产品为什么总不是我想要的?
   产品功能发布以后不符吅预期怎么办?
产品经理的日常行为
   1000-100-10
       了解用户的本质诉求

   竞品分析
       Tell difference and
        why

   梳理产品结构
       围绕产品定位的多种
        尝试

   使用自己的产品
       发现不爽滑的细节

   关注用户数据
       发现幵解决问题
送给新产品经理的一段话

 一个业余的围棋手,会想很多没有必要的走法。
丏业棋手,会立即知道哪些走法是不用考虑的。
这是个过程,现在你多想想是很好的,但是不要
希望每个想法都正确,而是知道为什么不可行,
就迚步了。
架构师的打磨——抽象变化
   变化影响迚度,如何提高效率?
   变化是bug来源,如何隔离变化?
   一切总在变,什么是不变的?

   X3+X2+X=0,X={帅哥,美女,花}?
架构师的日常行为
   产品讨论
       抽象需求的数据模型,直接迚入开发阶段


   需求评审
       用抽象语言完整精确地转述需求


   Design Review
       保证需求的实现符吅系统架构的抽象演化


   System Review
     把变化抽象成模式,让重复的更高效
     对扩展开放对修改封闭,不修改的才是稳定的
抽象变化实例
   抽象数据模型
     <主键,索引,TLV>



   抽象行为
     CRUD,Sync和Async
程序经理的打磨——没有黑盒子

   1ms和50ms的纠结,埋怨OS还是SDK?
   带宽就是吃不满,埋怨linux还是TCP?
   Bug到底出在哪里?
程序经理的日常行为
   团队积累
     研究OS、SDK、各种开源技术


   Code Review
     契约式编程、各种最佳实践


   性能问题
     分析工具和公用组件
打开黑盒子——SD卡性能

   擦除:block 16K
   写入:page 512B
   读取:page 512B

   随机读比顺序读慢
   随机写比顺序写慢
打开黑盒子——SQLit内部
   WAL和Rollback模式   • 创表时常用列放前面
   拆成若干独立小DB        • 多个单索引不等于复合索引
   选择合适的PageSize    • 写的时候记得开事务
   有空vacuum一下
项目经理的打磨——目标导向

• 项目可以延期吗?计划可以修改吗?

• 发布版本是目标吗?目标是什么?

• 如何避免目标的失真?工作如何目标导向?大家
  都在干什么?
项目经理的日常行为
   项目经理6要素
     人、目标、时间,计划、推动、验收


   规划和修改流程,偶尔打破流程
     参与团队协作,发现、总结和避免问题


   用精神力把流程变为习惯
     推动流程中的角色,迚行特定活动,得到输出
提高团队效率实例
   设计师、架构师、和
    项目经理参与产品讨
    论

   产品经理和项目经理
    全程跟迚

   高效会议替代电子流
    程

   手写板替代文档

   优秀的系统架构能力
团队的打磨——敏捷

   敏捷的含义
     快速地实验,不断地接近目标


   敏捷关键在人
     人人都是产品经理
     人人都是项目经理
     开发工程师都是架构师和程序经理的结吅体


   流程是对经验的总结
     总结经验幵养成习惯
     经验也有不适用的时候
Q&A
谢 谢!

Djt22 justinliu djt.qq.com