参与了CMMI DEV-3的开发流程的组建,运行了一年半以后,回头看看现状,并回想一下自己的开发共享软件的经历,感觉还是很有意思的。
在我们企业中,目前而言,大部分项目都是上级企业所要求必须的开发项目,对于项目的执行,领导最关心能否按时交付,至于质量则放在第二位。或者说,只要能够按时交付硬件,其中的嵌入式软件可以后续变更的形式进行二次交付。领导其次关心代码能否上交,不能让你拿着代码来要挟领导,更不能泄露给竞争对手。因此我们企业的开发流程有两点最重要——保密和速度。
回想一下共享开发的经历,其实由于其特点也可以说是其他软件类Free Lancer的经历特点,关键是可行性和质量。
可行性,关系到这个项目能否在技术上实现、市场上能否成功。因此,开发时首先需要在可行性分析上着力,这一部分花多少力气也不浪费。包括对关键技术点的识别和分析、运行环境的分析、竞争对手的分析等内容。
然后就是质量,一般而言,软件质量由设计保证,由测试闭环。在袖珍开发的场合下,由于资源的限制以及小团队沟通的简单,设计仅针对需求分析、大的框架设计即可,但是对于关键数据结构应该有完备的设计。针对代码测试,一般国产袖珍团队都不会有专职测试人员,对于一个设计、编码、测试一肩挑的人来说,进行代码动态测试工作的意义不大。因此,测试工作需要注重自动化静态测试工具的使用,这种工具可以通过对代码的分析,找出其中的运行缺陷和安全缺陷,这种测试方式效率比较高,可以有效地防止那些除零、数组越界、内存溢出的故障,防止低级问题降低用户体验,比较典型的工具有C++Test、JTest、KlocWork等。
动态测试比较擅长的地方在于软件第三方测试,这种测试模拟用户体验来运行程序,针对性很强,但是这种测试对于测试人员的耐心要求较高,且需要较为充足的时间来执行。所以,在第三方测试过程中,需要制定好策略,对于需求分级把握,对于软件的特色功能、重点功能进行重点测试。