??? 由于我是工科机械专业毕业,似乎机械已经成了我大脑的本能,这里,我打算对比软件开发与机械加工,谈谈自己对于软件部建设的一些拙见。
??? 1.开发环境的搭建与更新。
??? 如果我们要办一个机械加工厂,在建好了厂房后,首先需要安装各种加工机械,比如车床、刨床、铣床、数控机床等等。软件公司也同样应该建立一套成熟稳定的开发环境作为其开发基础。这包括操作系统平台、项目管理工具、系统建模工具、程序开发工具、系统测试工具、数据库工具等等,并且要作到适时更新。只有保持了开发环境的稳定才能保证技术的稳定,从而保证了公司的软件开发的能力。
??? 2.开发规范的制定与修改。
??? 在安装好了各种机器后,要先着手制定各工种的操作规范。这些标准文件,可根据国家标准,也可借鉴前人经验。只有建立好了这些规范后,才能保证以后的工作高效、安全地进行。同样,软件公司也应该建立自己的规范文件,比如软件文档编写规范、数据库设计规范、命名规范、编码规范。这些规范文件,也要根据实际项目的修改而完善。有了这样的标准文件,才能使员工开发有法可依,工作步调一致;才能使公司内部交流容易;才能提高产品的可读性和可维护性。
??? 3.资源库的建立与维护。
??? 接下来的工作就是准备标准件了。一般的机器,都离不开螺丝、螺钉、齿轮、弹簧等标准件,我们不可能在用到该零件的时候再马上去制作一个,这样既延误工期,也容易造成各种零件标准不一,使以后机器的保养维修不易。一般都是通过购买或预先组织人员加工的方式来建立标准件库,才能做到有备无患。软件公司也应该建立自己的资源库,这既包括常用功能模块设计、常用控件、常用函数的代码库,也包括图标库、图片库、语言手册库等。这样不但可以提高代码可重用性进而提高开发效率,而且使用经过严格测试的代码还可以提高代码质量进而提高产品质量,降低软件测试维护费用。
??? 4.人才的选拔和培养。
??? 人才对于企业发展的重要性就不用我多言了。现代企业人才制度已经不是选择最优秀的人才,而是选择最合适的人才。企业应该量体裁衣,根据员工的爱好培养其特长发挥其优势。企业应该着力培养出系统架构师、数据库专家、高级美工、高级程序员这样的高技术人才,首先要在企业内部创造一个积极向上的学习氛围,适时表彰上进好学的员工,鼓励员工技术创新。然后要为员工提供学习资源,不断充实书籍库,可以建立FTP服务器让员工共享网络学习资源。为员工提供技术培训的机会,也可经常组织员工进行技术讨论。企业更应该为员工提供展示的舞台,使员工能做到各展其才、各尽其能,这不管对于个人的发展还是企业的发展都是极为有益的。
??? 5.开发文档的获取与管理。
??? 现在我们可以根据客户需求由设计人员画出图纸,施工员根据图纸做出加工计划,按照计划安排各部门加工零件。然后安排测试人员测试加工好的零件,并完成测试报告。接着安排安装调试人员把通过测试的零件组装成机器,并完成调试。最后把合格的机器送出加工车间,并把所有文档归档。以后若遇到类似的机器就可以参考该文档从而提高效率。软件开发也如此,一个项目完成后开发人员得到的除了薪水和奖金外还有就是大脑中的经验。而软件开发文档,则就是企业获得的经验。要不,项目完成后随着开发人员的离去企业也就失去了宝贵开发经验。由此可见开发文档不单对于项目的维护是必要的,就是对于企业的持续发展,也是非常重要的。当一个公司文档整理到相当数量后,就可以建立自己的专家系统,这对于控制项目进度、成本、质量有非常大的参考价值。最终,我们设计出制造软件的软件那也是可能的。
??? 6.软件工程管理的规范化
??? 软件工程管理和其它工程管理相比有其特殊性。首先,软件是知识产品,进度和质量都难以度量,生产效率难以保证,进而成本难以控制。因此,软件项目的失败70%是由于管理不善而引起,而并不是因为实力不够。这其中的主要原因有:需求定义不明确;缺乏一个好的软件开发过程;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险等。经过多年的研究,有关机构已经找到了软件开发的规律,制定了一些规范可以有效控制软件开发过程,比如CMM\PSP\TSP认证标准。企业只有做好了规范化管理,才能提高开发效率从而降低开发成本,提高产品质量进而提高客户满意度,从而提高企业竞争力。印度软件起步比中国晚,技术比中国差,但现在却成为世界第二大软件出口国就是因为他们一直很重视软件工程管理的规范化。