软件项目后期收官时的一些问题和想法
最近项目收尾,看似就快到终点了,可是也磨了近一个月还没结束。今早起来仔细想想,都磨在哪了呢?其实无外乎两个方面:微调和debug。对比了最近一个月的工作日志和前一个月的日志,差别真是大啊。前一个月都是一周几个功能,后一个月几周都在针对一个功能调整。这确实是那所谓二八原则的一个体现。
其实项目也经历了很多,对这样的过程也毫无意外感,但这次只是想对微调这个东西思考一下。微调或者称为打磨也可以,说白了就是功能都基本完了,在界面、操作或一些流程上做优化,提高软件的易用性。这部分说起来容易做起来难。
其一目标不明确。
在项目初期很难定义出需要打磨的东西。一般是在大部分功能完成或系统集成之后才能明确的东西,甚至于在用户使用了系统之后才能明确的东西。如果是产品,那这块的空间就更大了,因为不是客户定制的东西,所以为了未来的销售做再多的打磨都不为过。
其二不能光明正大。
目标都不明确,如何估计时间和工作量。在项目初始很难把这部分的任务量估计出来,就算要做软件报价也不能把这部分直接写出来,因为客户看到之后一定觉得太有欺骗性了。所以要不就把时间和预算平摊到其它环节,要不就根本没考虑这部分。悲剧总是这样一次又一次准时上演。
这个问题怎么解决呢,我想针对定制的软件项目和一般的产品要按不同思路来处理。
定制软件项目这块涉及很多因素,我觉得最重要的就是沟通。在项目开始前和客户好好沟通,让他们意识到有这么个打磨环节在里面,会花费大量人力和时间,会提高软件质量。在开发中与客户保持联系,多对原型系统进行测试评估,争取能早日得到反馈。在后期多与客户协商,不是所有要求都能满足,争取能达到双赢。说到底就是千万别绕过这个问题,别藏着掖着,这样等到最后就比较难看了。
产品这块其实是市场、开发者和老板的一个相互协商。市场需要好的东西,开发者希望工作量少一些,容易开发一些,老板希望快一些,少花点钱。这几个角色是互相制约的,必须在这中间取得一个平衡。这道理在这里说了也是白说,这个平衡全天下估计也难有人能做好。像苹果的IPhone4手机和IOS系统,我想毫无疑问是经历过漫长的打磨历程的,在乔帮主没有把钱花光之前,没把设计人员和程序工程师累死之前,给了所有用户一个接近完美的产品。这个过程不可复制,不可模仿,因为大部分人都是把钱花光了,队伍散了,产品还一塌糊涂。
每当我听到有些开发的人三周可以交付一个项目,我总觉得很不可思议。直到公司找外包做网站时我才理解,那真是1000块钱,几天就出了。但是,那做出来的东西只能用垃圾来形容。所以我还是坚信一个成功的项目,一个好的产品绝对不可能在短时间内完成的,就像21天学通c++那样也是不可能培养出一个优秀的软件开发工程师。
软件后期完善的这个过程就像围棋的收官阶段,虽然大规模攻城略地已经结束,但边角旮旯的处理能力也同样是决定胜负的关键因素。