2)研发流程和交付物
前后端将需求原型转为开发,需要哪些流程和步骤,这些流程和步骤中会有哪些交付物产生?
注意事项
需求文档的一致性:
前后端开发人员以及测试人员需要确保需求文档(由产品经理提供)的一致性,这份文档贯穿开发的始终,要避免出现需求理解偏差。
【需求文档】- 1)需求文档版本管理:意义在于不能随便改,保持严谨严肃性。
- 2)需求文档更新通知:意义在于需要及时通知到相关人员。
- 3)需求文档更新记录:意义在于需要记录需求文档的更新记录,以便追溯。
技术方案的最优解:
前后端开发人员需要根据需求文档,制定出最优的技术方案,并提交给技术负责人(比如技术总监、CTO)进行确认。
【技术方案】- 1)技术方案需要包含技术选型、技术架构、技术难点等。
- 2)技术方案需要经过技术负责人的确认,确保方案的可行性和合理性。
举例来说:我们有一次做新需求,前后端准备把新需求的状态和代码融合到现有流程中去,但是技术负责人认为这样会破坏现有流程,最终确认 Copy 一份现有流程,再进行融合(原流程保持不变)。后来,新需求上线几个月后就下线关闭了,我们意识到技术负责人是对的,这样确实能保证现有流程的稳定性,且大大降低了开发难度和工作量,避免了潜在的风险。
开发过程中的风险把控:
前后端开发人员需要关注开发过程中的风险,比如需求变更、技术难题、项目延期等,并及时向技术负责人汇报,确保项目的顺利进行。
【项目风险一览表】- 1)需求变更:需要及时与产品经理沟通,确认需求变更的合理性。
- 2)技术难题:需要及时与技术负责人沟通,寻求解决方案。
- 3)项目延期:需要及时与技术负责人沟通,调整项目进度。
切记:工作中一定要留痕,记录下所有沟通记录,以便追溯。
你不提前暴露风险,那风险的责任人就是你。
代码质量的保证:
前后端开发人员需要关注代码质量,确保代码的可读性、可维护性和可扩展性,并及时进行代码审查和优化(可以定期组织【代码学习借鉴会议】)。
- 1)代码审查:需要定期进行代码审查,确保代码质量。
- 2)代码优化:需要及时进行代码优化,提高代码性能。
- 3)代码规范:需要遵循代码规范,确保代码风格一致。
测试的全面性:
前后端开发人员需要关注测试的全面性,确保测试覆盖所有功能模块和边界条件,并及时修复测试中发现的问题。
【测试验证报告】- 1)功能测试:需要确保所有功能模块都能正常运行。
- 2)边界测试:需要确保所有边界条件都能正常处理。
- 3)性能测试:需要确保系统性能满足需求。
上线前的准备:
前后端开发人员需要关注上线前的准备,确保系统稳定运行,并及时进行上线后的监控和优化。
【上线流程审批】- 1)系统部署:需要确保系统部署成功,并确保系统稳定运行。
- 2)上线监控:需要确保上线后系统能够正常运行,并及时修复上线后发现的问题。
- 3)系统优化:需要及时进行系统优化,提高系统性能和稳定性。
项目总结:
前后端开发人员需要关注项目总结,总结项目过程中的经验和教训,为后续项目提供借鉴。
- 1)项目总结报告:需要总结项目过程中的经验和教训,为后续项目提供借鉴。
- 2)项目改进建议:需要提出项目改进建议,提高项目质量和效率。
将需求原型转化为前后端开发实现的过程中,涉及多个环节,包括需求分析、架构设计、开发实现、测试和上线等,每个环节都有对应的交付物。下面是详细的流程和步骤,以及在每个步骤中会产生的交付物。
1. 需求分析阶段
需求评审阶段
关键词:需求确认、需求澄清、需求原型分析。
简单来说,就是参与者需要清晰知道 “做什么”,“怎么做”,以及“为什么这样做”。
- 目标:将业务需求原型转化为系统功能需求,明确项目的核心需求、功能模块、技术要求等。
流程与步骤:
需求确认与调研:
- 与产品经理、业务人员沟通,了解产品需求,进行需求澄清。
- 深入分析需求原型,确保技术团队对需求的理解准确。
需求文档编写:
- 交付物:
- 需求规格说明书(SRS)或功能需求文档:详细描述系统的功能、用户场景、数据流、输入输出等。
- 用例图:描述系统的用例和交互。
- 流程图或业务流程图(如 BPMN):展示业务流程或功能流程。
- 交付物:
系统设计初步沟通:
- 与架构师和团队讨论技术可行性,评估是否有特殊技术需求或限制。
- 确定使用的技术栈、开发框架、第三方服务等。
交付物:
- 需求规格说明书(SRS)
- 用例图、业务流程图
- 初步技术选型报告
2. 系统设计阶段
技术评审阶段
关键词:系统架构、数据库设计、接口设计。
简单来说,就是开发人员需要明确 “系统架构如何搭建”,“数据库如何设计”,以及“前后端接口如何定义”。
- 目标:基于需求分析结果,设计系统架构和数据库结构,确定技术细节。
流程与步骤:
架构设计:
- 进行系统架构设计,确定是否采用微服务架构、单体架构等。
- 确定模块划分、服务间通信方式、第三方依赖(如消息队列、缓存等)。
数据库设计:
- 设计数据库架构(如表结构、索引、关系等),确保高效的查询和存储。
- 数据库设计文档,包括 ER 图(实体关系图)、表结构说明等。
接口设计:
- 设计 RESTful API 或 GraphQL 接口,定义接口规范、请求参数、响应数据格式等。
- 设计接口文档,并与前端团队沟通,确保对接无误。
安全性设计:
- 设计身份认证与权限管理方案,如 OAuth 2.0、JWT 等。
- 考虑数据加密、日志审计、安全防护措施等。
性能与扩展性设计:
- 设计系统的负载均衡、缓存、分布式架构等性能优化方案。
交付物:
- 系统架构设计文档
- 数据库设计文档(ER 图、表结构设计)
- API 接口文档(接口规范、请求/响应示例)
- 安全设计文档(身份认证、权限管理、加密方案等)
- 性能设计报告(负载均衡、缓存、扩展性等)
3. 开发阶段
需求开发执行阶段
关键词:编码、单元测试、调试。
简单来说,就是开发人员需要根据需求文档和系统设计文档进行编码实现,并进行单元测试和调试。
项目管理者需要对项目开发周期、进度、质量进行监控和优先级以及人员等方面进行协调。
- 目标:根据需求和设计文档实现系统功能,进行编码和单元测试。
流程与步骤:
开发任务分配:
- 将开发任务按模块、功能分配给各个开发人员。
- 确定开发周期、里程碑、优先级。
编码实现:
- 按照设计文档进行系统功能实现。
- 开发时要注重代码的可维护性、效率和安全性。
单元测试与调试:
- 开发完成后,进行单元测试,验证各模块功能是否正常。
- 使用调试工具和日志系统帮助定位和解决问题。
代码评审与版本控制:
- 在 Git 等版本控制系统中进行代码提交和版本管理。
- 进行代码评审,确保代码质量符合团队标准。
交付物:
- 代码仓库(Git 仓库)
- 单元测试报告
- 代码评审记录
4. 测试阶段
测试阶段
关键词:集成测试、性能测试、安全性测试。
简单来说,就是测试人员根据 需求文档 对开发人员提供过来的系统进行测试,确保系统功能符合需求,并且系统稳定、性能良好、安全性高。
这里需要注意的是,如果 需求文档 中途有变更,一定要通知测试人员,确保测试人员能够及时更新测试用例。否则测试人员一般会把变更后的需求当做 BUG 来处理,从而造成不必要的麻烦。
- 目标:验证系统功能是否符合需求,并确保系统的稳定性和性能。
流程与步骤:
集成测试:
- 将各个模块进行集成,验证不同模块间的协作是否正常。
- 测试系统整体功能,确认各项需求是否得到满足。
性能测试:
- 进行负载测试、压力测试等,确保系统在高并发、高负载情况下的稳定性。
- 进行数据库性能调优,确保查询和存储高效。
安全性测试:
- 进行安全漏洞扫描、数据加密验证等,确保系统的安全性。
验收测试:
- 进行验收测试,确认产品是否符合需求规格,进行最终确认。
交付物:
- 集成测试报告
- 性能测试报告
- 安全性测试报告
- 验收测试报告
5. 部署阶段
部署阶段
关键词:部署环境、数据迁移、监控日志。
简单来说,就是将系统从开发环境部署到生产环境,确保系统能够稳定运行。
这里需要注意的是,部署过程中一定要做好备份,以防万一。同时,部署完成后,一定要进行系统监控和日志配置,以便及时发现和解决问题。
- 目标:将系统从开发环境部署到生产环境,确保系统能够稳定运行。
流程与步骤:
环境配置与部署:
- 配置生产环境所需的服务器、数据库、缓存、消息队列等。
- 部署后端服务到生产环境,并配置 CI/CD 管道。
数据迁移与备份:
- 如果是系统迭代,需要迁移历史数据,确保数据一致性。
- 配置数据备份和恢复机制。
系统监控与日志配置:
- 配置系统监控和日志记录,确保能够实时监控系统健康。
- 配置报警机制,及时发现系统问题。
交付物:
- 部署文档(包括服务器配置、环境变量、数据库配置等)
- 数据迁移计划与执行记录
- 监控与日志配置文档
6. 上线与维护阶段
上线与维护阶段
关键词:上线监控、版本迭代、问题修复。
简单来说,就是系统上线后,进行日常维护和优化,确保系统持续稳定运行。
记住:部署、上线、维护,是软件开发过程中的三个重要环节,一般来说,是需要经过 流程审批 的,而不能随意进行。
- 目标:系统上线后,进行日常维护和优化,确保系统持续稳定运行。
流程与步骤:
上线监控:
- 监控系统性能,及时发现和修复潜在问题。
- 跟踪用户反馈,持续优化系统。
版本迭代与更新:
- 根据反馈和新需求,进行版本更新和功能迭代。
问题修复与优化:
- 处理线上问题,进行热修复和性能调优。
交付物:
- 版本发布记录
- 维护日志(包括问题修复、性能优化等)
总结
在将需求原型转化为后端开发过程中,主要的流程包括需求分析、系统设计、开发实现、测试、部署和维护等,每个阶段都有对应的交付物。在实际操作中,每个阶段的交付物不仅帮助团队协作,还可以为后续的迭代与优化提供必要的支持。