英文原文:software development and newtons laws
我不知道从何时起,速度(效率)这个词在软件开发领域安家落户了,以前可从来没有这么流行过。然而我非常确定的一点是如果你提到运动却没有提到三大定律的话,艾萨克·牛顿先生肯定会不高兴。
第一定律
在一个惯性参考系里面来看的话,除非受到外力的作用,否则物体会保持静止或者匀速运动。
外力简直是太多了:
然而一个团队或者产品要么是黄了(保持静止状态)要么是在进行匀速运动(每天都生产固定的利润或者消耗一定的预算)。
现在我敢说,说起团队的速度(效率)是违背第一定律的,因为要维持团队的效率的话需要做什么?什么都不用做!
好吧,这会让很多主管感觉反感,”我还是希望我的开发人员做点事情的“。
那么我们需要看一下下一条定律。
第二定律
F = ma。作用于物体的力的矢量等于物体的质量M乘以它的加速度矢量a。
加速度是改变速度的能力。F在这里可以看作一个常量,因为说实话,你的团队的规模是固定的,除非你是在 Google。你的时间也几乎是固定的,一天 24 个小时,除非你住在火星上,它可能会长点,也就是 24.622962 小时吧。好吧,我们完蛋了。。只剩一个变量是可以修改了。根据第二定律,对于一个给定的F,加速度和质量是成反比的。质量是一个负担,它和加速度是相背的。
下面列出了一些提升质量的方法:
第三定律
作用力和反作用力总是同时存在的:或者说两个物体间的相互作用力总是相等的,并且作用于相反方向。
A:“我们能删了 XYZ 特性吗?这样的话代码会简单很多”R:“还是不要了,这是投资人 ABC 想要的”A:“好吧,没关系”
A:“我们能改成 git 吗?”R:“别啊,我们最喜欢这些老古董了”A:”那下次再说吧“
A:“可以升级下 Java 1.4 吗”R:“生产环境还有很多在服务器在用呢”A:“好吧,那我还是坚持手动进行类型转化吧”
我还想多码点字,不过现在有一股反作用力在阻止我这么做。。。那今天就先到这吧。
感谢你浪费了这么长时间来听我啰嗦了这么多。
引用
http://en.wikipedia.org/wiki/Velocity_(software_development)
http://en.wikipedia.org/wiki/Newton's_laws_of_motion