教训三:系统框架设计只考虑面向对象和可维护性,没有在完美的设计与高效率的代码之间做出权衡。
数据库设计:JAVA是纯粹的面向对象语言,利用J2EE开发的项目,也强调首先进行OOAD的分析,首先有对象,然后再有数据库的设计。DBA在项目中的作用,已经远远没有传统的结构性编程中重要。而实际情况却是远非如此:大部分的业务系统,如果要对系统的性能做出优化,对数据库层或者SQL语句进行优化是关键的步骤之一。
对于这个PRM系统,在数据库的设计上并没有经过DBA的审查就开始进行开发;而在性能问题出现以后,客户增加了512M的内存,也没有请求DBA对Oracle的参数做相应的调整,造成了很大的资源浪费。
在项目维护过程中,依靠DBA的帮助,开发商对于数据库系统参数、索引、存储过程和SQL语句都做了一定的调整,这对于系统性能的提高起了很大的作用。
教训四:在面向对象的软件系统构建中,忽视数据库设计以及DBA的重要作用。
客户参与:在传统的软件开发过程中,一般情况下,客户在签订合同后,项目交付前是很少有机会看到系统的,这样就造成了系统交付后,客户抱怨很多的情况;而在以XP为代表的敏捷软件开发方法中,强化了客户在软件开发中的重要作用,XP更是提出了"现场客户"的实践,将客户作为项目小组的一员,客户对于项目的发布计划、内容和优先级等方面有绝对的控制权。
对于这个PRM项目,由于客户的原因,不可能采取"现场客户"的实践,但是,开发商的BD对于该客户十分熟悉,完全可以作为客户代表参与到项目中来,因此,开发商将客户经理作为项目组的一员。
实际情况是:开发过程中,客户经理由于业务拓展的原因,并没有在项目上分配多少时间进行审查;而客户在交付前也没有花费很多的时间研究系统,也没有提交很多的反馈报告。在系统交付出现性能等问题后,客户经理与开发人员一起对于系统需求进行审查,提出了很多有参考性的意见。如果从一开始,就强化"现场客户"的最佳实践,就可以很早发现问题。
教训五:客户或者客户经理对于项目的参与力度不够。
文章来源于领测软件测试网 https://www.ltesting.net/