小团队如何准确评估项目时间和节点

创业公司中由于团队人手的限制,经常需要团队成员在不同的项目中进行身份切换,加之处于创业阶段,产品需求本身的变更和迭代速度都会很高,所以常常需要开发人员准确评估项目时间节点,把握开发节奏,才能不影响其他项目的正常进行。

那该如何评估以及怎样评估

一个产品需求从提出到落地大致需要经过以下几个阶段(可能根据需求的复杂度略有不同,这里只讨论一般性需求)

1
2
提出需求-->需求评估-->开发-->测试-->上线

当开发人员面对这么粗粒度的节点划分的时候,很难真正想象出项目会遇到什么样的问题,尤其是新人对项目的难度把握不准确,以及对整个团队开发流程不熟悉,非常容易做出不恰当的预估。在此,由于粒度过粗,每个阶段在开发人员的印象中都是一个模糊的概念,只有深入到实际开发阶段,可能才会发现每个阶段都没有那么容易,处处是坑,四处碰壁。

以测试为例。一般来说,开发人员日常开发使用的是一套测试环境,包括系统状态,数据库状态,环境依赖等都与线上环境有细微甚至很大的差别,而这个差别可能只有等到上线前一刻才会被发现。可能一开始预估测试时间并不会把这样的意外因素考虑在内,而这样的问题发生势必会影响项目的正常发布,甚至延期。

因而,为了弥补这样的不足,把一个需求从立项上线的过程进行更细粒度的拆分,提前对每个粒度所面临的场景进行多种可能性预测,并制定相应的解决方案,模拟出项目的真实开发流程,类似战场打仗所用到的沙盘。

一个真实的开发场景

APP中添加聊天通讯功能

1.未拆分阶段

1
2
提出需求(通讯功能)---->需求评估(可做)---->开发(客户端,服务端,联合调试)---->测试(客户端测试,服务端测试,产品测试)---->上线

2.拆分需求和功能

在需求提出阶段可以按照需求的重要性进行等级划分(数字越小重要性越大)

  • Level one:必须有的,完成度要在95%以上,不能出现影响用户使用的重大bug
  • Level two: 能够基本完成,完成度80%以上,允许少量的bug存在
  • Level three: 锦上添花的功能,完成最好,也可以放到下一个迭代中

根据不同的 Level 来进行开发时间预估,重要的 Level 应该给以足够的思考和开发时间

3.细化实施阶段的步骤(含测试)

需求按照等级划分清楚,之后开发人员可以对照相应的等级需求进行需求评估,评估完成之后给出实现方案和时间节点。

实现方案根据团队条件的不一样会有很大不同,在此不讨论具体细节,时间节点又是根据具体的实现方案来定夺,而一般的方案都包含以下几个步骤

  • 调研
    • 方案1
    • 方案2
  • 讨论
    讨论各个方案确定最终实施方案
  • 实施
    • 基本功能
    • UI
    • 等等
  • 测试
    • 本地测试
    • 服务端测试
    • 联合测试
    • 测试环境测试
    • 正式环境测试
    • 用户测试

开发人员根据这些步骤一步一步去评估每个步骤可能占用的开发时间,以此来决定完成一项功能的时长

未完待续

三月沙 wechat
扫描关注 wecatch 的公众号