需求分析一點(diǎn)心得
需求分析一點(diǎn)心得
201*年8月15日,我休假回到公司,四川分支crm行業(yè)部進(jìn)行了四維分工,我分在了需求組。組長徐茜之前已經(jīng)與我溝通過需求組具體的工作明細(xì),但自己心里還是很擔(dān)心,是否能做好這份新工作,畢竟自己以前都是做的開發(fā)工作,接觸的都是代碼,很少編寫文檔;不過我還是很高興,新的工作具有挑戰(zhàn)性,可以更好的鍛煉自己各方面的能力;
首先我查看了一些以前同事寫的需求分析文檔,從中積累一些好的經(jīng)驗(yàn),比如如何描述需求要點(diǎn),如何繪制流程圖等;
然后給自己制定了工作要求,明確用戶需求、不遺漏需求點(diǎn)、對(duì)需求進(jìn)行分析、提出自己的意見和建議、輸出需求規(guī)格說明書給開發(fā)人員;就這樣我井井有序的開展著自己的新工作,本以為自己已經(jīng)做的夠細(xì)致了,幾周下來還是出現(xiàn)了不少問題。需求規(guī)格說明書寫的不夠細(xì)、自己寫的需求規(guī)格說明書開發(fā)人員看后理解的與需求原意不一致、測試上線開發(fā)點(diǎn)不齊全、設(shè)計(jì)需求時(shí)未考慮到后期的維護(hù)使維護(hù)工作增多、需求不能按照之前與用戶指定的時(shí)間上線等;對(duì)于這些問題,自己進(jìn)行了深入的思考,如何避免這些問題的出現(xiàn);深思后發(fā)現(xiàn)大家好像缺乏溝通,需求的每一個(gè)環(huán)節(jié)沒有貫穿起來,每個(gè)環(huán)節(jié)似乎都斷開了,不像以前一個(gè)需求自己與用戶溝通、自己開發(fā)、自己測試、上線,整個(gè)環(huán)節(jié)都在同一個(gè)人的掌控中,時(shí)間也是由自己安排;
作為需求分析負(fù)責(zé)人,自己是不是應(yīng)該貫穿整個(gè)需求,而不僅僅只是把輸出需求規(guī)格說明書作為一個(gè)需求分析工作完成的目標(biāo)呢?
首先溝通,與用戶溝通,明確需求要點(diǎn),不僅需要聆聽用戶的需求說明,還要懂得在用戶已說明的基礎(chǔ)上進(jìn)行拓展,發(fā)掘客戶沒有講出來的潛在需求。在已有業(yè)務(wù)的基礎(chǔ)上進(jìn)行模擬業(yè)務(wù)流程,分析業(yè)務(wù)是否走的通并且有無邏輯上不合理的地方。發(fā)現(xiàn)問題,及時(shí)與用戶溝通,及時(shí)修改需求;與開發(fā)組長溝通,明確開發(fā)人員和上線完成時(shí)間;與開發(fā)人員溝通,使開發(fā)人員知曉需求要點(diǎn),自己更好的完善需求分析規(guī)格說明書;與測試人員溝通,需求測試要點(diǎn),判斷需求上線的標(biāo)準(zhǔn);與維護(hù)人員溝通,對(duì)應(yīng)需求的維護(hù)工作如何開展等;
其次就是協(xié)調(diào),開發(fā)時(shí)間的協(xié)調(diào),如果用戶同時(shí)有幾個(gè)需求都要求比較緊急,那么需要我們協(xié)調(diào)用戶是否能將這些都很緊急的需求排一個(gè)優(yōu)先級(jí);需求要點(diǎn)協(xié)調(diào),如果兩個(gè)需求都要修改同一個(gè)模塊的代碼,那么為了保障程序版本問題,需要協(xié)調(diào)將兩個(gè)需求開發(fā)時(shí)間錯(cuò)開;以及當(dāng)維護(hù)人員發(fā)現(xiàn)模塊BUG時(shí),需要協(xié)調(diào)用戶發(fā)起對(duì)該BUG的優(yōu)化;
有時(shí)還需要引導(dǎo),引導(dǎo)用戶走向有利于系統(tǒng)開發(fā)的軌道上,用戶的一些需求,有些對(duì)整個(gè)業(yè)務(wù)其實(shí)可有可無,如果在實(shí)現(xiàn)起來很麻煩的話,可以引導(dǎo)用戶取消這個(gè)需求,避免對(duì)系統(tǒng)大的改造影響了其他正常的業(yè)務(wù),也浪費(fèi)了開發(fā)人員的時(shí)間。如果系統(tǒng)本來就已經(jīng)具備的功能,那么就要引導(dǎo)用戶復(fù)用該功能,使系統(tǒng)可以最大程度的復(fù)用原來的功能。提高系統(tǒng)的代碼的使用率,同時(shí)提高我們的工作效率。
最后就是完善,完善我們編寫的需求規(guī)格說明書,可以使用需求用例、業(yè)務(wù)邏輯圖、辦理流程圖、表格、界面圖片等對(duì)需求進(jìn)行說明,使需求規(guī)格說明書簡單易懂,避免歧義;
這一年的需求分析工作,使自己對(duì)該工作有了更多、更深的認(rèn)識(shí);不僅要認(rèn)真,還要有細(xì)心、耐心、有責(zé)任感;不僅要考慮當(dāng)前的需求,還要分析系統(tǒng)已經(jīng)具備的和將來需要支撐的;希望通過自己的努力,能將需求分析工作做的更好;
擴(kuò)展閱讀:做需求分析一點(diǎn)心得
1、需求分析前的準(zhǔn)備
在軟件開發(fā)過程中,需求分析可以說是核心任務(wù)之一,就像一支將要遠(yuǎn)航的船隊(duì),要在指定時(shí)間內(nèi)到達(dá)目錄地,他們需要一條正確的航線,才能到達(dá)目的地,如果航線有誤,他們將會(huì)誤時(shí)到達(dá),或是不回到原位將永遠(yuǎn)到達(dá)不了,這么重要的東西,但在國內(nèi)很多團(tuán)隊(duì)中缺少,雖然我也做了一些,但在項(xiàng)目完成的時(shí)候,回頭看看,其實(shí)我們做了很多不必要的事,浪費(fèi)了很多時(shí)間、人力和物力,為保證在今后的開發(fā)中減少這些錯(cuò)誤的發(fā)生,現(xiàn)將一些問題記錄下來。
為了了解系統(tǒng)需求,先可以從概要式的需求著手,再細(xì)化需求,需求分析必須擬定文檔,在寫文檔之前我們必須做好尋求分析的范圍,總結(jié)為以下幾點(diǎn):1.1要做一個(gè)什么樣的系統(tǒng)
這個(gè)不說,我想做軟件開發(fā)的人都知道,擬定這個(gè)后,一切才可以擴(kuò)展開,比如我們要做一個(gè)B2C的商城,要賣母嬰用品,知道了這些,我們就可以找現(xiàn)在網(wǎng)站有的B2C網(wǎng)站做參考,分析系統(tǒng)構(gòu)架,系統(tǒng)功能等。
1.2系統(tǒng)將要在什么樣的環(huán)境下進(jìn)行
我上次經(jīng)歷的一個(gè)系統(tǒng),就是要用asp.net重新發(fā)一個(gè)B2C商城,但有一些前提條件,以前公司有網(wǎng)站,是用java+MYSQL開發(fā)的,但我們開發(fā)的新系統(tǒng)必須兼容以前的數(shù)據(jù),如客戶信息,商品信息,還有一些資源信息,并且還要兼容Google,baidu收錄的地址路徑,還有與原ERP的通訊等條件,這樣讓我們的開發(fā)很受限制,這些需求就是這樣,你無法改變,所以在設(shè)計(jì)新系統(tǒng)的同時(shí)你必須考慮,要花時(shí)間去了解以前系統(tǒng)的功能,接口等,如果不了解,等你把新系統(tǒng)開發(fā)完了才發(fā)現(xiàn)系統(tǒng)脫離了公司原有的業(yè)務(wù)流程,讓公司無法運(yùn)作,那就代表你開發(fā)的系統(tǒng)根本沒有價(jià)值,我想這不是我們想要的結(jié)果。
1.3要解決哪些問題
開發(fā)出來軟件系統(tǒng)就是為了解決客戶需求的,一個(gè)B2C網(wǎng)站就是賣商品,主要由客戶、商品、購物車、定單組成,將這些核心的功能定義好,我想其它的意外都不會(huì)太影響到整個(gè)系統(tǒng)的進(jìn)程。
1.4將來可能會(huì)有哪些變化
面對(duì)將來的發(fā)展,我們也許不能完全考慮到,但與公司的戰(zhàn)略發(fā)展,可以提前考慮些,能想到多少就想多少,多多益善,我們開發(fā)一個(gè)系統(tǒng)不是只滿足當(dāng)前的需求,如果眼光只放在眼前,那么你這個(gè)系統(tǒng)很快就會(huì)被淘汰,功能也許不需要現(xiàn)在實(shí)現(xiàn),但接口總得留下吧,不然想改進(jìn)都是很困難的事,如果一個(gè)稍微的小需求都要?jiǎng)酉到y(tǒng)構(gòu)架,我想這個(gè)系統(tǒng)會(huì)越來越不穩(wěn)定,作為系統(tǒng)分析師,這塊也是至關(guān)重要的。
1.5系統(tǒng)可以維持任務(wù)的周期是多少
系統(tǒng)周期與公司戰(zhàn)略發(fā)展是緊扣的,一個(gè)系統(tǒng)的功能不可能隨著社會(huì)的變化,能一直滿足市場需要的,在設(shè)計(jì)系統(tǒng)的時(shí)候,可以了解一下公司的戰(zhàn)略發(fā)展,比如公司三年之內(nèi)要做成什么樣,客戶多少,網(wǎng)站瀏量,可以做下評(píng)估,這樣就考慮系統(tǒng)構(gòu)架的問題,你開始就準(zhǔn)備構(gòu)架一個(gè)大胖子,但現(xiàn)在需求簡單,在實(shí)際的運(yùn)行中,速度緩慢,其實(shí)你構(gòu)架越復(fù)雜,系統(tǒng)運(yùn)行就越緩慢,雖說現(xiàn)在很多大系統(tǒng)運(yùn)行的都很好,但要想想,人家服務(wù)器,網(wǎng)絡(luò)構(gòu)架是什么樣的,你不可能讓你的系統(tǒng)一線就有這么好的環(huán)境,就算有,那成本也太大了,一般的公司也吃不消。
1.6系統(tǒng)分幾個(gè)階段實(shí)施
在開發(fā)初期,我們不可能將系統(tǒng)所有的功能都能完成的很好,為了加快開進(jìn)度,為了系統(tǒng)能盡早上線,我們得像建樓一樣,分階段進(jìn)行,分段實(shí)施,如果我們現(xiàn)在只是要在網(wǎng)上賣商品,那我們就得把客戶管理、商品管理、購物車、定單管理這幾大塊實(shí)現(xiàn),把一個(gè)系統(tǒng)根基打好,誰都想讓自己的系統(tǒng)變成最強(qiáng)大的系統(tǒng),但這個(gè)想法幾乎是不可能完成的,如果我們把根基打好了,再在上面加以改進(jìn),添磚添瓦,根據(jù)客戶或市場的需要來完善,我想這個(gè)系統(tǒng)就會(huì)慢慢變成一個(gè)成功的系統(tǒng),對(duì)于B2C網(wǎng)站來說,能完成商業(yè)的需要,能讓公司的流程走順,那就是個(gè)好系統(tǒng),沒有最好的系統(tǒng),只有最適合的系統(tǒng)。分階段實(shí)施,可以有節(jié)約成本,也可以加快實(shí)施速度,不管是作為公司的管理人員還是開發(fā)人員,能盡快看到成果,會(huì)提高信心,可以舉個(gè)例子,在設(shè)計(jì)一個(gè)B2C商城的時(shí)候,我們除了客戶管理、商品管理、購物車、定單管理外,還要加入廣告管理、促銷管理、CPS、統(tǒng)計(jì)管理、用戶積分、虛擬幣、禮品、物流、接口等一些功能,如果開發(fā)周期只給兩個(gè)月,四個(gè)人,從系統(tǒng)設(shè)計(jì)到系統(tǒng)上線,怎么做?怎樣如期完成呢?如果你的團(tuán)隊(duì)都沒接觸過B2C這樣的系統(tǒng),開發(fā)起來是很難度的,在這樣的情況下,我們必須分段實(shí)施,抓主干,把核心的東西完成了,系統(tǒng)可以上線,雖然沒有理想的那么強(qiáng)大,但最少它能賺錢,再一個(gè)兩個(gè)月可以把客戶管理、商品管理、購物車、定單管理這幾塊主要的功能完善,公司業(yè)務(wù)可以進(jìn)行,后面的功能雖然很有必要,但也可以分個(gè)先后,系統(tǒng)上線了,能給大家看到東西,能用用,建議也會(huì)多些,對(duì)于系統(tǒng)的優(yōu)化改進(jìn),這個(gè)是無止盡的,如果沒有這些基本的東西,天天都會(huì)有人在你耳邊叫,你們什么時(shí)候上線呀,做了這么久,做的怎么樣了,讓你的團(tuán)隊(duì)心里承受著很大的壓力,就算你在兩個(gè)月內(nèi)把開發(fā)任務(wù)完成了,那你的測試通的過嗎,功能越多,問題越多,在后期維護(hù)問題越多,最后煩了,沒辦法,重構(gòu),那樣不是虧大了。
1.7確認(rèn)第一階段解決那些問題
在一個(gè)新的環(huán)境中,一個(gè)新的團(tuán)隊(duì),你說要在某一時(shí)間段里完成什么樣的系統(tǒng),你怎樣做到讓領(lǐng)導(dǎo)相信你,讓公司相信你,一個(gè)大一點(diǎn)的軟件系統(tǒng),少則幾個(gè)月,再多一點(diǎn)就一年半載,他們能等嗎,再說了他們不懂代碼,不會(huì)天天跟你的屁股后面問你,系統(tǒng)怎么樣了,做了哪些,就算這樣,我想你也進(jìn)了瘋?cè)嗽毫,所以我們做系統(tǒng)要打好第一槍,這樣才會(huì)得到更多人的支持和理解,如果你不能理解,可以去看看商殃變法中的《徒木立信》的典故。
至于軟件第一開發(fā)第一階段要做哪些事,這個(gè)要根據(jù)一個(gè)系統(tǒng)的核心功能去了解,只有建立好了框架,不要太急于求成,沒什么好處,把根基打好了,再想怎么包裝,都不是件難事。
1.8系統(tǒng)開發(fā)團(tuán)隊(duì)由哪些人組成
一個(gè)好的團(tuán)隊(duì),必定是發(fā)揮了團(tuán)隊(duì)中每個(gè)人的優(yōu)勢,在開發(fā)團(tuán)隊(duì)中,不是你技術(shù)能力強(qiáng),你就是最有價(jià)值的人,我相信在開發(fā)團(tuán)隊(duì)里沒有一個(gè)從頭到尾都能支持的能人,不是不沒,是我是覺得不可能存在,也許我么說有些人不服,其實(shí)我這么說也有我的理由,一個(gè)人也許有機(jī)會(huì)經(jīng)歷團(tuán)隊(duì)中的每個(gè)環(huán)節(jié),并且都能深入,但絕對(duì)不是一個(gè)機(jī)會(huì),如果有,那就是一個(gè)人的開發(fā),一個(gè)人的開發(fā)我想也不能叫團(tuán)隊(duì),有時(shí)候,一個(gè)人什么都能做,多了一個(gè)人,什么都做不好,但面對(duì)大的項(xiàng)目,不得不進(jìn)行團(tuán)隊(duì)合作。
我所在的公司,我進(jìn)去的時(shí)候,接到項(xiàng)目任務(wù),我開始還有些心虛,因?yàn)橛行┕ぷ魑乙矝]接觸過,但又不得不去做,但我很意外的時(shí)候,我們的團(tuán)隊(duì)中有一位項(xiàng)目助理,她的出現(xiàn)讓我們的團(tuán)隊(duì)協(xié)調(diào)管理得到了很好的實(shí)施,計(jì)劃任務(wù),可以做到很好的按排,但跟蹤管理,我能收集分配,但指定到人后,我很難看到進(jìn)展的情況,因?yàn)樽陨磉有很多的工作,開始我部署了項(xiàng)目管理系統(tǒng)的,收集需求和BUG,也指定到人,但反饋往往不及時(shí),因?yàn)槲矣袝r(shí)候隔一天才上去看,后來我將這項(xiàng)目工作交給了項(xiàng)目助理,讓她去管理這些,我發(fā)現(xiàn)她做的很好,她每天和我只花幾分鐘的時(shí)間做核對(duì),出現(xiàn)意外情況我就出現(xiàn)解決,她的出現(xiàn)把我和團(tuán)隊(duì)中的每個(gè)開發(fā)人員的工作連接起來,讓項(xiàng)目管理得以順利的實(shí)施。開發(fā)團(tuán)隊(duì)具體由哪些人組成,這是要根據(jù)公司實(shí)力,項(xiàng)目進(jìn)度和項(xiàng)目大小來定的,現(xiàn)在說幾個(gè)工作職則,可來靈活分配一下:
項(xiàng)目經(jīng)理:對(duì)項(xiàng)目的決策性問題進(jìn)行定位,一個(gè)功能做與不做,領(lǐng)導(dǎo)說的算
構(gòu)架師:控制技術(shù)問題,解決技術(shù)難題,對(duì)分配下來的任務(wù)進(jìn)行分析、評(píng)估,反饋給項(xiàng)目經(jīng)理,再進(jìn)行確定
項(xiàng)目助理:記錄團(tuán)隊(duì)會(huì)議內(nèi)容,協(xié)調(diào)工作中的日常事務(wù)
開發(fā)組長:調(diào)配開發(fā)組員,輔助組內(nèi)開發(fā)人員并對(duì)成員工作進(jìn)行監(jiān)管,一般由主程擔(dān)任開發(fā)人員:負(fù)責(zé)編寫代碼,按需求完成任務(wù)測試人員:對(duì)功能進(jìn)行測試
如果這里的每項(xiàng)目工作按排到個(gè)人,我想開發(fā)團(tuán)隊(duì)的協(xié)調(diào)管理最好。1.9系統(tǒng)運(yùn)行環(huán)境是什么樣的
在系統(tǒng)構(gòu)架時(shí),根據(jù)需要定義好,系統(tǒng)構(gòu)架、程序環(huán)境、網(wǎng)絡(luò)環(huán)境,如考慮分布式存儲(chǔ),日均訪問量、系統(tǒng)安全、成本預(yù)算等。
asp.net的開發(fā)成本是要比java的開成本低的。
Sqlserver的運(yùn)營成本是要oracle低的,但oracle在大型數(shù)據(jù)處理上要優(yōu)于SQLServer,如果是SNS站我覺得上Oracle會(huì)好些。
選擇什么樣的環(huán)境,在沒有特定要求的情況下,根據(jù)團(tuán)隊(duì)的現(xiàn)狀去考慮我覺得就差不多了。我們有了目的地將要遠(yuǎn)航,那么就得需要航海圖、船、船長、舵手、水手、水和食物,雖然這樣我們能保證100%完成任務(wù),因?yàn)榇蠛V械囊馔庹l也不會(huì)知曉,但我們理想的是我們能安全到達(dá),如果條件不允許,就算我們知道目的地在哪,出了海,我們將面對(duì)是一場艱辛冒險(xiǎn)旅程。
2、收集需求
需求的收集是個(gè)很繁瑣的過程,收集的不夠,開發(fā)過程中變化會(huì)很多,特別是你上了一個(gè)演示版本后,開始別人一點(diǎn)意見都沒,一看你的演示,你就意見一大堆,這樣的問題我想在很多項(xiàng)目中都出現(xiàn)過,所以先在收集需求的時(shí)候要和客戶或相關(guān)部門一一確認(rèn),我們考慮需求要從種兩種角度去考慮,一種是用戶角度,另一種是開發(fā)者角度,所以在談需求時(shí),必須邊聊邊記,把所談的話記錄整理,如果怕遺漏,可以錄音,然后將采用文檔的方式表達(dá)出來,將提出的需求加以分析,做下技術(shù)評(píng)估,如果有特別的難題可以提前讓開發(fā)人員做技術(shù)預(yù)研,在做評(píng)估后,需要分段實(shí)施的,就做好規(guī)劃,然后和提需求的人員確認(rèn),需求文檔的功能可以多寫點(diǎn),根據(jù)企業(yè)的發(fā)展,能考慮的都考慮,這樣可以在系統(tǒng)構(gòu)架時(shí),定位系統(tǒng)的生命周期時(shí),給以更多的參考,在需求定出階段后,我們得把要馬上實(shí)施的功能放在當(dāng)前,加以強(qiáng)化、細(xì)化,反復(fù)的進(jìn)行,條件允許的時(shí)候應(yīng)該做些Demo來確認(rèn)。
友情提示:本文中關(guān)于《需求分析一點(diǎn)心得》給出的范例僅供您參考拓展思維使用,需求分析一點(diǎn)心得:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。