【本文内容摘抄自网络】
① 在软件开发生命周期中,会遇到两个瓶颈。
第一,是在需求阶段和开发阶段之间,针对不断变化的需求,对软件开发者提出了高要求,所以出现了敏捷开发方法论,强调适应需求、快速迭代、持续交付。
第二、是在开发阶段和构建部署阶段之间,大量完成的开发任务可能阻塞在部署阶段,影响交付,于是有了DevOps。
② 软件需求包括3个不同的层次――
业务需求【表示组织或客户高层次的目标】、
用户需求【描述的是用户的目标,或用户要求系统必须能完成的任务】、
功能需求【规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求】。
除此之外,每个系统还有各种非功能需求。
③MVP模式,暂不理解。
④用户故事:从用户角度描述用户渴望得到的功能
INVEST
- Independent(独立性)
可以被单独地开发、测试甚至交付。
有些故事之间会有自然的顺序依赖,但每个部分仍具备单独交付价值。
有些无价值的依赖,我们需要寻找和消除依赖(通常是和其他依赖的故事结合起来取交集,形成一个新的用户故事)。
- Negotiable(可协商)
允许、且需要经过协商。
- Valuable(有价值)
用户故事必须向用户、客户或产品干系人提供一定的价值。
- Estimable(可估算)
可估算的用户故事能够提取任何隐藏的假定和欠缺的验收标准,并且澄清团队对用户故事的共同理解。
- Small(小型)
用户故事应该小到能够在一次迭代中完成。
- Testable(可测试)
可测试的用户故事能够避免造成结构不良、过于复杂或是依赖于其他故事等问题,导致迭代失败。
为了保证无法离开迭代(通过测试)的故事不进入迭代,可以采用“先写测试”的方式。
⑤MFQ,暂不想理解。
⑥思维导图能一定程度地提升团队开发的效率。