PO是product owner,是一个role,负责与stakeholders打交道,提炼stakeholders的需求,按照需求的价值以及紧急程度安排优先级。PO是一个角色,对product backlog负责,通俗地讲,product backlog上的条条目目应该长什么样子,PO都有一个清晰的picture;抽象点讲,每个user story的acceptance criteria对于PO而言是确定的。PO为每个user story设定一个goal,scrum team的工作就是hit the goal,让PO心中所想的那个user story成为现实。
 
PM是product manager,是一个titile。可以由PO或者BSA来冠名,这里讲BSA作为PM的职责。PM负责管理产品的需求和研发。PM往往需要了解PO的需求,把这些需求转化成产品的一个个feature,然后依托其技术背景,与团队一起讨论出实现的可行性方案;(注:这里,PM可能未必要100%地满足PO的需求,在可控范围内,提出一个满足product vision的折中方案,使得product team和product owner双赢)同时,PM是product的管理者,并非people的管理者,所以PM侧重点是产品的特性features的管理与研发,在规范化的控制流程(比如Scrum的框架)下与各个团队功能角色一起工作,管理产品的研发进度,确保产品高效地以及高质量地发布上线。
 
需求的角度看待这几个角色:
Stakeholder <-> PO(关注 businessman 需要什么) <-> PM (关注 用户的需求可以成为Product的features吗,如果是则把user story转化为product features,如果不是则workaround)
 
上述可能有点抽象,为了阐述清楚PO和PM的区别,这里举个例子:
PO提出一个user story:我要一个登录界面供注册用户登录网站(PO脑子里想像的登录界面的样子(Acceptance Criteria)就是很简单的一个用户名输入框+密码输入框+提交按钮的功能性需求)
PM根据这个用户需求细化该注册用户登录界面的feature:1. UI 设计(可能是第一稿):配色,输入框、按钮、链接的风格样式,排版 2.登录功能(存在用户+不存在用户;正确密码和非正确密码) 3. 忘记密码链接和恢复密码的功能 4. SQL注入防范 5. 穷举式攻击防范(验证码)等等。而且,PM还需与技术团队共同商讨实现这些feature的可行性方案、难点,可能存在上线延期的风险等等。feature是对user story的详细化的设计,同时拆分了user story为多个小的story,这些小的story可以在若干个sprint完成。
所以PO是从用户功能的角度提出功能性需求(粗放型),PM则是从产品设计的角度把功能需求细分为多个feature(集约型)并确定实现方案的角色。

项目中PO、PM的职责区分的更多相关文章

  1. java 项目中几种O实体类的概念

    经常会接触到vo,do,dto的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,vo对应于页面上需要显示的数据(表单),do对应 ...

  2. Web API项目中使用Area对业务进行分类管理

    在之前开发的很多Web API项目中,为了方便以及快速开发,往往把整个Web API的控制器放在基目录的Controllers目录中,但随着业务越来越复杂,这样Controllers目录中的文件就增加 ...

  3. Maven项目中的pom.xml详解【转】

    什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url, ...

  4. Jquery和Javascript 实际项目中写法基础-弹出窗和弹出层 (4)

     一.实际项目中有很多如下界面效果.    二.该效果可以归结为弹出窗或者弹出层来实现的,为什么这么说?看如下代码:      <!DOCTYPE html> <html> & ...

  5. 使用SeasLog打造PHP项目中的高性能日志组件(一)

    云智慧(北京)科技有限公司 高驰涛 什么是SeasLog SeasLog是一个C语言编写的PHP扩展,提供一组规范标准的功能函数,在PHP项目中方便.规范.高效地写日志,以及快速地读取和查询日志. 为 ...

  6. iOS-旧项目中手动内存管理(MRC)转ARC

    在ARC之前,iOS内存管理无论对资深级还是菜鸟级开发者来说都是一件很头疼的事.我参 加过几个使用手动内存管理的项目,印象最深刻的是一个地图类应用,由于应用本身就非常耗内存,当时为了解决内存泄露问题, ...

  7. 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架

    一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩展的性太强,每多扩展一部分就意味着需要更多代码,示例和理论支撑.因此,我选择我觉得比较通用的 LOG ...

  8. 谈谈MVC项目中的缓存功能设计的相关问题

    本文收集一些关于项目中为什么需要使用缓存功能,以及怎么使用等,在实际开发中对缓存的设计的考虑 为什么需要讨论缓存呢? 缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源(例如数据 ...

  9. Xamarin.Froms项目中包含的文件

    Clearly, the program created by the Xamarin.Forms template is very simple, so this is an excellent o ...

随机推荐

  1. 【算法习题】数组中任意2个(3个)数的和为sum的组合

    题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...

  2. Hadoop 2.8集群安装及配置记录

    第一部分:环境配置(含操作系统.防火墙.SSH.JAVA安装等) Hadoop 2.8集群安装模拟环境为: 主机:Hostname:Hadoop-host,IP:10.10.11.225 节点1:Ho ...

  3. Java异常处理——如何跟踪异常的传播路径?

    当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序. 可使用printStackTrace 和 getMessage方法了解异常发生的情况: printStackTrace:打印方 ...

  4. Java——@SupressWarnings

    J2SE 提供的最后一个批注是 @SuppressWarnings.该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默. 背景:J2SE 5.0 为 Java 语言增加了几 ...

  5. 手写实现ArrayList & LinkedList

    微信公众号:程序媛的非程序人生 关注可了解更多资讯.问题或建议,请公众号留言; 1.手写实现ArrayList     2.手写实现 LinkedList       3.LinkedList的数据结 ...

  6. (Python基础)最Low三级菜单

    #-*-coding:utf-8-*- #_author_: Keep #三级菜单 menu = { '中国':{ '广东省':{ '广州市':{ '海珠区':{}, '荔湾区':{}, '越秀区': ...

  7. 使用Feign调用服务的问题

    最近在搞微服务的东西,系统A提供了一个服务,定义方式: @RequestMapping(value = "/hasSuberList", method = RequestMetho ...

  8. java异常——五个关键字(try、catch、finally、throw、throws)

    一.try.catch.finally常用组合 try{ xxx }catch(xxxException e){ e.printStackTrace(); } try{ xxx }catch(xxxE ...

  9. 什么是pyc文件,Python

    pyc文件就是 Python 程序编译后得到的字节码文件 (py->pyc).pyc文件一般由3个部分组成:最开始4个字节是一个Maigc int, 标识此pyc的版本信息, 不同的版本的 Ma ...

  10. dubbo . dubbo Please check registry access list (whitelist/blacklist) 错误

    dubbo Please check registry access list (whitelist/blacklist) dubbo服务调用provider失败.解决办法: 再consumer的服务 ...