about blog github

28 Dec 2023
软件交付流程tips

创建用户故事

在这个阶段,产品负责人根据市场研究和用户反馈,撰写出详细的用户故事和需求。例如,对于一个在线购物平台,可能会有这样一个用户故事:作为一位购物者,我希望能通过我的社交媒体账户登录,以便快速进行购物。这个故事会详细描述登录的流程,预期的用户体验以及任何业务规则。产品负责人将这些故事添加到jira等敏捷项目管理工具中,确保整个团队对需求有一个共同的理解。

故事排序和冲刺组织

开发团队将根据项目的整体规划,对这些用户故事进行优先级排序。然后,他们会组织敏捷冲刺,通常每个冲刺持续2至4周。在每个冲刺开始时,团队成员会集合讨论,决定本次冲刺将完成哪些故事,并对任务进行分配。冲刺计划不仅要考虑故事的重要性,还要考虑团队的工作能力和可用资源。

代码提交到版本控制系统

开发人员在本地完成代码编写和初步测试后,将代码提交到版本控制系统,如git。为了确保代码的整洁性和团队协作的效率,他们会遵循一定的提交规范,例如,每次提交都伴随着清晰的信息描述和相关故事的标识。此外,github平台上的pull request机制使得代码审查变得规范和高效。

自动化服务器构建和测试

每当代码被推送到远程仓库时,jenkins这样的自动化服务器会触发构建流程。它会编译代码,并运行预先定义的测试套件,比如单元测试。此外,代码覆盖率工具会确保足够的代码被测试覆盖,而sonarqube则从多个维度检查代码质量。

构建成功后的存储和部署

一旦构建和测试流程成功完成,软件会被上传仓库中。随后会被自动部署到开发环境中,开发人员可以在此环境中进行集成测试和基本的用户体验测试。

多环境下的独立功能测试

在隔离的测试环境中,每个新功能都会被独立测试。这些环境模拟了生产环境的配置,以确保测试结果的准确性。这一步骤帮助团队发现与现有功能的潜在冲突和不兼容问题。

qa环境中的功能测试

在qa环境中,qa团队会进行一系列更严格的测试,包括压力测试、安全测试和用户故事的验收测试。这些测试确保了软件不仅满足功能需求,而且性能稳定,安全性高。

用户验收测试环境中的最终验证

软件通过qa测试后,会被部署到用户验收测试环境中。在这里,代表最终用户的利益相关者会对软件进行测试,以验证软件是否符合商业需求和用户体验预期。

根据发布计划部署到生产环境

在产品经理确定发布计划后,通过测试的软件将按计划部署到生产环境。这个过程中,可能采用功能开关来控制新功能的上线,以及金丝雀发布和a/b测试来减轻风险,逐步对所有用户开放新功能。

生产环境的监控和问题处理

软件上线后,sre团队将使用prometheus等工具,对生产环境进行持续监控。一旦发现问题,团队会根据预先设定的策略对问题进行分类和处理,保证服务的稳定运行。



LEo at 00:12

about blog github