大部分同学很容易忽视业务需求之外的一些需求,我们称之为跨功能需求(Cross-Functional Requirements, CFR),有时也常被称为非功能需求(Non-Functional Requirements,NFR)。
CFR | 描述 |
---|---|
可扩展性 Extensibility | 是否需要组件化? 是否需要提供一个插件功能,由谁来实施? |
可移植性 Portability | 是否有迁移到另一个数据库产品或操作系统的必要性? |
可安装性和可部署性 Installability & Deployment | 需要提供什么样的基础设施? 需要什么样的安装便利性? 需要支持持续交付吗? 如何回滚或升级版本? |
兼容性 Compatibility | 需要与哪些其他系统集成? 需要遵循哪些其他行业标准? 是否需要考虑现有数据格式? |
可集成性和互操作性 Integratability &Interoperability | 是否需要提供API 或库供其他系统使用?版本管理和升级策略是什么? |
可复用性 Leveragability & Reuse | 是否能够复用企业现有组件/ 库,或者当前组件/ 库是否将被重用? |
可伸缩性 Scalability | 如何根据不断变化的用户量来提高吞吐量? 如何对此进行测试? |
版本化和升级策略 Versioning and upgrades | 版本化策略是什么? 如何跟踪内部/ 外部的版本? 有没有向后兼容的限制? |
可访问性Accessibility | 支持有特殊需要的用户(如读屏) |
本地化和国际化 Localisation & Internationalisation | 对静态/ 操作数据是否有多语言支持? 日期/ 时间/ 货币? 转换和翻译? |
可用性和用户体验 Usability and user experience | 用户体验对这个系统有多重要,在这个过程中会如何运作? 是否有公司的用户体验准则要遵循? 我们是否需要考虑不同的设备/ 屏幕尺寸? |
分布性Distributability | 人们是否能够在特定区域使用该系统,而不会因为地点或距离而受到阻碍? 它能在没有互联网接入的情况下运行吗? 如何同步信息? |
帮助与支持 Help & Support | 需要什么程度的用户文档? 是否需要建立一个教程,提供视频或提供一个帮助和支持团队? 是否需要为培训做计划? |
可配置性 Configurability | 用户或管理员可以配置功能吗? 如何进行配置管理(如文件、用户界面、API 等)? |
支持性 Supportability | 确定用户/ 操作支持的级别,以及将如何支持它们? |
归档 Archiving | 归档什么信息? 何时归档? 如何归档? 谁/ 如何访问这些归档信息? |
可用性 Availability | 是否有可用性目标要求? 需要什么架构来满足这些要求? 是否有特定的日子(如黑色星期五)需要这些? CAP(一致性、可用性、分区容忍度)。 |
容量 Capacity | 是否有任何特定的存储要求? 是否有高峰负荷的考虑? 需要由系统处理的数据量是多少? 有多少用户将同时使用该系统? |
连续性 Continuity | 是否考虑灾难恢复计划? |
数据完整性和一致性 Data Integrity and Consistency | 是否需要数据校验、日志追踪或提供数据恢复机制? |
可维护性 Maintainability | 最大的可容忍停机时间(RTO/ 恢复时间目标)是什么? 是否有预定停机时间的通知要求? 错误页面如何处理? |
监控 Monitoring | 是否有现有的工具和基础设施? 应该衡量哪些业务/ 技术指标? 如何进行监测? 哪些类型的警报是必要的? |
多环境支持 Multiple Environment Support | 理想情况下需要多少/ 哪些环境? 如何配置和管理这些环境? |
性能 Performance | 吞吐量/ 响应时间要求是什么? 需要有计划地进行性能测试吗? 是否需要考虑异步场景? |
弹性和容错性 Resilience & Fault Tolerance | 如果某些外部依赖失效/ 不可用,系统将如何降级? |
可靠性 Reliability | 不可靠的成本是什么? 需要多少成本来保证可靠? |
可审计性 Auditability | 哪些操作应该被跟踪? 必须满足哪些法律或监管要求? |
认证 Authentication | 如何鉴别用户身份? 应该遵循什么标准或使用哪些现有的认证系统? |
授权 Authorisation | 哪些角色和权限是必要的,他们需要访问哪些功能或数据? 谁来维护权限,如何维护和应用权限? |
法律合规性 Legal Compliance | 对数据/ 系统或软件交付过程是否有法律限制? 对发布过程是否有任何限制? |
数据隐私 Data Privacy | 哪些数据应该被加密? 哪些数据对终端用户和操作人员可见/ 隐藏? 开发/ 测试过程中能否使用生产数据?或者如何做生产数据脱敏处理? |
安全性 Security | 需要为安全审计或渗透测试制定哪些流程? 企业的安全准则是什么? 是否有SSL 或VPN 要求? |
参考:
Tech Lead电子书03023-电子书版