我很审慎的考虑了各个思维的角度,最后给了我一个答复:
以有效代码量来衡量一个工程师的能力! 当然在这里我们不讨论情商
(突然发觉我扯得太远了)
高级也好,初级也好,最后反应他能力的,一定是通过他们敲出来的代码,他们的所有专业能力都一定是通过代码来反应出来的:
- 写了多少行代码?
- 花了多少时间?
- 做了多少修改?
- 重复沟通和调整了多少次?
- 项目的总周期?
- ...
我们设定一些合理的标准参数,然后对照出来就会有一个结果:有效代码量.
你不用过于去担心代码的优劣,程序的结构等等.因为从正态分布这个角度来看,所有的问题都会通过时间反应在代码上.一定的.
其实,我的观点未必是对的.这只是我在思考"如何量化"这个问题时找到的答案. 你可能有更好的答案.
我知道绝大部分公司都有薪资标准或者等级标准,什么p1-p12这种.可是它不一定满足我们的需要.
假设我们设立的这个参照系是有效的,那么还有一个问题对吧:
如何衡量项目的时间周期?
如果你做一个类似的项目,我相信你的经验完全可以得到一个精准的参考.
而如果是陌生的项目呢? 陌生项目通过经验来预估的方案在之前的小节中我已经否定了
这个问题,我思考了很久,也尝试在网络上寻找答案,问过了各种各样的朋友.
网上有一些算法(来自于IBM),很复杂,看不懂,也好像不是我需要的
我的朋友告诉我他们绝大部分是通过经验来评估.
... ...
最后,我在否定了经验评估的时候,又重新肯定了经验评估,当然不是你想象的那种评估!
我的想法和数学中的迭代基本一致:
- 从第一个项目开始,通过实际完成时间来评估我的预测的准确度;
- 修正后再评估,再修正
- 多次修正后,会得到一个参数,这个参数可以用来评测(判断)我的项目评估的准确度
假如我预测这个项目需要3个月.而过往的多次评估修正告诉大家对于我的评估来说系数为1.3.
那么接近科学的准确预测项目周期就是3*1.3=4个月了.
这种方案是我臆想出来的! 因为没有找到更好或者更准确的方案. 也欢迎提出更优的方案.
那种所谓的细分颗粒度来划分只是我这种评估中的一环;
把项目细分转化成代码量,加上我们的风险系数,然后比对有效代码量.最后得到一个结果.
这个结果未必是正确或者准确的,但是从数学上来看,我们是在求极值!
这个结果是我们在减小每个环节的误差后得到的结果.
它是可信的参考值!!!
为了证明我的观点正确,我们来看一个数学上的迭代(来源于#天文算法#):
-----------------------------------
计算sqrt(159),取8位有效数字
其实就是求159的平方根.没有计算器怎么办?
我们知道12*12=144,所以可以用12作为sqrt(159)的估值。用159除12,得到13.2500。那么12与13.2500的算术平均值是12.6250,这就是更好的估值。
我们现在用159除12.6250,得到12.59406,12.59406与12.6250的平均值是12.60953,这个值将更准确了。
依这种方法,我们依次得到:
12 = 开始值
12.62500000
12.60952971
12.60952022
12.60952022
假设->否定->再假设->再否定
我们在不停的论证,最后得到一个结果,这个结果或许就是我们需要的!