有时候我也会想,为什么我们做不好软件项目?
其实,我们真的要是用心在做软件项目,应该是能做得好的,但是强制要求人人都用心去做项目,比较难,很难。
1. 我们做事往往喜欢稀里糊涂,不管是沟通、设计、测试、上线各个环节上都喜欢稀里糊涂差不多就可以的做法,但是这些不严谨的做法,遇到真正需要客户用的时候就出了大问题了,客户需要每个功能都是准确无误的否则无法达到他的实际工作流程了,这就会导致客户无法用,无法验收付款,软件无法满足客户的实际要求,其实这一切都从源头就开始了,例如签订合同时就开始了。
2. 合同里各个模块的功能、性能、验收标准、质量要求、设计文档、工期、里程碑,人员配备、进度确认、违约责任等等各个环节是否都写得很详细?以后出了问题,就按合同办事,比较简单一些,也尽量避免说不清楚的事情发生。
3. 是否有明确的功能需求、严格设计、高质量的编码、严格测试了?否则怎么可能给客户用?项目经理是否能把握好项目功能范围,项目的规模能否控制住?把握好整个方向、一直目标明确的进行软件项目?
4. 我们日常生活里,很多事情可以稀里糊涂是没事的,差不多就可以了也不会出大问题,也不大影响正常工作,但是软件这东西是很严谨的事情,不是稀里糊涂就可以用了,SQL语句写错了,整个系统可能会崩溃,并发没处理好,可能会导致致命的错误,权限没处理好,可能会引起没必要的麻烦?
5. 我们发现了错误后,又不断去修正程序,是否相应的修正设计了,数据库结构等等?是否这里的修正又影响了哪里的程序,反复测试,反复修改,来一拨人重新折腾一次,换一拨人,重新测试一次,同一个功能,换了N拨人反复在测试。
6. 最后整个系统就经不起客户的折腾,没折腾几下,系统就彻底瘫痪了,再加上人员也不稳定,开发的人也走了,又来了一波人,又从新测试,重新编码,可能项目经理也换了好几拨了,谁都最怕收拾别人的乱摊子。
7. 项目搞到最后、客户也累了、开发人员也累了、项目经理也累了、老板也没赚到钱,亏了不少,谁也没赚到钱,谁也没得力,大家都败了。
8. 只有每个环节都严格把关的,杜绝重复建设、浪费人力物力的事情,做出每个东西不会反复拆了又建,建了又拆,能一口气做到位。
我们经常看到,大马路没修几年,又开挖,补好没几年,又挖开,反复挖来挖去,若当时的设计合理、规划合理,用这个钱财去修建其他马路,我们的国家将会变得多好?就算捐给穷苦老百姓也可以啊。
说白了,核心思想就是:
严格签订合同 -》 严格设计 -》 高质量编码实现 -》 严格测试 -》 严格验收, 各个里程碑严格控制进度。
有目的有计划的、做一个功能是一个功能,写好一个页面是一个页面,测试一个页面是一个页面,这个软件项目就有希望能做好。