经常遇到做软件设计的朋友抱怨用户的需求老是变化,自己不断的修改自己的设计,结构搞得自己疲惫不堪,而且软件的应用效果也不理想。其实类似的问题每个人都会遇到,关键是我们应该如何对待,如果我们总是不断的修改代码以适应用户的要求,这时候我们应该考虑软件是否具备足够的让软件开发人员自己比较舒适的适应能力,如果不具备这种能力,则改进设计,甚至具备足够的适应能力,否则,软件设计真的就成了苦差事。
软件设计师不应该害怕需求的变化,更不应该为需求的变化而烦恼,任何需求的变化都可能蕴藏着巨大的机会,这种机会就是创新,这种创新就是未来的市场机遇,就是企业的进步的推动力。创新源于需求的不断变化。这是多年来从事软件开发工作的一点非常深刻的体会,这种变化包括各个方面的,可能是硬件的变化,可能是操作系统的变化,可能是用户群的变统统可以归结为用户需求的变化。我们的软件产品就是在需求不断的变化之中发展的。
如果我们为用户编写了一个软件,不管具体实现的功能如何,只要上述的几种变化出现,我们都不得不不对软件的设计进行调整,有时可能需要对系统的整体框架进行调,甚至重写部分或全部的源代码。刚开始学习编程的时,总是希望一条语句表达尽可能多的含义,梦想一个算法解决所有的问题,一个程序满足所有用户的要求,但这是不可能的,因为我们周围的世界处于不断的变化之中,今天你写的程序完全满足用户要求,一段时间之后,用户的系统升级了,你的程序在新的系统上运行就会产生错误,所以你必须更新程序以适应这种变化。这种变化还包括机器主板的变化引起硬件的冲突,某种型号板卡的停产或改型,用户特别指定的硬件设备等等。另外,我们的头脑不可能聪明到完全可以预览未来发生的事情,所有很难设计一个一劳永逸的软件,另外市场的选择,竞争对手的压力,也逼着我们不断的修改设计。
需求的变化是一个客观存在的事实,软件设计人员必须正确的面对这样的事实,不要指望你辛辛苦苦编写了一年的代码之后,你就可以高枕无忧,尽管你对软件的架构、算法处理的非常好,甚至可以说是完美,然而所有的你所津津乐道的那些完美的设计,都是相对的,当用户 的需求开始发生变化的时候,他们可能提出要增加一个新的功能,那么你很可能要改进设计。 除非你设计的东西没有人使用,否则对设计的更改总是不可避免的。
2000年底的时候,我的第一个商品化软件完成,尽管我不觉得多么好,但是在同其他厂商的竞争中赢得了用户的青睐,听到从市场上反馈的信息,我当时的感觉非常好,然而,很快我不得不修改我的代码,除了程序中存在的一些BUG之外,在用户群不到增加的情况下,用户的要求开始发生变化了,例如:A用户希望整个界面的字体采用楷体比较好,B用户50多岁的人比较多,希望字体能够大一些,可以看得清楚,C用户希望界面上的“医生”改为“医师”,D用户希望界面上的字段数量少一些,等等诸如此类的。关键是有些用户的需求是存在冲突 的,如果程序满足了张三的要求,而张三所要求的东西恰恰是李四要极力避免的,所以对于使用VB时间不长,经验不多的我来说,只能靠保留多个版本来解决这样的问题,我为每个用户保留一个备份,这样每个用户的要求都可以满足了,但是后期的代码的维护几乎让我陷入绝望的境地,试想一下,一个存在问题的函数,需要你在10个甚至更多的版本上同时修改,是一种什么样的感觉,而且每个版本的程序都多少有点区别,任何一次修改,你都必须小心翼翼,一不留神就会产生一个新的BUG,这种更改让人精神紧张。或许,我应该使用VSS之类的工具管理代码,但是我当时根本不知道世界上有这样的一种工具。所以在万般无奈之下,我必须想办法拯救自己,可不能陷入
项目经理胜任力免费测评PMQ上线啦!快来测测你排多少名吧~
http://www.leadge.com/pmqhd/index.html