现代软件工程 第八章 【需求分析】练习与讨论
1? 擴展閱讀
下面兩篇文章也說明了軟件估計的難度:
??? Steve McConnell 軟件估計的 10 種罪:http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf
??? Quora精選: 為什么軟件開發(fā)周期總是預估的2~3倍http://jandan.net/2013/07/16/quora-software-development.html
2? 用戶調(diào)研的對象
我們說了這么多用戶調(diào)研,很多人假設評價軟件的就是購買軟件的,就是使用軟件的,但是未必。看下面的例子:
1.?你要寫一個中學生學習英語的軟件,你找誰去做用戶調(diào)研?
??? 中學生 - 最終用戶。
??? 家長 - 他們是要掏錢的人,他們不會每天都用軟件,有些人都不太會英語,但是他們也有需求。
??? 學校老師 - 他們是有巨大影響力的人,他們說不定立下一道規(guī)矩,我們班級就用某某軟件!?
2.?你要寫一個企業(yè)管理軟件, 你要找誰去做用戶調(diào)研? 請列出你認為重要的用戶類型和你認為合適的用戶調(diào)研的方式。
3? 開發(fā)速度的算術(shù)題
在一個軟件項目中,軟件團隊預計每天的進度為 30 小時(即,完成了30小時的工作量)。當項目完成了一半的總工作量的時候,大家發(fā)現(xiàn)實際的進度為15小時/天,問:在余下的時間中, 團隊的進度要到多少,才能在項目結(jié)束時讓整個項目的平均進度恢復到每天30小時工作量?
4. 一個目標/決心/估計的故事:某項目本來進行得很順利,大領(lǐng)導非要全體人員脫產(chǎn)開一天的動員大會,會議結(jié)束時, 領(lǐng)導熱情地問大家:大家對如期完成項目有信心么?? 這時,項目經(jīng)理站起來說:我們本來是可以按期完成的,現(xiàn)在開了一天會,我們已經(jīng)延期了一天。
大家覺得這樣的項目經(jīng)理是好還是不好?
同學們的意見:
果凍:首先,延期一天也叫延期嗎…其次居然把進度卡這么精確沒有緩沖時間我估計項目本來就得延期。。。
大牛:大部分情況下項目按期完成并沒有多大價值,除非是為了給團隊一點階段性的激勵
你有什么意見?
大牛說,我接一個私活,很簡單的,就不用搞那么多的形式主義了吧,我們直接開干,用代碼說話!請分析下面例子
http://www.cnblogs.com/yhyjy/p/4444094.html
如果你來接這個私活,應該怎么做?
專家的意見供大家參考:
??? The two causes of runaways that stand head and shoulders above all others are poor (usually optimistic) estimation and unstable requirements.
Glass, Robert L. (2002-10-28). Facts and Fallacies of Software Engineering (Kindle Locations 736-737). Pearson Education. Kindle Edition.
??? Most software estimates are made either by upper management or by marketing, not by the people who will build the software or their managers. Estimation is, therefore, done by the wrong people.
Glass, Robert L. (2002-10-28). Facts and Fallacies of Software Engineering (Kindle Locations 853-854). Pearson Education. Kindle Edition.
5. 具體項目練習:
??? http://www.cnblogs.com/xinz/p/3308608.html
6. 看看縫紉機大叔是如何解決用戶需求的
??? http://weibo.com/2694810701/BpI8Km1UW#_rnd1412244033760?
8. 用戶真正的需求和正確的解決方案
??? 面對一個比較難的問題, 有時候項目經(jīng)理或者程序員會想到一個奇妙的主意,哇,就這樣做吧,搞定!? 但是一些聽上去很妙的辦法真的解決了用戶的問題? 請看這個例子,用戶發(fā)現(xiàn) “原理” 之后的心情:
?????? http://www.zhihu.com/question/26806900/answer/34095090
?????? 原理:什么原理能夠在不越獄的情況下識別騷擾電話呢?
?????? 尼瑪原理就是在老子的通訊錄里面自動添加上了成千上萬個騷擾電話啊!
?????? 老子打開通訊錄發(fā)現(xiàn)了從haoma1 到haoma7,這7個新添加的聯(lián)系人啊!
?????? 每個聯(lián)系人里面都儲存了成千上萬去TM的誰知道有多少個號碼啊!
?????? 然后統(tǒng)一整了個頭像是題主配的那個圖的樣子啊!
?????? 這樣就尼瑪?shù)乃闶窃诓辉姜z下幫我識別騷擾電話了么!
?有更好的辦法么?
9. 用戶的需求似乎都被滿足了,咋辦?
??? 在市場上已經(jīng)有一個主流軟件滿足的大部分用戶的顯性需求的情況下,后來者如何挖掘用戶需求?
??? http://www.zhihu.com/question/22310847
??? 請為后來者想幾個辦法, 用戶的需求真的被滿足了么?
10. 團隊練習 - NABCD 寫作,視頻,并且互評
請同學們把自己項目的NABCD 都寫出來。
1) 列成詳細的條目,用具體的事實和分析說明。
2)把這些要點都組合成為一段話? --? 當你要向別人兜售你的項目的時候, 你通常只有很短的時間 (電梯演說),能否自然而有條理地把項目說清楚?? 請用你產(chǎn)品中實際的元素代替 <> 中的抽象概念。
? ? ?各位領(lǐng)導/投資人/用戶/合作伙伴: 我們的產(chǎn)品 <foo> 是為了解決 <目標用戶> 的痛苦, 他們需要 <Need>, 但是現(xiàn)有的方案并沒有很好地解決這些需求,我們有獨特的辦法 <Approach>,? 它能給用戶帶來好處 <Benefit>, 遠遠超過目前市場上的競爭對手 <Competitor>。??同時,我們有高效率的 <Delivery> 方法,能很快地讓大部分用戶知道我們的產(chǎn)品,并進一步傳播。 ?
3)把上面的這段話錄制為視頻,上傳到視頻網(wǎng)站,并把鏈接發(fā)到個人/團隊博客上。?
????? NABCD參考 (參見?http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html)
同學們的實際作業(yè)例子:
http://www.cnblogs.com/liangzhilin/p/5462486.html
http://www.cnblogs.com/jjy520/p/5463552.html
http://www.cnblogs.com/hgf520/p/5457322.html?
4) 每個團隊發(fā)布了博客/視頻之后,? 其他團隊對每一個團隊的博客進行排名 (1,2,3... ) ,排名沒有并列。??? 并且把排名的理由寫到博客上, 對每個團隊的分析不得少于 140 字 (除非這個團隊沒有寫博客或者提供足夠的材料)?.
如何寫出140 字的分析??
對這個項目的一句話描述
這個項目的優(yōu)點
這個項目計劃的缺點? (需求符合實際么? 符合你的認知么?技術(shù)能滿足用戶的需求么? ...)
如果你來領(lǐng)導項目,你會做什么不一樣的事情?
這個練習的目的是讓團隊運用掌握的軟工知識去評價別人做的需求分析。?? 然后助教自己也對所有團隊的 NABCD 博客排名, 這樣, 助教就能夠比較快速地收集到所有團隊 需求分析的分數(shù)。??
11. 用戶界面設計,快速設計并驗證需求
不要等到所有代碼寫好之后再去驗證需求,請用合適的原型設計工具描述用戶界面和需求,然后找用戶驗證。請用下面工具來描述你的產(chǎn)品原型:
工具 Axure ?http://www.cnblogs.com/powertoolsteam/p/4763010.html
墨刀: https://modao.cc/?
MockPlus:?mockplus
Balsamiq Mockup:?https://balsamiq.com/products/??
GUI Design Studio:?https://www.carettasoftware.com/guidesignstudio/???
12. 如何平衡各種需求, 如果只滿足其中部分需求, 會怎么樣?
顧客對于要交付的軟件和服務,都是有很多美好的需求的,例如,交付要快, 人工要便宜, 質(zhì)量要高,最好軟件本身是免費的。 但是一個軟件團隊的確不能同時滿足這么多需求,如何讓顧客知道她們的“多快好省”愿望是不可能達到的呢??
在上圖中,用戶希望軟件開發(fā)的又快, 又便宜 (人工便宜),質(zhì)量又好, 最好是免費的。? 那么,如果只滿足部分的需求, 我們會得到什么樣的軟件呢?
例如,上圖的 ① 說明, 如果希望軟件做得又快,又低成本(人工便宜), 不考慮其他要求, 那么,我們會得到大致什么樣的軟件呢?
例如,上圖的 ⑤ 說明, 如果希望軟件是免費的,而且要很快交付,越快越好, 那么,這樣的軟件有什么特點呢?
請把 ① 到 ⑦ 的需求組合會導致什么樣的軟件, 會出現(xiàn)什么樣的問題, 都列出來。
總結(jié)
以上是生活随笔為你收集整理的现代软件工程 第八章 【需求分析】练习与讨论的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hana 表空间_oracle curr
- 下一篇: AI应用开发基础傻瓜书系列3-损失函数