这三个点中,我们最终要完成的就是目标的完成。
1、这里的资源,主要指开发人员。
2、现在开发人员就我自己,我们就自然要求把时间弄长了。——这里的时间包括加班时间。
3、如果开发人员也不增加,时间也不延长,那只能削减产品功能了。
现在的主要问题是沟通问题,怎样才能让产品信服,愿意把时间延长呢?那我们就需要把需求罗列出来,让产品看到我们要做这么多的事情,自然就愿意给你时间了。
我们都知道分解需求,但是分解需求的时候,我们最容易犯的错误就是笼统,那么我们怎么避免笼统呢?这就需要你具体的描述。你既然是技术人员,当然需 要你以技术角度,给产品人员讲述,产品人员在技术这块他们也是多少知道的,不是一穷二白的。——把别人当傻子,其实很多时候,自己就变成傻子了。
现在举个例子。——我拿博客园举例子,从我个人技术角度分析。
demo:
我:很多时候,产品人员就给个demo,然后让我估算时间,连个需求都不给。
老大:我们平时都是这样做的。
我:那怎么评估时间?
老大:我们从demo上,大致就能了解有什么模块需要我们开发了。
然后老大,就给我分解了demo.
老大:1这个模块你开发需要多长时间。
我:如果接口数据都完整的话,应该两天时间吧。
老大:你说的太笼统了。你能再具体一些吗?
我:首先,我要了解,这几个tab的数据接口是否已经提前准备好的呢?还是需要我这里再重新整合。所以我需要跟接口人员沟通一下。如果数据无需重新 组装,那组织数据这块,我半天就能完成,如果数据需要重新组织,怎么组织,我就需要一天的时间了。其次,tab展现这块,如果tab过长是不是做特殊处理 (比如需要一些按钮做tab切换),如果做特殊处理,那我需要1天时间。如果不做特殊处理,那我需要半天时间。——所以这块加在一起最多2天。
老大:恩。如果接口那边没有准备好,你怎么办?
我:那我先确定一下,接口开发人员什么时候,能够把接口准备好,然后到时间了,我再进行这个模块的开发。我先开发其他模块。
老大:恩。那么2这个模块你需要多长时间?
我:这个功能,看起来比较简单,先判断数据层那里是否有这个接口,如果有,就直接链接过去,没有就不出现。就是个链接问题,瞬间就能完成。
老大:那第3个某块呢?
我:3这个模块看起来比较简单,如果只是单单的从接口取数据回来,那这个可以不用具体分配时间,如果这个是从众多数据中汇总出来,那我需要1天时间。
老大:那你是怎么估算出1天时间的。你是无法知道具体的算法的。如果汇总的数据非常复杂,那你用1天时间够吗?你怎么计算?所以,你需要先跟接口人 员进行沟通,要知道怎么进行数据计算。把整个流程弄明白,然后再进行沟通。所以这个也需要你沟通之后,才能确定时间。不能凭空想象。
我:恩。
老大:第4个模块你需要多长时间?
我:这个需要到不同的接口把数据拿过来,里面还有其他信息,比如评论数,阅读数,这些都要组织成一个新的数据结构,然后进行展现。因为关联四个接口,而且四个接口都要到同一个接口取评论数和阅读数,所以我需要1天半时间。
老大:因为这个数据比较复杂,所以我建议你,用2天时间去做。那你第5个模块,需要几天完成?
我:我觉得第五个是所有当中最重要的模块。1>我需要兼容所有tab模块。2>我需要做一些后加载 。3>在后加载的过程中,到一定数目的时候,我还需要进行翻页。因为关联前端js和后端php代码交互,我需要设计一下,然后进行相关编码,这个我 需要3天时间。
老大:恩,这样,你不就把时间估算出来了吗?
我们在估算时间的时候,我们要考虑很多因素,这样你才能比较准确的估算时间。