为何要做需求分析
1) 因为我们做软件本身就是为了满足用户需求。用户需求到底为何,我们需要清楚定义。
2) 需求边界定义的需要。用户需求理清楚了,不代表产品理清楚了。用户需求的满足一定会有行业分工,我们做什么,合作伙伴做什么,需要厘清大家的边界。
3) 架构设计的需要。架构需要切分子系统,需要我们梳理并对用户需求进行归纳与抽象。架构还需要防止过度设计,把简单的事情复杂化。
需求分析过程必然会涉及以下这些内容
1) 我们要面向的核心用户人群是谁?
2) 用户原始需求是什么?最核心问题是哪几个?
3) 已经有哪些玩家在里面?上下游有哪些类型的公司,在我们之前,用户是怎么解决他们的问题的?我们的替换方案又是怎样的?
4) 进而,我们的产品创造的价值点是什么?用户最关注的核心指标是什么?
5) 用户需求潜在的变化在哪些地方?区分出需求的变化点和稳定点。
如果架构师只是被动地接受产品需求不利原因在于两点
1) 用户需求的深层理解是很难传递的
2) 产品设计过程需要架构师的深度参与,而不是单向的信息传递。产品经理非常需要来自架构师的建设性意见
怎么做需求分析
1) 心态第一,心里得装着用户
2) 对问题刨根究底,找到根源需求
3) 在理清楚需求后,要对需求进行归纳整理
需要明确的一点是,当我们说需求的变化点和稳定点时,这是站在我们要设计的产品角度来说的。
产品定义
1) 需要明确产品中有哪些元素,或者叫资源,以及这些资源的各类操作方式
2) 需要对产品如何满足用户需求进行确认
3) 产品定义还需要考虑市场策略,我们的产品如何进入市场,和既有市场格局中的其他主流解决方案的关系是什么样的。
from 《许式伟的架构课》 学习笔记