前言
我们都知道一个软件开发项目需要多个团队分工协作,总体来说就是产品,开发,测试,运维这四个重要团队
- 产品:负责和客户对接,确认需求,明确需求,将需求正确地讲述给开发、测试、运维,及时向大家更新需求变更等
- 开发:一般分为前端开发和后端开发,因为系统级开发一般基于springboot等,做好了前后端分离的准备;以前ASP的开发模式前后端混在一起很难维护,所以现在的前后端分离既容易维护拓展,也使得coder更加单一职责;前端开发一般是设计页面组件等,如何把后端的数据按照需求显示出来,以及如何接受数据通过表单等形式传送给后端;后端一般是对数据做逻辑处理,包括数据持久化等,对用户的一个数据操作,后端要通过DAO(数据访问), DTO(数据传输), VO(视图),也就是web开发的MVC模式做好一个处理
- 测试:在开发阶段过后,前后端要进行联调;这里可能会用到测试团队提供的测试用例进行自测;等开发结束后,要提测,会分一轮测试二轮测试以及冒烟测试(主功能跑通),性能测试等,对测出来的系统可能存在的缺陷要及时向开发汇报,从而让开发及时修复
- 运维:涉及各个环境的购买、维护、部署等;一般而言,环境包括开发环境、测试环境、演示环境和正式环境;每套环境都要部署系统相关的版本,而每个环境的版本在迭代中可能会存在版本号差,但逐渐会趋于一致;运维一般需要进行巡检,这里可以考虑用shell脚本或python进行一些自动化巡检项的定时器设计等
产品
产品需要提供需求规格说明书
输入规范: 包括不同功能模块的划分,每个功能模块涉及导的字段名臣,字段类型,是否必填,是否唯一,是否有认为限制,是否又占位符(默认值),是否有人为校验项,以及提供未通过响应的文案,这里是方便后端做逻辑校验,以及方便前端显示错误提醒
需求规格说明书:
- 概述:包括编写目的,背景,术语说明,法律法规参考资料
- 产品说明:包括产品目标、产品用户、约定说明(需求优先级,页面设计,全局异常等),给出需求范围
- 功能需求:包括配置管理、内容管理、用户管理、版权方管理、版权品管理以及具体功能管理
- 关于管理模块:一般支持列表query,批量导入导出
- 功能模块:根据需求划分
- 非功能需求:兼容性、安全性、速度、并发量等
开发
- 开发包括终端(app,ios),前端,后端
- 一般而言进行迭代初期要进行任务分配,包括系统(后台管理系统、h5系统、公共模块等)的模块功能划分,以及具体的功能细化分工
- 一般来说后端就是提供接口,入参是什么,出参是什么,需要和前端统一好对应的数据格式等
- 这里来说后端一般还涉及到数据库的设计,怎么分库分表,什么字段之类才能满足业务需求之类的,有没有并发需求,哪些需要建立索引优化查询等。。。
- 如果需要和其他公司进行一个接口的对接联调,还需要进行后端的相关沟通
- 前端的话一般涉及到公共模块、公共组件、公共样式,增强复用程度
测试
- 功能测试:冒烟测试
- 提供测试样例,让开发自测
- 非功能测试:安全性、并发量等
- 主要的就是功能测试,主流程要跑通
运维
负责维护接口文档swagger,方便前后端查看
各个中间件的信息例如mysql-rds数据库,mq消息队列,oss文件存储,redis缓存等信息
总结
一个好的项目需要各个团队紧密地分工合作
产品 - 开发 - 测试 - 运维 是密不可分的