爱因斯坦的能量守恒定律告诉我们,E = MC*C,就是能量=质量×光速的平方,理论告诉我们所谓的企业核心竞争力来自那个地方。
做一个项目,如果软件成本是守恒的(由公司的软件团队实力决定),那我们得出一个结论 cost = quality × speed,就是开发成本 =
软件质量 ×
软件开发的速度。开发成本是软件团队的实力,包括软实力和硬实力,大致等于这个团队的年薪。软件质量我想大家都知道,开发速度大家也知道。从中看出,在固
定成本的前提下,要求软件的质量越高,就是quality越高,那么,speed就会降下来,那么相应的开发周期就越长。
如果来了一个时间很紧的项目,要保证速度,就是完成时间,就得加班再加班,变相的提高速度,提高进度。以时间换速度,在人的注意力时间有限和精力有限的情况下,此是下策,会带来很多反作用。 加班的效率要比正常上班低很多,特别是不给加班费。造成的怨气会严重影响开发进度和质量。所以软件质量会被降低。
加班会让程序员对软件产生怨恨情绪,对设计、性能要求、错误等得过且过。所有的软件工程理论都是要求质量第一。而且明确说明,反对加班以追求速度。
所以你的观点是错误的。
成本是多方面的。不是简单的质量×速度。你把日后的维护成本刨除了。质量越差,维护成本越高。
很多系统开发完成后,发现因为过分追求速度,造成维护成本居高不下。故障频发。最后只好重新开发,造成严重浪费。
所以,要降低成本,不能降低质量,也不能靠压榨程序员。要采用更加科学的开发管理手段、更加先进的开发技术框架来提高软件生产效率。而不是对程序员进行掠夺式剥削。