最近在讀鄒欣老師的書《構建之法》,讀到很多地方,相當有感觸,有種一拍大腿“啊,他說的太對了”的感覺,但都疏于記錄,今天又看到一個一拍大腿特帶感的一節,決定記錄下來。
競爭性需求分析的框架——NABCD
N——need,需求
我在做軟件的時候總是再想著,怎么能具體化用戶的需求,還有就是怎么能拒絕用戶新的或者不斷變更的需求。用戶有時候沖我噼里啪啦說了一大堆想要實現的功能,然而我完全沒有抓住重點,根本沒有明白用戶到底說的是啥。反而每次和我的老師討論需求的時候,我都非常清楚的明白他所說的需求是啥。我以前覺得這主要是因為需求是和他一塊工作的人提的,所以他理解起來特別不費勁,直到有一次我和他一同去聽用戶需求,我才明白,其實用戶對他提的需求也是噼里啪啦的,讓人摸不到頭腦,然而他總能和用戶不斷交流,最后確認用戶到底想要的是啥,而且告訴用戶,這個問題我將這么解決,會產生這樣的效果,你看這樣的效果是你想要的不,如果用戶說是,那么也就完成了一個需求的確定。讀《構建之法》我才覺得我以前的想法是愚蠢的,沒有站在用戶的角度考慮問題。我從來沒有發現過用戶的難處以及用戶真正想要的是什么,我只是不斷的在做軟件的過程中,希望用戶的需求簡單,易于實現,不要總是變更,而沒有考慮是不是用戶還有其它想要的需求,或者這個功能做完了之后是否真的滿足了用戶的需求。
A——Approach,做法
提到這個就相當的慚愧,我總是用我自己特別擅長的技術來解決問題,有時超出了自己技術范圍內的東西,更傾向于拒絕實現這個功能。然而每到這時求助于老師,老師一般會給兩個解決方案:
1.你試試這個東西(一個我沒見過的東西),這是一個標準解決方案。此時我的內心的崩潰的,因為我不知道這個東西會花費我多少時間,多少精力,既然它是一個標準的解決方案,那我如果沒有解決問題可咋整,如果我實驗沒成功得多丟人啊。不過大多數情況下,是非常成功的。
2.如果上面的不成功,老師會選擇一個我擅長的技術,然后給出一個曲線救國的方案。、
我覺得老師的做法才驗證了鄒欣老師書中所說的軟件工程的思想,不用最好的最前沿的技術,而使用已有的最穩定的技術保證軟件的正確運行。
B——Benefit,好處
東西做出來了,會給用戶帶來什么好處呢?這真的是用戶想要的嗎?你開發了一個聊天軟件,能比QQ好嗎?如果不比QQ好,那你開發的意義又在哪里呢?這覺得這個部分有點像研究生論文的高潮,你的東西為啥就好呢,現在世面上有那么多成熟的軟件,你的能比那些天天成千上萬的人都在用的軟件好?你的好在哪里呢?至少得有一點好吧,要不你做的就完全無用武之地啊,你只說這對你個人的成長起到了幫助,那你自己做個軟件玩玩好了,用戶拿他來做什么呢?
C——Competitors,競爭
也許我開發的軟件還不存在競爭者的問題,但我覺得我最大的對手就是市面上已經存在的軟件,我怎么保證用戶提到了的需求只有我的軟件可以滿足。可能市面上的軟件已經有了XYZ功能,而用戶提出的功能是WXYZ,那么我就贏了,我比市面上通用的軟件多了一個W的功能。這也就是書中所說的,找到我方的優勢才是最關鍵的。比如我的畢業論文,DSL大家已經都開始研究了,而我把DSL用在了電化學儀器上,你們沒有,那我的軟件的就比別人有競爭力了,我的畢業答辯也因此順利了一小點。
D——Delivery,推廣
其實我覺得這個是除了做軟件以外非常重要的一個環節,就是你怎么把自己的東西推廣出去。就好像畢業的時候找工作,你自己推銷你自己。清華北大的人家軟件硬實力就好比QQ和360,你和他們一塊推銷自己確定費勁了點。那如果你和同班同學一塊去應聘呢,你如何能在你的同學中脫穎而出呢?首先你得能拿得出好的產品,也就是你學習得差不多點,一問三不知的肯定不行。其次就是你得把自己的優勢拿出來,會C#的你就別應聘VB的崗位。第三就是你得找到正確的推銷自己的渠道,碩士博士你就不要站在刮大白的地方應聘,而應該多關注研究所,各大院校高端人才招聘等招聘場所。
文章列表