我理想中的《研发部项目开发流程》

  • 一需求分析
    • 1 内容分析
    • 2 数据分析
  • 二方案设计
    • 1 系统概要设计
    • 2 需求用例设计
      • 21 需求划分区分功能需求和非功能需求
      • 22 需求用例设计
  • 三方案评审
  • 四 项目启动
  • 五迭代开发
  • 六集成测试
  • 七版本发布

一、需求分析

输出《软件功能规格说明书》。需要确定用户对软件的需求,要作到明确、无歧义。不涉及具体实现方法。需要描述的内容如下:

1.1 内容分析

负责把本次版本中的功能分析清楚。需要强调的是,“需求要明确”,不允许在需求文档中出现类似“跟XXX一样”等这种含混不清的字眼。
一般来讲,分析到此业务的背景,解决的问题,,户的操作场景,,些信息有可以了。

1.2 数据分析

对于数据如何制作,用何种方式制作,制作成什么格式是最省力的。对开发,对数据人员的加工量是最少的,能否支持程序运行。数据的存储的介质,格式决定了后面的开发方案。

二、方案设计

输出《项目方案设计说明书》。需要描述的内容如下:

2.1 系统概要设计

说明系统模块划分、软件架构、选择的技术路线等,整体说明软件的实现思路。

2.2 需求用例设计

2.2.1 需求划分:区分功能需求和非功能需求

首先弄清楚功能需求和非功能需求。简单来说,功能需求就是客户提出的直接需求(或者发过来的需求文档),而非功能类需求(对软件的约束)在很大程度上就是我们的市场反馈或者我们预判的一些BUG(如果BUG可能是带着需求来的,存在客户没有考虑周全的情况,我们也将其定义为功能类需求)。

2.2.2 需求用例设计

  • 用例名称:
  • 唯一的ID:用于区别其它的需求。
  • 简要说明:讲述业务详细信息等内容
  • 执行者:处理人,交由谁来处理
  • 前置条件:做此事情前先要解决的事情、应该具备的知识点、会使用的工具。
  • 需求优先级属性(功能类需求需要写明此项):M/S/C/W
  • 功能分析:描述此业务的分析过程,便于开发理解。
  • 处理方案:最后问题的推荐解决方式,以便于启动任务,知道如何做。
  • 主流程:相当于主要处理思路,方案。
  • 结果:此用例执行完后,程序或数据或模型的状态。
  • 其它扩展流程:相当于其它一些备注信息

需求设计分为两个阶段(明确需求、细化需求),待需求初步明确后,此时需要测试团队参与进来,和研发团队讨论和细化需求,以便设计测试用例。

注:功能类需求需要特别指明4个优先级属性(M、S、C、W)说明如下:
- Must have:必须要有的
- Should have:重要但可以被省略的要求
- Could have:可选择需求,有时间的话可以去实现
- Want to have:需求可以等待版本发布后再去实现

三、方案评审

此步骤将需求转化为要开发任务,并尽可能拆解为详细的开发步骤。
这一步是必须的。 让业务专家,或者有经验的人把下关。这样对方案是一个很大的补充。 一个人的想法很难保证想的很全,所以,可以经过这个环节进一步充实你的方案。等这一步完成后,你会形成项目列表。 就是针对每个开发功能,拆解为详细的开发步骤,并估算出工时。

这样有助于你完成更为详细的开发计划。 一定要把任务项列细了,越细,对后面的进度控制就越有帮助。

四、 项目启动

项目启动过程主要处理并落实5方面内容:需求交底、设计开发方案交底、开发周期商定、详细计划安排商定、团队作战地图。
在这个过程,有开发,有测试,有需求,有数据,都会从不同的角度去分析此问题。

这个过程的好坏会对后面的开发任务有很大的影响。在这个过程,重点是进行需求交底。。我们很难保证让团队中的每一个人都能把所有的业务都理解的很清楚,这是很难办到的,但可以保证的是,当这个任务为某个人做的时候,他会更专心的去听这块内容,对于要执行者,他是最为关注的。 这样当需求交底完成的,可能是大部分人对需求都有所了解,理解度在20%~60%左右吧,但执行此任务的人理解度应该能达到90%左右。

此阶段输出《作战图》,作战图的作用,就是把事情盘点清楚,让每一个人所做的的任务都能具体到整个过程的位置,地位,清楚自己的任务在整个项目中处在什么样的关键位置上。
作战图需要指出关键的里程碑时间节点,下图示例中最右侧红色部分为一个里程碑,每一个小的迭代开发阶段就是一个小的里程碑事件:

五、迭代开发

如上幅作战图所示,我们有很多任务点,任务项,如何能让在开发过程中,让我们的团队更具有凝聚力,更能向上呢,答案就是自适应团队。 那如何才能实现呢?那就是短周期迭代。 我们可以把每一个任务做成一个小周期的迭代。 你这个迭代必须是有交付物的,没有交付物,那就没办法验证你的成果。
在这个过程中,我们只需要回答两个问题就足够了: 1。 能不能用。 2。有什么用。 当你进行完这个迭代后能回答这两个问题,那么,我就可以认为这个迭代完成,可以进行一下个周期的迭代。
此阶段请项目经理安排大家根据作战图给自己在Tower日程上拟定任务开发周期。

项目经理每周为单位,对项目任务进展情况在Tower上向部门予以汇报。

六、集成测试

由测试开启工作,将bug录入系统中,并指派bug给业务开发人员。

七、版本发布

办法先发布在测试环境中,测试通过后,项目主测输出测试报告,达标后,再上线正式环境。

你可能感兴趣的:(日志)