經(jīng)常遇到做軟件設(shè)計(jì)的朋友抱怨用戶的需求老是變化,自己不斷的修改自己的設(shè)計(jì),結(jié)構(gòu)搞得自己疲憊不堪,而且軟件的應(yīng)用效果也不理想。其實(shí)類似的問題每個(gè)人都會(huì)遇到,關(guān)鍵是我們應(yīng)該如何對(duì)待,如果我們總是不斷的修改代碼以適應(yīng)用戶的要求,這時(shí)候我們應(yīng)該考慮軟件是否具備足夠的讓軟件開發(fā)人員自己比較舒適的適應(yīng)能力,如果不具備這種能力,則改進(jìn)設(shè)計(jì),甚至具備足夠的適應(yīng)能力,否則,軟件設(shè)計(jì)真的就成了苦差事。
軟件設(shè)計(jì)師不應(yīng)該害怕需求的變化,更不應(yīng)該為需求的變化而煩惱,任何需求的變化都可能蘊(yùn)藏著巨大的機(jī)會(huì),這種機(jī)會(huì)就是創(chuàng)新,這種創(chuàng)新就是未來的市場(chǎng)機(jī)遇,就是企業(yè)的進(jìn)步的推動(dòng)力。創(chuàng)新源于需求的不斷變化。這是多年來從事軟件開發(fā)工作的一點(diǎn)非常深刻的體會(huì),這種變化包括各個(gè)方面的,可能是硬件的變化,可能是操作系統(tǒng)的變化,可能是用戶群的變統(tǒng)統(tǒng)可以歸結(jié)為用戶需求的變化。我們的軟件產(chǎn)品就是在需求不斷的變化之中發(fā)展的。
如果我們?yōu)橛脩艟帉懥艘粋€(gè)軟件,不管具體實(shí)現(xiàn)的功能如何,只要上述的幾種變化出現(xiàn),我們都不得不不對(duì)軟件的設(shè)計(jì)進(jìn)行調(diào)整,有時(shí)可能需要對(duì)系統(tǒng)的整體框架進(jìn)行調(diào),甚至重寫部分或全部的源代碼。剛開始學(xué)習(xí)編程的時(shí),總是希望一條語句表達(dá)盡可能多的含義,夢(mèng)想一個(gè)算法解決所有的問題,一個(gè)程序滿足所有用戶的要求,但這是不可能的,因?yàn)槲覀冎車氖澜缣幱诓粩嗟淖兓校裉炷銓懙某绦蛲耆珴M足用戶要求,一段時(shí)間之后,用戶的系統(tǒng)升級(jí)了,你的程序在新的系統(tǒng)上運(yùn)行就會(huì)產(chǎn)生錯(cuò)誤,所以你必須更新程序以適應(yīng)這種變化。這種變化還包括機(jī)器主板的變化引起硬件的沖突,某種型號(hào)板卡的停產(chǎn)或改型,用戶特別指定的硬件設(shè)備等等。另外,我們的頭腦不可能聰明到完全可以預(yù)覽未來發(fā)生的事情,所有很難設(shè)計(jì)一個(gè)一勞永逸的軟件,另外市場(chǎng)的選擇,競(jìng)爭對(duì)手的壓力,也逼著我們不斷的修改設(shè)計(jì)。
需求的變化是一個(gè)客觀存在的事實(shí),軟件設(shè)計(jì)人員必須正確的面對(duì)這樣的事實(shí),不要指望你辛辛苦苦編寫了一年的代碼之后,你就可以高枕無憂,盡管你對(duì)軟件的架構(gòu)、算法處理的非常好,甚至可以說是完美,然而所有的你所津津樂道的那些完美的設(shè)計(jì),都是相對(duì)的,當(dāng)用戶 的需求開始發(fā)生變化的時(shí)候,他們可能提出要增加一個(gè)新的功能,那么你很可能要改進(jìn)設(shè)計(jì)。 除非你設(shè)計(jì)的東西沒有人使用,否則對(duì)設(shè)計(jì)的更改總是不可避免的。
2000年底的時(shí)候,我的第一個(gè)商品化軟件完成,盡管我不覺得多么好,但是在同其他廠商的競(jìng)爭中贏得了用戶的青睞,聽到從市場(chǎng)上反饋的信息,我當(dāng)時(shí)的感覺非常好,然而,很快我不得不修改我的代碼,除了程序中存在的一些BUG之外,在用戶群不到增加的情況下,用戶的要求開始發(fā)生變化了,例如:A用戶希望整個(gè)界面的字體采用楷體比較好,B用戶50多歲的人比較多,希望字體能夠大一些,可以看得清楚,C用戶希望界面上的“醫(yī)生”改為“醫(yī)師”,D用戶希望界面上的字段數(shù)量少一些,等等諸如此類的。關(guān)鍵是有些用戶的需求是存在沖突 的,如果程序滿足了張三的要求,而張三所要求的東西恰恰是李四要極力避免的,所以對(duì)于使用VB時(shí)間不長,經(jīng)驗(yàn)不多的我來說,只能靠保留多個(gè)版本來解決這樣的問題,我為每個(gè)用戶保留一個(gè)備份,這樣每個(gè)用戶的要求都可以滿足了,但是后期的代碼的維護(hù)幾乎讓我陷入絕望的境地,試想一下,一個(gè)存在問題的函數(shù),需要你在10個(gè)甚至更多的版本上同時(shí)修改,是一種什么樣的感覺,而且每個(gè)版本的程序都多少有點(diǎn)區(qū)別,任何一次修改,你都必須小心翼翼,一不留神就會(huì)產(chǎn)生一個(gè)新的BUG,這種更改讓人精神緊張。或許,我應(yīng)該使用VSS之類的工具管理代碼,但是我當(dāng)時(shí)根本不知道世界上有這樣的一種工具。所以在萬般無奈之下,我必須想辦法拯救自己,可不能陷入
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來測(cè)測(cè)你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html