我不知道从何时起,速度(效率)这个词在软件开发领域安家落户了,以前可从来没有这么流行过。然而我非常确定的一点是如果你提到运动却没有提到三大定律的话,艾萨克·牛顿先生肯定会不高兴。
第一定律
在一个惯性参考系里面来看的话,除非受到外力的作用,否则物体会保持静止或者匀速运动。
外力简直是太多了:
开发人员在解决BUG
开发人员在增加新的特性
开发人员在产生新的BUG
业务方要求降低操作成本
第三方竞争改变了市场格局
用户在改变
未完待续
然而一个团队或者产品要么是黄了(保持静止状态)要么是在进行匀速运动(每天都生产固定的利润或者消耗一定的预算)。
现在我敢说,说起团队的速度(效率)是违背第一定律的,因为要维持团队的效率的话需要做什么?什么都不用做!
好吧,这会让很多主管感觉反感,”我还是希望我的开发人员做点事情的“。
那么我们需要看一下下一条定律。
第二定律
F = ma。作用于物体的力的矢量等于物体的质量M乘以它的加速度矢量a。
加速度是改变速度的能力。F在这里可以看作一个常量,因为说实话,你的团队的规模是固定的,除非你是在Google。你的时间也几乎是固定的,一天24个小时,除非你住在火星上,它可能会长点,也就是 24.622962小时吧。好吧,我们完蛋了。。只剩一个变量是可以修改了。根据第二定律,对于一个给定的F,加速度和质量是成反比的。质量是一个负担,它和加速度是相背的。
下面列出了一些提升质量的方法:
想拥有的特性太多了
太多技术债要还了
太多的抽象,一层又一层,ORM,DAO,服务,控制器,视图。从数据库捞出一个简单的{“userid”: 123}就需要这么多的东西。哦,我忘了提了,还有SQL,NoSQl....
太多的进程
太多的模式,企业级的策略工厂构造器适配器监听器拦截器。。
沟通的流程太长了,业务方——项目经理——业务分析——团队主管——开发人员(你还可以加入更多的角色)
太多的框架,java EE ,Spring, Hibernate, Struts, Bootstrap, jQuery, Augular.js,Ember.js,你敢看下Java EE吗?在Java EE 7下有39个Java规范请求!
太多的服务器。WEB服务器,关系型数据库,NoSQL服务器,缓存服务器,消息队列,第三方集成服务器。
第三定律
作用力和反作用力总是同时存在的:或者说两个物体间的相互作用力总是相等的,并且作用于相反方向。
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
原创文章转载请注明出处:
http://it.deepinmind.com
英文原文链接
分享到:
相关推荐
《牛顿宇宙演示》是一款基于牛顿力学原理的模拟软件,其附带的源代码为开发者提供了深入理解物理规律和游戏开发技术的机会。这个项目旨在通过可视化的方式展示牛顿的三大定律以及动量守恒和万有引力定律在宇宙中的...
牛顿三大定律是物理学的基础,包括惯性定律、力与加速度关系定律以及作用力与反作用力定律。在AE中,这些定律被应用到每一个模拟元素上,使得粒子、刚体和柔体的行为更加符合现实世界中的物理规律。 首先,Newton...
这些知识点涵盖了基础物理学中的力学部分,包括牛顿定律的应用、单位转换、动力学问题的解决、力的分解和合成、受力分析、滑轮系统、摩擦力以及功的概念。这些都是高中物理学习中的重要内容,对于理解和解决实际问题...
在MATLAB环境中,开发牛顿声学矩阵形式主要涉及到数值计算和偏微分方程的求解。牛顿声学是研究弹性介质中声波传播的物理理论,它基于牛顿第二定律和连续介质力学。在矩阵形式下,这一理论可以转化为线性方程组,便于...
《基于MATLAB的牛顿环虚拟仿真实验平台设计与开发》 牛顿环实验是光学领域中的一个重要实验,用于研究光的干涉现象。在实际教学中,由于设备限制和安全因素,学生可能无法深入理解和操作。因此,利用现代科技手段,...
在此基础上,教师需要根据牛顿环的形成原理,利用MATLAB软件进行数值计算,编写出能够模拟干涉现象的程序代码。例如,通过设置模拟范围、形成数据网格、计算各点到圆心的距离以及利用光强表达式来模拟不同条件下牛顿...
1. 牛顿物理学原理:牛顿的三大定律是物理学的基础,它们对于计算机科学中的模拟和游戏开发至关重要。第一定律(惯性定律)描述了物体保持静止或匀速直线运动的状态;第二定律(力的作用效果定律)给出了力、质量和...
MATLAB(Matrix Laboratory的缩写)是一款由美国MathWorks公司出品的高性能数值计算和可视化软件,它被广泛应用于各种领域的数据分析、算法开发以及工程绘图等。MATLAB之所以强大,在于其简洁的编程语法和丰富的工具...
1. **多体动力学原理**:ADAMS基于牛顿第二定律,考虑物体的质量、刚度、阻尼等因素,对复杂的机械系统进行动力学建模,模拟运动过程中的相互作用力。 2. **虚拟样机概念**:ADAMS允许用户创建虚拟的机械设备模型,...
在学习大学物理时,学生会接触到许多重要的物理定律和理论,如牛顿三定律、能量守恒、电磁场理论等。通过解决实际问题,学生可以提升分析和解决问题的能力,这对理解计算机科学中的某些概念,如数据传输、信号处理等...
1. **天体力学**:理解行星和卫星之间的引力作用,以及如何根据牛顿万有引力定律计算航天器的轨道。 2. **轨道力学**:研究航天器在重力场中的运动规律,如开普勒定律,用于确定最佳着陆轨道。 3. **控制理论**:...
极坐标牛顿法是一种优化算法,常用于求解非线性方程组,如电力系统的KCL(基尔霍夫电流定律)和KVL(基尔霍夫电压定律)。在电力系统潮流计算中,这些方程描述了网络中各节点电压和支路电流之间的关系。牛顿法的核心...
文档标题和描述中提到的是关于物理动力学的问题,尽管标签为“软件开发”,但实际内容与软件开发无关,而是涉及物理学中的动力学概念。这里主要讨论了两类典型问题,一个是物体在传送带上运动的情况,另一个是物体在...
该方法通过使用智能手机的加速度传感器,测量气垫导轨上的滑块的加速度,然后结合最小二乘法和Origin数据分析软件,根据牛顿第二定律,计算出重力加速度。 首先,实验原理基于牛顿第二定律,即F=ma,其中F是合外力...
2. **开普勒定律**:开普勒第一定律(椭圆轨道定律)、第二定律(面积速度守恒定律)和第三定律(调和定律),这些定律提供了天体运动的基本规律。在模拟中,我们需要根据这些定律设定初始条件和更新规则。 3. **...
若你需要关于高中物理的知识点,我可以提供一些通用的物理概念,如牛顿三定律、动能与势能、电路基础、电磁感应、光的反射和折射等。然而,这些并不具体针对你提到的枣强中学的月考试题内容。 如果你有具体的IT主题...
这样的软件,正如标题所言,“实时的三维太阳系模型”,为我们提供了一个直观、动态的宇宙观窗口,让我们得以近距离地观察和理解太阳系的运作规律。开源软件的优势在于其透明性、可定制性和社区支持,使得这样的项目...
模型分为"发现"和"发明"两个方面,"发现"涉及自然规律,如牛顿的运动定律,而"发明"则涉及到人为设计的系统模型,如图灵机、冯·诺依曼计算机模型或UML等。 在软件系统建模中,我们通常需要采用多种视图来全面描绘...
1. 牛顿第二定律:在动力学问题中,牛顿第二定律是基本的物理原理,它描述了力与物体加速度的关系。例如,在第一道题目中,小木块在传送带上受到重力、支持力和摩擦力的作用,通过牛顿第二定律可以计算出木块的加...