项目过程管理

项目过程管理

1. 项目所需要的文档(需要归档)

  • 需求文档(需求评审时的问题列表)
  • 技术文档(技术评审时的问题列表)
  • 排期文档
  • 开发文档(记录开发过程中遇到的难题和解决方案)
  • 测试文档(测试提供UT报告和压测报告)
  • 风险点(列出项目风险点并做好预案)
  • 上线时的checklist
  • 算法/服务维护列表
  • 算法/服务过程中的问题记录(包括问题本质和解决方案)
  • 算法的输入、输出记录

2. 需求评审

需求评审之前,先仔细看一遍需求文档,做什么事情心里大致有个概念。具体来说需要明确以下几点:

  • 需求的目的是什么?
  • 需求相对于产品来说是否合理?
  • 考核指标是什么?
  • 是需要重新开发还是复用现有应用?
  • 需求的量级如何?
  • 需求实现后对产品产生怎样的影响?

以上有些问题对于一个开发来讲是有点超出范围了,但是对于一个合格的项目负责人来说是的确要思考的问题。只有从业务需求本身思考需求,才能将需求做的更好。

需求评审时,在理解需求的基础上,进一步确认,并将还存在的问题当场提出,需要得到产品同事的立即回复。问题可以列在需求的问题列表里。

如:

序号 问题 答复
1 需求的目的是什么? 提高日活
2 考核指标是什么? CTR

3.技术评审

明确了需求之后,要确定所需要的技术栈,再从架构、模块方面考虑技术设计。

3.1 明确技术栈

比如,一个完整的推荐系统,需要哪些技术栈:

  • 大数据相关:hadoop、spark、hive
  • 机器学习相关:ml、tensorflow
  • 算法:cf、svd、rank、filter
  • 算法服务实现:java、spring cloud、redis
  • 实时流数据处理:flink、spark streaming、storm
  • 数据分析:python、hive sql

3.2 明确子系统划分

以上用到的技术栈是怎么划分在各个子系统的,它们之间是怎样协作的,这是要考虑的第二个问题。

推荐系统可以划分为以下子系统:

  • 离线算法
  • 实时算法
  • 算法服务

将以上子系统整合起来,形成整体框架。画出框架示意图:

同时,划分清楚子系统后,要明确子系统之间的交互和协作。

3.3 明确与外部系统的交互

一般通过暴露接口的方式对外提供服务,那么就得明确接口的参数定义和结果返回,且要与调用方明确接口。

序号 接口 输入 输出
1 Map getRecRsByUserId(String userId, String businessId, String sceneId); String userId 用户id,String businessId 业务id,String sceneId 场景id 推荐结果对象

3.4 技术评审时的问题列表

在评审时,技术设计人员需要一一回答评审过程中参与评审的人员提出的问题,并记录在表中,无法回答的,需要线下进行解答。无重点技术问题和难点时,技术评审通过。

序号 问题 答复
1 FTRL实时实现流程? 参见文档
2 user-cf 开发的数据输入? 用户-资讯矩阵

4.排期文档

排期文档要明确以下重要内容:

  • 模块、任务划分
  • 完成时间
  • 任务负责人

排期需要按照大致的可完成时间进行估计,要实事求是。可以进行风险预估并留出一定的时间,但是不能太多。后续将根据小组成员的实际工作情况来检查排期计划是否合理

排期文档一旦确定,就需要严格按照排期进行,到任务检查点就去检查,严格考核是否已完成。

5.开发文档

开发文档主要记录开发过程中遇到的问题和相应的解决方案,作为宝贵的经验积累向大家进行分享。

6.测试文档(测试提供UT报告和压测报告)

7.风险点(列出项目风险点并做好预案)

8.上线时的checklist

列出依赖关系,尤其是依赖的外部应用,数据库,redis,离线算法,实时算法等

9.算法/服务维护列表

序号 时间 负责人 上线功能 简要描述 业务 目的
1 9/28/2018 18:40 xxx 修改算法服务 主流程和ab流程合并;调整取算法结果的顺序:personaltopn第一,用户画像第二,算法0第三,算法5第四 浏览器弹窗 提高算法覆盖率,代码优化
2 9/27/2018 15:00 xxx 用户画像2.0 1、单用户推荐广告类增加到3个,每类推荐3个广告;2、上线用户画像数据中文版hive表 浏览器弹窗 丰富广告推荐内容,以利于排序
3 10/09/2018 10:40 xxx ab服务增加时间监控 ab服务模块 增加时间log信息 浏览器弹窗

10.算法/服务过程中的问题记录(包括问题本质和解决方案)

主要用作线上问题的定位和跟踪。

11.算法的输入、输出记录

记录每一种算法的所有输入表和输出表

你可能感兴趣的:(机器学习,推荐系统,管理)