工作经验总结

团队管理

 

开发管理

1. 系统联调

场景描述

  当前的智能音箱项目组由 音箱设备端 -> Proxy代理 -> 语音语义及技能 三大系统组成。设备端负责用户语音数据的采集、上传至Proxy端,Proxy负责数据透传,语音语义团队将接收到的音频数据进行解析并实现相应技能。技能按照相反的顺序返回至音箱设备端。目前的现状是整个工作流程不可靠,究竟是哪个环节也都说不清,可定性的定位故障点在Proxy与语音语义环节,至少proxy发送的音频与语音语义接收到的数据是不一致的。整个调试还得三个小组分别派人联调。

 

解决方法

  • 从逻辑上来说应把这三个团队划分明确的边界,对接部分确定明确的输入输出。
  • [ 用户语音(输入) - 智能音箱 - 音频数据(输出) ]    =>    [ 音频数据(输入) - Proxy - 音频数据(输出)]    =>    [ 音频数据(输入) - 语音语义 - 技能结果(输出) ]。
  • 从上述流程可知各团队真正依赖的是音频数据,所以各个环节均应生成相应的音频数据文件,通过 BeyondCompare 等文件比较工具进行差异比较。
  • 各团队对接部分只需确保各自环节的输入输出正确性即可,这样可避免相互的依赖关系。
  • 每个环节均实现打桩数据,即可直接根据已有的数据文件进行本系统模块功能的测试,这样可解决上一环节的依赖。
  • 每个系统均实现单元测试代码,集成测试或系统测试时均可非常方便的实现自动化测试,定位问题故障。
  • 网络通信环节可通过WireShark等抓包工具进行精准分析。

 

配置管理

1. 文件管理

场景描述

  当前项目组中的项目资料SVN既包含项目管理文档、个人工作文档、第三方资料库等。其中个人文档中的工作成果可能包含比较大的第三方类库、资源文件,第三方资料库可能包含一个开发板的系统镜像等,如果将所有数据都归入项目管理使用的SVN库,必然造成版本库文件过大,而且那些私有的大文件对绝大部分人来说是完全不关心的。因此,我认为对于大文件应该单独保存,SVN中只需包含相应大文件的资源链接,用户根据需要可自行下载。这样既保证了数据的完整性,也保证了项目库的简洁性。

解决方法

  • 文件管理应分为大文件管理及小文件管理两部分。因为大文件混杂在SVN、Git等受控库时,初次下载代码时均会下载大量大文件,严重影响下载速率及本地磁盘占用空间。

  • 大文件管理是指安装文件、光盘镜像、大于10M的文档资料等,应通过共享文件、HTTP、FTP下载等方式管理。

  • 小文件管理是指受控的代码、文档、资料、可交付成果等,应通过SVN、Git等方式进行管理。

posted @ 2019-03-13 09:19  {[(沙加)]}  阅读(125)  评论(0编辑  收藏  举报