现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD
《構建之法 - 現代軟件工程》課件??
互聯網時代對于創新者來說, 既是一個偉大的時代, 又是一個糟糕的時代。 你有很多機會做出影響世界的產品,? 但是, 似乎任何想法都被別人想到過了, 做出來了, 上市了, 移植到各種平臺上去了…? 那么我們后來人除了羨慕別人生得早, 還有什么機會呢?? 但是往往不經意間, 在同學們熱衷于偷菜, 三國殺, 玩朋友圈的時候,? 又一批新的想法, 新的技術蜂擁而至, 別人又想出了新的點子, 新的商業模式.? 我們的菜偷了不少, 三國殺玩了好幾個通宵,? 但是想法還是沒有 …
在《現代軟件工程》 這門課里, 同學們不能穿新鞋, 走老路 - 學習了很多新技術, 新的開發模式, 新的團隊管理方法, 卻做一個毫無新意, 沒人使用, 演示后就扔掉的東西 (例如: 虛擬的學籍管理系統, 圖書館管理系統…)。? 我們要做實用并且創新的項目。
那我們怎么提出新的創意, 怎么說服別人我的創意是靠譜的?? 有些同學會通過“二拍”的辦法來解決:
?? - 拍腦袋: 嘿, 咱們做一個圖書拍賣網站怎么樣?
?? - 拍胸脯: 沒問題的, 市面上Asp.net 的書很多, 我看兩個晚上就能寫出一個購物網站。
這些事情光靠拍腦袋和拍胸脯是不夠的, “二拍" 的后果往往是第三拍 - 拍屁股走人.? 有些同學可能還會遭到腦袋被磚頭拍, 或者被胸襲的后果。 如果不能拍腦袋, 胸脯, 屁股,? 那我們怎么才能想出靠譜的想法,? 然后有條理地說服別人?? 在宿舍里睡覺, 聚餐, 喝酒, 搞頭腦風暴?
下面是一個比較系統的框架 - NABCD 模型, 可供大家參考:
1) N (Need 需求)
??? 你的創意解決了用戶的什么需求??? 這個需求可以是明確的, 公開的 (例如: 希望能上網玩三國殺).? 也可能是說不清道不明的, 例如 - 以前沒人說: 嗯, 如果我能找到這樣一個網站, 我可以去偷菜, 就好了…
??? 我們要充分了解用戶的痛苦, 他們對已有軟件, 服務不滿意的地方。但是用戶往往也不知道顛覆型的創新。 例如亨利 · 福特 當年發明汽車之前, 如果他深入用戶之中, 了解他們的需求, 用戶會告訴他 - 我希望我的馬車更快一些!??
? ?需求可以進一步分析:
這是剛性需求,或輔助性需求?需求的量有多大? 需求會一直存在么? 很多同學想象力非常豐富,覺得一定會成千上萬的用戶來使用我想出來的軟件。那么可以實踐一下,找到10個潛在用戶,他們表示“一定會試用你的軟件”, 那么就算你找到了合適的需求 (Need).?
2) A (Approach 做法)
??? 好, 你找到了用戶的痛苦,? 下一步, 得看看你有什么招數, 特別是獨特的招數, 來解決用戶的痛苦。? 你不能說我會C++, Java,所以我一定可以寫好這個軟件.? 你得有獨特的辦法,? 例如, 有人臉識別技術, 會做超大規模的數據處理。 那你 (你的團隊) 會什么呢?? 只會冒泡排序?
??? 這些招數不光是技術上的, 也可以是商業模式上的, 地域的, 人脈的, 行業的.?
? ? 招數也可以進一步分析:
? ? 基本的招數, 獨特的招數, 招數的可行性, 技術可行性,法律法規可行性。
?? ? 一個剛成立的團隊,他們對自己的實際能力往往不太了解。 例如有學生說 - 我懂 Java,其實他只是上過一個講Java 的課,開卷考試通過而已,和在實際中能用 Java 語言和相關的框架按時按量地完成任務還差得很遠。 那么,團隊會碰到什么困難,團隊成員有什么能力和辦法來解決這些困難呢?? 請講一講。
3) B (Benefit? 好處)
??? 這時候你已經弄清了需求,有了獨特的解決問題的辦法,? 那你這個產品/服務會給客戶/用戶帶來什么具體好處呢?? 如果用戶已經有一個解決方案 (例如用戶已經在用 QQ 聊天),? 那你的產品具體有哪些好處, 能讓用戶離開現有產品, 使用你的產品來聊天呢?? 另外這還有一個 Benefit/Cost (成本) 的問題。? 如果你要用戶必須有8G 內存, 最好的視頻驅動, 20M 寬帶連接, 才能使用你的 “更好的”視頻聊天工具,? 那會有多少用戶愿意支付這個成本呢??
?? ? Benefit 還可以指對自己團隊/公司的好處。 ?
4) C (Competitors 競爭)
競爭對手也沒有閑著, 這個市場有多大, 目前有多少競爭者在瓜分, 你了解么? 競爭者是單獨的,還是存在一個行業鏈,各個階段的競爭者都一樣么? ?你如果不是最先進入某個市場的產品, 你還能贏么? 我們的新想法可能要和已有的產品競爭,說服用戶放棄一個已經使用了一段時間的產品,來用我們的產品,是有不少困難。?
請注意:我們的NABCD中的 N (Need)需求,要經得起考驗。 例如:問:你希望有一個幫你記得事情的程序么? 答:需要!好!? 但是問題就不能這樣簡單地解決了(太膚淺)。? 項目組還要再問:現在市場上已經有很多這樣的程序,為何它們沒有幫助到你? 為何我這個程序就一定能幫到你?? 為何你一定會堅持用這個程序?? 要說明項目組的程序為何能成為用戶較長時間使用的產品,優于現有產品(列出具體理由)。
例如:項目小組問用戶:“你希望有一個幫你記得事情的程序么?”? ?答:需要!項目組說:“好!說明我們會有很多用戶。調查圓滿成功!”?
且慢! 問題就不能這樣簡單地解決了(太膚淺)。 項目組還要再問:現在市場上已經有很多這樣的程序,為何它們沒有幫助到你? 為何我這個程序就一定能幫到你? 為何你一定會堅持用這個程序? 要說明項目組的程序為何能成為用戶較長時間使用的產品,優于現有產品(列出具體理由)
我們還要想到, 還有一個隱藏著的競爭對手是 “不消費” -- 很多用戶根本就不用這個領域的任何產品, 你怎么能讓他們完成從 0 到 1 的轉變? 如果你成為他們的第一個產品,那你就是 First Mover,? 有很多優勢。? ?大家可以看看有關 First Mover Advantage (FMA),? Second Mover Advantage (SMA) 的描述。
關于更多NABC 以及相關的案例, 論述, 大家可以看這本很厚的書 -?Innovation: The Five Disciplines for Creating What Customers Want
5)?D (Delivery 交付,? Data 數據)??
在練習了多次的 NABC 之后, 我意識到也許還應該加一個D: Delivery。 怎樣把你的創新產品交到用戶的手中?
例1, 你想到了一個好主意, 建一個比 hao123 更好的導航頁面! ?我們姑且認為NABC 都沒問題,? 那如何把這么好, 這么簡單的產品交到 (Deliver)?用戶手中呢?? ?用戶怎么能知道你的產品?你如何利用互聯網(或者其他途徑)把這一福音傳遍你的目標用戶?? 這一方面在早期的軟件開發者的角度來看,應該是 “市場部門”?該做的事。? 但是,現在網絡已經成為絕大多數軟件產品一一部分,對社交網絡的應用不會發生在產品開發完畢之后,而是在早期就會成為產品規劃和功能的一部分。 ?
例2,?你想到了一個手機的應用, NABC 都不錯,? 那如何把產品交到千萬個用戶手中呢? 你怎么去找到你的目標用戶?光靠在幾個App 市場去投放么,誰會看見這個App 呢?這是遠遠不夠的!?
除了交付給用戶的手段,你還要了解你的應用到底產生了什么效果。 我們還要看 D: Data 你有什么數據來證明新的功能帶來的好處? 團隊做了用戶調查么? 有什么量化的指標, 例如 NPS(凈推薦值)?
注意,“創新”可以分為改良性的創新 incremental innovation - (軟件中增加幾個功能,? 把某個程序變得更快一點,? 把程序移植到新的平臺), 和顛覆性的創新 (disruptive innovation).?? 這兩種類型各有其重要性, 顛覆性的創新往往還沒有明確定義的市場或競爭對手,但并不能說此類創新的威力不大, 創新者要鍛煉表達能力,把自己項目真正的獨特之處展現出來。?
【作業】請同學們把自己項目的NABCD 都寫出來。
全新的產品:
各位領導/投資人/合作伙伴: 我們的 <產品> 是為了解決 <目標用戶> 的痛苦, 他們需要 <Need>, 但是現有的方案并沒有很好地解決這些需求,我們有獨特的辦法 <Approach>,? 它能給用戶帶來好處 <Benefit>, 遠遠超過競爭對手 <Competitor>, 讓潛在的用戶成為我們的用戶。 同時,我們有高效率的 <Delivery> 方法,能很快地讓大部分用戶知道我們的產品,并進一步傳播。??
增量改進的功能:
各位領導/合作伙伴: 我們的 <功能改進> 是為了解決 <目標用戶> 的痛苦, 他們需要 <Need>, 但是現有的方案并沒有很好地解決這些需求,我們有獨特的辦法 <Approach>,? 它能給用戶帶來好處 <Benefit>, 遠遠超過競爭對手 <Competitor>,包括我們以前的版本。我們有數據 <Data> (用戶調查)支持這一個結論。 我們相信新的改進能給我們帶來 <Data> 的業績改善 (用戶量,使用時間,評價,收入)。? ?
?3.?把上面的這段話錄制為視頻,上傳到視頻網站,并把鏈接發到個人/團隊博客上。?
?【作業2】 以終為始,假設一切順利,產品發布了,你怎么宣傳這個產品呢?請寫一個新聞稿,描述你的新產品在新聞發布會上的情況
標題 用讀者(你的目標客戶)能理解的方式給產品起個名字。副標題 描述產品的目標客戶群,他們將會得到什么好處。在標題下用一句話說清楚。總結 總結產品和帶來的好處,核心內容。設想你讀者只關注這一段,不會再往下看了。問題 描述你產品解決的問題。解決方案 描述產品如何優雅地解決問題。你的引證 引用一位你團隊領導所說的話。如何開始 描述開始使用我們的產品是多么的簡單。客戶評述 假想一個客戶的評價,描述他們如何體驗到你產品帶來的好處。(這個時候要用到 典型用戶和典型場景了)收尾和號召 收尾然后為讀者指明下一步的方向。
總結
以上是生活随笔為你收集整理的现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sqlite查询空日期类型_SQLite
- 下一篇: 清华大学 现代软件工程 学生特别想学的领