首先,聊聊和“需求”有關(guān)的事實


閱讀需要具備一定的需求工作經(jīng)驗,并非通過閱讀能夠直接獲取經(jīng)驗和知識,如果不具備經(jīng)驗可以跟有經(jīng)驗的人去交流,獲得知識需要認(rèn)真的思考,勤奮和努力

需求其實并非在談需求

需求是某種自然法則,等著你來發(fā)現(xiàn)。需求的活動主要不是編寫需求文檔,相反,它專注于理解業(yè)務(wù)問題,并為之提供解決方案。軟件是要解決某種問題,硬件和服務(wù)也是。需求發(fā)現(xiàn)的真正藝術(shù)是發(fā)現(xiàn)真實的問題。

如果我們必須構(gòu)建軟件,那么它必須為擁有它的人提供最理想的價值。


產(chǎn)品提供的利益必須與產(chǎn)品的成本相稱。“業(yè)務(wù)分析師”、“需求工程師”、“產(chǎn)品擁有者”、“系統(tǒng)分析師”以及其他“頭銜”的職責(zé),就是確定擁有者最看重的價值是什么。


如果軟件不必滿足需求,那你怎么干都行。但是,如果它打算滿足需求,你就必須知道要求是什么,才能構(gòu)建正確的軟件。


你必須得到需求的正確理解,并與客戶達(dá)成一致意見,否則你的產(chǎn)品或項目就會有嚴(yán)重的缺陷。不幸的是,需求并非總是得到正確的理解。軟件開發(fā)者(幾乎)有機(jī)會消除這些錯誤,但許多人選擇(或他們的項目經(jīng)理)幾乎跳過需求的發(fā)現(xiàn),直接輕率的開始構(gòu)建錯誤的產(chǎn)品。如果開始就發(fā)現(xiàn)了正確的需求,成本會低很多。


構(gòu)建一個軟件和解決一個業(yè)務(wù)問題之間,存在巨大的差別。前者不一定實現(xiàn)后者。


軟件要對擁有者有價值,就必須解決擁有者的業(yè)務(wù)問題。最多的錯誤就是需求錯誤,相當(dāng)多的軟件不能正確的解決問題。

我們永遠(yuǎn)不知道用戶批準(zhǔn)上一次交付是因為對它滿意,還是因為被過程搞得筋疲力盡。

我們必須無數(shù)次的強(qiáng)調(diào):軟件就是要解決一個業(yè)務(wù)問題。所有開發(fā)工作者都必須從問題開始,而不是從看到的解決方案開始。

需求不一定要寫下來,但構(gòu)建著必須知道它們


在某些情況下,口頭溝通需求更有效,在另一些情況下,必須永久的記錄下需求。需求的理由記錄了【團(tuán)隊】的決定,它也為【測試】者和【開發(fā)】者提供了清晰的指示,說明了需求的重要性,從而建議需要花多少工作量。此外,如果【維護(hù)】者知道為什么有這項需求,也會降低將來維護(hù)的成本。


需求的工作并不是要為項目增加額外負(fù)擔(dān),編寫需求的工作將帶來數(shù)倍的回報,因為需求的準(zhǔn)確性會影響將來所需要完成的工作。


客戶不一定總能帶給你答案,有時候客戶也不可能知道什么是對的,有時候他就是不知道需要什么。


傳統(tǒng)來講,需求活動被看成是某種類似速記員的任務(wù)。準(zhǔn)確記錄他們說的所有東西,并將他們的要求翻譯成產(chǎn)品的需求。需要考慮到利益相關(guān)者在試圖描述需求時的困難。展望一個產(chǎn)品來解決一個問題,尤其是問題并非總是理解的很徹底,也有“增量改進(jìn)”的問題,這種增量的方式通常排除了重大的創(chuàng)新,常常會導(dǎo)致平庸的產(chǎn)品,不能滿足期望。

需求不是偶然得到的,要通過某種有序的過程得到


