对于一个前后端分离项目,如何估算工作量一直都是需要解决的问题。
粗略计算
前端:估计需要画的页面数,页面数*平均单个页面时间=工作时长
后端:估计出项目所需要的接口数量,接口数*平均单个接口时长=工作时长
但是这样存在一个问题,对前端来说页面也有大有小,交互逻辑有简单也有复杂。对后端来说,对于普通的CURD型的接口做起来比较简单,对于多表/需要计算/逻辑处理/第三方库处理/对接第三方的接口 来说做起来时间就比较长。
所以,时间允许的情况下,定义一个功能复杂度这个变量
对于前端
页面复杂度=1+a*页面元素个数+b*与后端交互个数+c*自身处理逻辑次数
某个页面工时=基准页面工时*页面复杂度
对于后端
接口复杂度=1+a*查表个数+b*计算次数+c*引用第三方库次数+d*对接第三方接口个数
某个页面工时=基准接口工时*接口复杂度
后续根据实际情况对这些参数做修正或者引入新的变量。