关于软件工程生产率的思考

来源:互联网 发布:前列腺炎 知乎 编辑:程序博客网 时间:2024/05/21 08:51
  在进入正题之前,我们有必要简单的比较一下传统的制造业与软件业在生产方式的差异。
  1,传统制造业是机械化作业,软件业是人的思维转化作业;
  2,传统制造业的生产过程具有流水性,软件业的生产过程复杂多样,有貌似流水性的瀑布型,有螺旋攀升型,快捷原型法等
  接下来我们可以看一下传统制造业提高生产率大多采用的方式和手段
  1,提高作业人员的熟练度;
  2,提高作业的机械化程度;
  3,改善生产工艺等。
  这些方式和手段中,那些能够适用到软件的生产过程中吗?在应用到软件生产过程中,又会发生那些变化?软件的生产还有那些其他的方法来可以提高生产率?
  首先,我们来看一下提高作业人员的熟练度,这一点的核心是人的专业技能培养,但是与制造业相比,软件开发人员的技能培养要复杂的多,复杂性在于制造业培养的是人操作设备和工具的熟练度,而软件开发要培养的是开发人员思维的成熟度、完整度和熟练度。对于软件企业来说教给员工为什么这样做,远比较给员工怎样做重要的多;对于个人来说学会为什么这样做远比学会怎样做重要的多。在软件业,只有会思考的人才能找到更多的捷径。
  其次是机械化作业,这一点不太适用软件业,对于软件开发来说通常情况几台普通的电脑就可以解决问题了,使用高性能的电脑对于提高生产率来说,笔者认为意义不大,可以忽略。
  三是改善生产工艺,对于软件业来说,生产工艺就是在产品开发过程所使用的开发管理模型,这里同样项目,采用同样的开发管理模型,由具有不同成熟度的组织来实施开发,往往会产生不同的结果,就其原因,核心还是人的思维的成熟度、完整度和熟练度,这种思维上的要求不仅仅是专业技能上的,同时还包括对开发过程中所采用的开发管理模型的理解和运用。因此软件企业在大力提升作业人员的思维能力的同时,要不断改进和完善各种开发管理模型的规范,使之不但管用还要易用,以便更好的促进和激发作业人员主动的思考。
  四是运用业务领域知识思考软件开发,也就是说开发设计人员要了解和掌握软件应用领域的业务知识,用客户的业务思维方式来同客户沟通交流,解决软件问题。这样可以有效地提高生产率,减少重复作业。
  五是运用有效的管理工具。科学高效的管理工具,不但可以提高项目信息收集和整理效率,还可以提高信息的流通性,以及相关人员的学习效率。