所有重要的努力都需要有序的過程。這些過程不是因循守舊的過程,不是無頭無腦的執(zhí)行所有指令,不過問任何疑問,按照實現(xiàn)描述的順序,沒有任何變通。相反,有序的過程由一組任務(wù)構(gòu)成,實現(xiàn)預(yù)期的結(jié)果,但是這些任務(wù)的次序、重點和應(yīng)用程度總需要采用該過程的人或團(tuán)隊來決定。最重要的是,參與這個過程的人必須能看到,為什么過程中不同的任務(wù)是重要的,哪些任務(wù)對項目最重要。


你怎樣去迭代都可以,但仍需要理解業(yè)務(wù)的需求


迭代式開發(fā)方法變得越來越流行。這肯定是有意義的進(jìn)步,但像很多進(jìn)步一樣,這些技術(shù)有時候炒作過度了。


冷靜地頭腦會意識到,任何開發(fā)技術(shù)都需要發(fā)現(xiàn)需求,真實認(rèn)真開發(fā)的先決條件。需要冷靜的頭腦事先已經(jīng)將需求過程吸收到他們的開發(fā)生命周期中。聰明的做法不是廢棄需求,而是從一個不同的方向接近需求。


真正值得關(guān)注的是既要發(fā)現(xiàn)需求,又不必編寫無用的、不成熟的、浪費成本的成堆的文檔。不論你怎樣開發(fā)軟件,總是要理解客戶的業(yè)務(wù)問題,以及產(chǎn)品必須做些什么來解決這個問題(即它的需求)。


沒有銀彈。所有的方法和工具都無法彌補糟糕的想法和糟糕的手藝


雖然我們需要有一個有序的過程,但不應(yīng)該認(rèn)為它能夠代替思考。在需求的過程中,業(yè)務(wù)分析師需要面對幾個版本的需求,同時還要想象未來最好的軟件產(chǎn)品是怎樣的。


需求活動從來都不會是簡單的,想要成功,就需要業(yè)務(wù)分析師的思考和理解。會有一些自動化的工具可以有所幫助,但它們只能作為輔助手段,而不能夠代表最好的需求實踐。盲目的遵循事先制定的實踐,根本不能取得有經(jīng)驗的業(yè)務(wù)分析師能夠取得的結(jié)果。分析師最重要的工具:頭腦、眼睛和耳朵。

要想成功地實現(xiàn)需求,需求就必須可度量、可測試。


從本質(zhì)上說,功能需求是產(chǎn)品支持其擁有者的業(yè)務(wù)時必須要做的事。非公能需求是產(chǎn)品要在擁有者的環(huán)境中取得成功,必須將功能完成得多好進(jìn)行量化描述。


要讓構(gòu)建得產(chǎn)品完全滿足這些標(biāo)準(zhǔn),在編寫需求時就必須準(zhǔn)確。同時,必須考慮到需求來自于人,而人并非總是準(zhǔn)確,可能總是不準(zhǔn)確。要達(dá)到必要的準(zhǔn)確程度,必須對需求進(jìn)行某種測量。



即使完美的程序檢驗工作,也只能建立滿足規(guī)格說明的程序。軟件任務(wù)最難的部分在于,得到完整而一致的規(guī)格說明書。構(gòu)建一個程序的許多本質(zhì)工作,實際上就是消除規(guī)格說明書中的缺陷。

如果不能為需求找到測量指標(biāo),那么它就不是需求,只是一種無根據(jù)的想法。

作為業(yè)務(wù)分析師,你將改變用戶思考這個問題的方式,不是現(xiàn)在就是將來。


在你開始理解需求時,尤其在需求來自于不同的利益相關(guān)者時,你就開始建立一些抽象概念,并建立一系列詞匯表。你戰(zhàn)士業(yè)務(wù)過程的模型,與利益相關(guān)者一起發(fā)現(xiàn)工作的本質(zhì),得到清晰和可測量的需求,并將所有這些事實反饋給利益相關(guān)者。在做這些事情時,你就會改變(改進(jìn))它們對業(yè)務(wù)問題的看法。


如果人們對需求的含義有了更好的理解,他們就可能看到改進(jìn)的辦法。你的一部分工作就是幫助人們盡早理解和質(zhì)疑他們的需求,這樣讓他們就可以幫助你發(fā)現(xiàn)他們真正的需求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容