软件过程的改进是一个长期的过程,属于长期的利益。如果长期利益和短期利益相冲突的时候我们应该如何处理。我们有什么办法来令短期利益和长期利益结合起来呢? 意图 权衡短期利益和长期利益。 示例 金商软件是一家专门针对小型企业销售软件产品和定制 开发
软件过程的改进是一个长期的过程,属于长期的利益。如果长期利益和短期利益相冲突的时候我们应该如何处理。我们有什么办法来令短期利益和长期利益结合起来呢?
意图权衡短期利益和长期利益。
示例金商软件是一家专门针对小型企业销售软件产品和定制
开发的公司。他们销售的软件来自于国内的一家知名软件厂商。而公司内部的软件人员主要从事定制开发,一方面是满足用户的一些特殊需要,另一方面是为了发展自己的软件开发力量,以图日后开发出自己的产品。这种策略刚实施了半年的时间,目前公司的开发人员只有5个人。由于公司的销售能力很强,因此公司总是能够得到大量的订单。由于公司目前已经拥有开发力量,因此得到的订单也不像从前,以产品为主,定制为辅。而是一些完整的开发项目。从10月份开始,公司已经签了4个项目,按照公司的习惯,一般都承诺在3个月内完成项目。可是根据软件部分的
估算,目前的任务,大概需要60个人月的时间。到了11月,开发部的所有人员已经连续加班1个月了。其中2个项目由于增加
需求,同意把项目的开发周期延长一个月,但是和60个人月的工作量比起来,这点时间似乎是杯水车薪。在时间的强大压力之下,开发人员不得不牺牲软件
质量,而软件的最后完工看起来是那么的遥不可及。
上下文自从加入到面向对象开发地阵营以来,我们深为这门开发艺术所感动。编码工作在面向对象思想地指导下显得那么具有美感。以往过程式编码失控之后的那种无力感再也找不到了。面向对象带给我们的是极大限度的重用性,当然,我们需要付出前期投入的成本。从学习面向对象以来,我们学会了使用一种抽象的方式看待世界,思考问题。有些时候,我们同一些仍然保持传统编程习惯的软件公司交流时,我们发现似乎面向对象并没有体现出太大的优势:
"面向对象技术可以极大的重用现有的构架,大大提高开发速度。"
"我们现在通过增加人手和加班的方式,也能够很快的完成一个项目。"
"面向对象技术可以减少软件的维护成本。"
"一般我们会指定一些开发新手来维护公司以往的项目,这方面的成本并不高。"
"面向对象能够不断的积累项目经验,为后续的项目开发提供保证。"
"通过雇佣有经验的开发人员,我们可以直接获得开发经验,而不用自己积累"
"面向对象是未来软件开发的主流。"
"保证项目及时完成是管理层最关心的,等到市场上的面向对象
程序员足够多之后我们再采用面向对象吧。"
"此外,现在采用面向对象,人员需要全新的
培训,我们没有多余的人手;由于没有经验,直接把面向对象用于项目实施存在风险,而我们的项目时间都太少了"
这一段对话点出了面向对象技术的困惑,但也反映了软件开发中短期利益和长期利益的冲突。
问题如何在软件开发的短期利益和长期利益中寻求平衡点?