这几年工作室也做了不少项目了,从最开始的兵荒马乱天天赶ddl,到现在虽然也乱,但乱中勉强还带了一丝秩序,算是有了一些提升,遂总结分享一下。同时这两年AI火的一塌糊涂,我们也在尝试将AI融入到开发过程当中,在一些场景下可以很大的提高效率,但也还有很多不完善的地方,也提出来以供参考。

本文主要分享了工作室项目开发的经验和流程,包含了从最开始的需求沟通到最后的项目运维以及迭代的整个生命周期,其中有一些是工具,有一些是方法论,还有一些是开发框架,希望能给大家有所帮助,如果有错误的地方,也欢迎大家批评指正。

当然,纸上谈兵终觉浅,我们也不能空泛的光讲一些理论的东西,最好还有一个真实的项目可以作为切入点,以此为例来进行介绍。正好最近在打“AFAC2025挑战组-赛题四:智能体赋能的金融多模态报告自动化生成”的比赛,结合上其它的项目有一些要做报告生成平台的需求,觉得正好可以把这个比赛作为一个项目来做,而且这个项目涵盖的也比较多,平台涵盖了前后端,报告生成又涵盖了AI,虽然没有包含所有的产品形态,但是大致该有流程都是有的。

在真正开始分享之前,温馨提示,其实工程项目开发不难,就是特别杂,涉及到的知识点、工具和框架非常多而已,需要花时间去了解,但真的不难。

项目开发流程总览

整体来看一个项目的完整开发流程大概分为以下几步:

  1. 甲方/需求方(后面统称甲方)提出需求
    1. 输入:甲方带着一张嘴就来了;
    2. 输出:各种跟甲方的沟通记录(会议录屏、录音、文档等资料,一定都要留存);
  2. 产品经理整理需求形成产品需求文档并评审
    1. 输入:跟甲方的沟通记录;
    2. 输出:各方(甲方,产品,UI,架构,前端,后端,测试和算法)讨论确认无误后的产品需求文档(模板样例);
  3. UI设计师设计画初版的原型图并评审
    1. 输入:产品需求文档;
    2. 输出:各方(甲方,产品,UI,架构,前端,后端和测试)讨论确认无误后的UI原型图;
  4. 架构师进行系统架构的概要设计并评审
    1. 输入:产品需求文档+UI原型图;
    2. 输出:各方(产品,架构,前端,后端,测试和算法)讨论确认无误后的系统架构设计方案;
  5. 开发工程师进行技术方案的详细设计并评审
    1. 输出:产品需求文档+UI原型图+系统架构设计方案;
    2. 输出:各方(产品,架构,前端,后端,测试和算法)讨论确认无误后的技术方案;
  6. 测试工程师进行测试用例设计并评审
    1. 输入:产品需求文档+UI原型图+系统架构设计方案;
    2. 输出:各方(产品,架构,前端,后端,测试和算法)讨论确认无误后的测试用例表;
  7. 需要联调的开发工程师之间进行接口定义
    1. 输入:产品需求文档+UI原型图+系统架构设计方案+各个系统的技术方案;
    2. 输出:需要联调的各方讨论确认无误后的接口文档;
  8. 正式开始开发写代码
    1. 输入:产品需求文档+UI原型图(for 前端)+系统架构设计方案+各个系统的技术方案+测试用例表+接口文档,
    2. 输出:能够实现跟接口文档严格对齐的各个系统的代码;
  9. 系统之间进行联调
    1. 输入:未联调的各个系统的代码;
    2. 输出:能够实现产品需求文档所列功能并且开发工程师(前端,后端和算法)自测能够通过所有测试用例的代码;
  10. 代码上线评审
    1. 输入:完成联调的各个系统的代码;
    2. 输出:各方(架构,前端,后端,测试和算法)讨论确认无误后的各个系统的代码;
  11. 发布测试环境并提测
    1. 输入:讨论确认无误后的各个系统的代码+测试服务器+测试环境+测试域名+测试账号;
    2. 输出:各方(甲方,产品,UI和测试)体验确认无误后的各个系统的代码;
  12. 验收通过后发布生产环境
    1. 输入:体验确认无误后的各个系统的代码+生产服务器+生产环境+生产域名;
    2. 输出:用户操作手册+交付清单+甲方签字的验收报告;
  13. 观察线上日志并进行系统监控
    1. 输入:定时监控日志和各种接口访问是否正常;
    2. 输出:监控报告和接口测试报告;
  14. 系统优化重新提需
    1. 输入:甲方又带着一张嘴和产品使用体验就来了;
    2. 输出:各种跟甲方的沟通记录;