开发开始之前要问的问题
每个人都喜欢功能。 如果您的软件无法为他们做些什么,人们就不会使用您的软件。 很多时候,杀手级功能是创建软件的原因。 您有一个要解决的问题,并且对如何解决有一些想法。 在其他时候,您已经有了产品,但是您想要使其功能更强大或更灵活。 当您对新功能有所了解时,可能很难不感到迷惑,但是重要的是不要在没有适当考虑的情况下立即着手开发。 我最近读过史蒂夫·麦康奈尔(Steve McConnell)的Code Complete ,其中包含大量清单,用于检查您的项目需求是否缺少任何明显的漏洞。
受此启发,我整理了列表的大量修改版本以供工作使用。 它相对于我所做的工作(Web开发)更小,更优化。 与为新项目建立需求列表相比,它更侧重于向现有项目添加新功能。
它需要做什么?
- 用户如何与之交互? 它可能具有哪种接口?
- 输出是什么? 向用户显示什么,以什么格式显示?
- 他们为什么需要此输出? 是满足他们需求的最佳格式吗?
- 用户需要什么数据? 系统其他部分需要什么数据?
- 需要哪种输入验证?
- 新功能是否与任何现有功能冲突?
- 这类似于现有功能吗? 新功能比对现有功能的修改更合适吗?
- 它满足用户的所有需求吗? 是否说明了所有用例? 直观吗?
它需要多好?
- 预期的响应时间是多少? 您期望该功能有多快?
- 可接受的响应时间是多少? 您能摆脱它的速度有多慢?
- 需要什么认证? 对于不同的访问级别,功能是否会有所不同?
- 如果功能中断,后果如何? 是否有任何必须保留的数据?
- 您将如何检测错误并从错误中恢复?
要求好吗?
要求是否完整?
- 是否有任何未解决问题的记录?
- 如果满足所有要求,则该功能对用户是否可接受?
- 是否存在仅仅为了安抚某人的要求? 如果发生过多的自行车脱落,那么并非严格需要的要求可能会列入清单。
- 如果满足所有要求,您会为结果感到骄傲吗?
通过确保至少在开始打字之前已经尝试回答了每个问题,几乎可以肯定,比起我全力以赴,通往高质量成品的途径将更快,更愉快。
也许他们也会帮助您。
From: https://hackernoon.com/so-you-want-to-add-a-feature-5e3c5e8b191d