剛出道的程式員,在做需求分析的時候,總是經常挨批,客戶說他們不能按照客戶的要求去設計原型,領導說他們不用心去與客戶溝通交流。程式員總是感到自己很冤枉,明明客戶沒有給出一點建設性建議,程式員按照自己的意願去設計實現之後,結果卻不是客戶所需要的,程式員的怎麼就那麼悲催呢?
其實,程式員的悲催完全是由於程式員的自大引起的。有些程式員開發過幾個軟體,就以為自己對需求的把控程度很成熟了,於是在與使用者做需求的時候,就省去了做原型設計的過程,在聽了客戶的簡單介紹之後,就按照自己的想法把軟體的需求分析確定下來,向領導做個簡短的報告,然後開始搞開發。
作為程式員,作為需求分析設計人員,更應該明白客戶就是上帝。在與使用者交流的時候,不要把客戶想象成架構師,要把他們當做“白目”來對待,因為客戶的沒有開發過軟體的經驗,他們表達的想法不是按照程式來執行。如果程式員只是一味的揣測客戶的意願,而不能自己的所想轉換成原型,那麼很可能會弄巧成拙。
比如客戶甲說想要在應用軟體中加個公雞報時的功能。程式員A以為客戶想要一個公雞寵物,點擊時可以報時,而實際上客戶是想讓軟體可以設定鬧鐘,在某個時間點發出公雞鳴叫的聲音。可想而知,設計出來的寵物再好,也不是使用者所需要的。
作為一個程式員兼需求分析設計師,不但要將客戶的需求形成文檔,而且還要將使用者的需求轉換成作品,讓使用者能夠清晰的明白他們將來應用的軟體會在什麼平台上,以何種樣式展現。這樣客戶就會放心,也就是讓我們自己放心。
也許有一些客戶是屬於“鑽石王老五”類型的,他們對軟體一竅不通,偏偏還在和你談需求,他們會對軟體提出很多意見,他們會很固執的讓我們按照他的思想去設計、實現,儘管那樣可以,但是軟體的效能及維護性將大大降低,這時候我們需要去主動的引動客戶,不是客戶左右了你,就是你左右了客戶。
如果客戶左右了你,儘管可能你按照客戶的需求把軟體設計出來了,但這卻是一個失敗的軟體,因為它的運行效率很低,而且需求又經常發生變動,而這個軟體沒有絲毫的可擴充性,那麼最後客戶會說這個軟體設計師給他們設計的軟體不夠好,而不是客戶影響了正常的開發,那麼作為軟體的需求分析設計師就應該對這件事會責任。
一個好的需求分析設計師,應該是引導客戶去正確的使用軟體,提高軟體的效率與效能,而不是盲目的隨從客戶,被客戶所左右。