原文
为什么难以找到真正的需求(问题)?
- 一人一世界,人很难通过猜测去了解另一个人的真实想法
- 人会忽略很多习以为常的东西,这是生理本能,因为精力要用在和生存关系紧密的事务上
拆分
进行合理的抽象分层,在顶层时不宜过度关注细节。
应以用例为基础,每次的迭代目标是实现哪几个用例。
用例:谁在怎样的情境下通过怎么样的操作完成了怎样的需求,是如何完成的。
- 用例表示的需求,一个或几个用例达成一个目标,描述了用户如何使用某项功能来达成目标。
- 描述要实现的各用例应完成的全部功能。
- 优先完成核心(主干)内容。
- 大目标拆分后,逐个完成让实现者有奔头。
让变更发生在早期
尽早提供给用户一个可运行的系统,让其通过使用提出问题。(让变更发生在付出成本还比较低的时候,用尽量低的成本去验证不确定的内容)
业务第一
技术应服务于业务,它是做好业务的手段,好软件的根本在于业务理解。
架构
将构成总系统的各部分子系统按逻辑划分独立,用约定的接口和协议将他们结合。
如果一个系统承担的功能太多,考虑将其拆分成多个子系统。
如果几个系统间相互依赖的关系很复杂,考虑引入中间对象来负责对接以降低复杂度。
先考虑要做什么(哪些功能),不考虑具体实现(怎么做):定义接口
网友评论