项目过程管理

项目过程管理

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 明确与外部系统的交互

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

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

3.4 技术评审时的问题列表

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

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

4.排期文档

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

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

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

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

5.开发文档

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

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

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

8.上线时的checklist

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

9.算法/服务维护列表

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之指针复习

废话不多说&#xff0c;拿起键盘就是干&#xff0c;直接上代码&#xff1a; #include <stdio.h>int main() {double *p;double x 66.6;p &x; //x占8个字节&#xff0c;一个字节占8位&#xff0c;一个字节一个地址double arr[3] { 1.1,2.2,3.3 };double *q;q &a…

51与PC通信协议设计及实现(三):51部分模块化分工及设计

整个的51部分的伪代码简写如下&#xff1a; 1 void sendData() 2 {} 3 void time() 4 {} 5 void keysChecked() 6 { 7 return loca; 8 return key_state; 9 }10 main()11 {12 init();13 while(1)14 {15 if(keysChecked 1) //放到中断处理比较好16 …

管理机器学习项目

管理机器学习项目 一. 目录 传统的软件项目管理目前的现状机器学习项目管理 二、传统的软件项目管理 传统的软件项目管理和开发流程已经非常成熟。大致的流程如下&#xff1a; 由运营、产品进行最初的功能策划&#xff0c;进行可行性分析由项目经理召集相关人员进行产品启…

拖拽自动生成的DataGridView和BindingSource操作数据库(增加,修改,删除)---自己实现...

参考&#xff1a;http://hi.baidu.com/j2eedoc/blog/item/507ca70e1281c4e036d122dc.html using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Fo…

数据结构之结构体复习

为什么出现结构体&#xff1f; 为了表示一些复杂的数据&#xff0c;一些基本数据类型无法满足要求&#xff0c; 当要用一个变量描述一个对象的多个属性时&#xff0c;普通的内置数据类型是表示不了的&#xff0c;这个时候就可以用结构体回。结构体和类很相似&#xff0c;唯一不…

高效管理读书笔记

高效管理读书笔记一、优秀的权威宣言二、主要的内容要点2.1 有权威的领导都会关心自己的员工2.2 问责而不指责2.3 多点尤达&#xff0c;少点超人三、原书一、优秀的权威宣言 优秀的权威就是&#xff1a; 指出大部分人视而不见的问题的气质今天畅所欲言而不是空等明天的好心【…

C# 按钮美化技巧

(1)按钮 text设置成"" (2)按钮backgroundImage设置成 想要的图片 (3) ToolTip属性设置成 鼠标在上时的提示 (比如“搜索”、“删除”、“查找”)转载于:https://www.cnblogs.com/imihiroblog/archive/2012/06/08/2541940.html

蒙特卡罗方法介绍(一)

蒙特卡罗方法介绍(一) 一、蒙特卡罗方法的基本思想和解题步骤 1.1 蒙特卡罗方法的基本思想 蒙特卡罗方法也称随机模拟法、随机抽样技术或统计实验发&#xff0c;其基本思想是&#xff1a;为了求解数学、物理、工程技术或生产管理等方面的问题。首先&#xff0c;建立一个与求…

gawk手册

第一章 前言awk 是一个程式语言&#xff0c;对於资料的处理具有很强的功能。对於文 字档里的资料做修改、比对、抽取等的处理&#xff0c;awk 能够以很短的程式 轻易地完成。如果使用 C 或 Pascal 等语言写程式完成上述的动作&#xff0c; 会不方便且很花费时间&#xff0c;所写…

数据结构之malloc()函数动态内存分配复习

直接上代码分析 #include <stdio.h> #include <string.h> #include <malloc.h>int mian() {int a[5] { 1,5,8,46,12 };int len;printf("请输入你要分配数组的长度&#xff1a; len");scanf("%d", &len);int * pArr (int *)mallo…

神策数据张涛:如何让用户标签价值落地?

本文根据神策数据副总裁张涛在《用户个性化运营—标签体系搭建新机遇》主题沙龙中演讲整理所得。 标签系统&#xff0c;在企业中已不是什么“高大上”的说辞。然而让用户标签价值真正落地企业不多&#xff0c;就像“青少年谈性”&#xff0c; 有一段话形容得再贴切不过&#xf…

标量函数,多语句表值函数,内嵌表值函数

标量函数返回一个标量(单值)结果,可返回Timestamp,text,Ntext,Image,Table,Cursor多语句表值函数&#xff0c;返回一条或多条Transact-sql语句建立的表,可在select 语句的FROM子句中被引用.内嵌表值函数&#xff0c;位于RETURN子句中的SELECT命令段从数据库中摔选出来的&#x…

ios初学笔记

bool值只取最低位的值&#xff0c;若最低位为&#xff10;&#xff0c;bool值等于NO&#xff1b;若最低位不为&#xff10;&#xff0c;bool值等于YES。比较bool值的时候&#xff0c;将变量与NO进行比较最保险。objc不支持多继承类的description方法类似java的toString方法&…

蒙特卡罗方法介绍( 二)

蒙特卡罗方法介绍( 二) 一、蒙特卡罗求解定积分 蒙特卡洛方法求解定积分有两种方法&#xff0c;一种是上一节中讲的投点法&#xff0c;另外一种是期望法&#xff08;也称平均值法&#xff09;。 1.1 投点法 给出如下曲线f(x)f(x)f(x),求f(x)f(x)f(x)在a,ba,ba,b上的积分&am…

大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析

如果不懂分区策略请看我之前的文章&#xff1a;https://blog.csdn.net/ywl470812087/article/details/105328015 默认的方式我们采用的是Range策略方式&#xff08;按主题给消费者消费&#xff0c;主题被谁订阅了就谁消费&#xff09; 先看下下面这个图&#xff0c;画的很丑&a…

如何达成目标笔记

如何达成目标 一、本书主要内容 推荐序一 升级你的行动工具箱 推荐序二 人们可以改变 引言 成功者和自制力的悖论 //004 自制力到底是怎样的 //007 你能做什么 //009 本书的主题 //011 1.1 准备就绪 第1章 你明白自己去往哪里吗 别说“做到最好” //017 大局与细节 //…

大数据技术之 Kafka (第 4 章 Kafka API ) Producer API

4.1.1 消息发送流程 Kafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程&#xff0c;以及一个线程共享变量——RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c;Sender…

【分类器】- KNN

一、分类算法中的学习概念因为分类算法都是有监督学习&#xff0c;故分为以下2种学习。1、急切学习&#xff1a;在给定的训练元组之后、接受到测试元组之前就构造好分类模型。算法有&#xff1a;贝叶斯、基于规则的分类&#xff08;决策树&#xff09;、向后传播分类、SVM&…

Java虚拟机栈介绍

与程序计数器一样&#xff0c;Java虚拟机栈&#xff08;Java Virtual Machine Stack&#xff09;也是线程私有的&#xff0c;它的生命周期 与线程相同。虚拟机栈描述的是Java方法执行的线程内存模型&#xff1a;每个方法被执行的时候&#xff0c;Java虚拟机都 会同步创建一个栈…

《关键对话——何谓关键对话》读书笔记(一)

《关键对话——何谓关键对话》读书笔记&#xff08;一&#xff09; 利用假期的时间&#xff0c;将关键对话阅读了一遍&#xff0c;书中提到的观点&#xff0c;方法&#xff0c;场景等很适合我目前处的状态&#xff0c;有的时候读起来仿佛就是自己身临其境&#xff0c;有种感同身…