英語學習APP的案例分析
很多同學有誤解,軟體工程課是否就是理論課?或者是幾個牛人拼命寫代碼,其他人打醬油的課?要不然就是學習一個程式語言,搞一個職業教育訓練的課?都不對,軟體工程有理論,有實踐,更重要的是分析,思辨,總結。在課程中,自己組織團隊寫一個軟體,然後分析,的确是學習軟體工程的一個好方法;但我們也可以從别人的成功/失敗中學到很多。
我們生活中很多時候要和軟體打交道,大家上課開小差時候玩的手機遊戲,買火車票的網站,互相聯系用的微信、QQ,等等都是軟體,都很值得分析。你為何成為它們的使用者?它們的團隊做對了什麼,做錯了什麼?如果你來做,會做得更好麼?
通過各種案例分析,評測,辯論,總結,我們就能看到軟體工程的原則在實踐中的種種展現,學好軟體工程,幫助我們在實踐中做得更好。
産品
請下載下傳必應詞典,PC、Mac、iOS或Android用戶端都有,不要說你找不到!
第一部分 調研, 評測
(軟體的bug,功能評測,黑箱測試, 第8章 使用者調研, 12 章 軟體的使用者體驗)
- 下載下傳并使用,描述最簡單直覺的個人第一次上手體驗。
感覺界面挺不錯的,一些基本功能都能很快發現,操作也挺簡單,推薦的句子和圖檔都挺漂亮,不過推薦的内容過多,浪費流量.
2. 按照《建構之法》13.1節描述的 bug 定義, 找出幾個功能性的比較嚴重的 bug,至少2個。
在一個英文句子中,點選其中的一個英文單詞時有時候不會顯示中文意思,例:

拍照翻譯時會出現亂碼:
3.用專業的語言描述 (每個bug 不少于 40字),如有必要, 可以配圖。
4.相信每個同學的朋友中一定有人需要用這樣的軟體, 選擇一個朋友(使用者)進行采訪,并加以記載。
提示: 采訪提要
5.1. 介紹采訪對象的背景和需求(他們為何要學英語,查詞典和用法,還有别的需求麼)
閱讀英文文章時用于查單詞,複習英語單詞,背誦英語四級詞彙等.
5.2. 讓采訪對象使用10 – 30 分鐘該APP的功能 (請上傳照片證明使用者的确正在使用, 遠端采訪的同學請讓别人幫忙照相)
5.3. 描述使用者使用這個産品的過程,使用者的問題解決了麼?軟體在資料量/界面/功能/準确度上各有什麼優缺點?使用者體驗方面有問題麼?
界面挺不錯的,聯想詞彙挺不錯的,不過還有一些問題,有些詞彙沒有顯示意思,推薦内容過多,不聯網的話一些單詞查不到,感覺一般.
5.4. 使用者對産品有什麼改進意見?
希望能減少推薦内容或者自己選擇喜歡的内容.
5.5. 結論:經過這麼多工作,你一定有充分的理由給這個軟體下一個評價:
-
- 非常不推薦
- 不推薦
- 一般
- 好,不錯
- 非常推薦
第二部分 分析
(參考《建構之法》 8.6 節 對工作的估計, 和14.1 節 軟體工程的品質)
- 使用此軟體的所有功能 (包括背單詞, 單詞挑戰,口語練習等), 聯系第二部分的分析, 估計這個項目做到這個程度大約需要多少時間 (團隊人數6 人左右, 計算機大學畢業生, 并有專業UI 支援)。
可能需要10天.
2.分析這個軟體目前的優劣 (和類似軟體相比,至少對比2款軟體), 推理出這個軟體團隊在軟體工程方面可以提高的重要方面 (具體建議)。要求把對比的結果列出一個表格,對比每個軟體各自的優點和缺點。
優點 | 缺點 | |
必應詞典 | 畫面挺不錯的,可以用拍照功能自動識别單詞 | 推薦内容過多,有些單詞沒解釋 |
有道詞典 | 單詞挺全的 | 推薦過多 |
金山詞霸 | 單詞全,内容豐富,有許多詞典 | 使用不友善 |
3.[附加題]根據了解和體驗,畫出整個軟體所有功能邏輯框圖,根據重要度辨別出各子產品的重要度、完成度、出發點及效果;
4.[附加題]針對不同的次元評分,對使用者體驗方面、UI界面美觀度、核心功能,分别打分(能給出更詳細的評分更優)。
第三部分 建議和規劃
(參考《建構之法》第8章功能的定位和優先級;第9章項目經理)
- 如果你是項目經理,如何提高進而在競争中勝出?
減少一些不必要的功能,對一些功能比如四級詞彙設定不用聯網就能使用,推薦内容可以由使用者自由選擇需不需要,減少不必要的廣告.
2.目前市場上有什麼樣的産品了?
有道字典:使用的人較多,查單詞功能比較強大.
金山詞霸:内容豐富,有牛津詞典
3.你要設計什麼樣的功能?
掃描和自動比對功能,增加一個養成加冒險的遊戲功能,每個使用者可以有一個角色,通過冒險(認單詞,翻譯單詞等)等一些其它功能使角色成長.
4.為何要做這個功能,而不是其他功能?
吸引使用者,友善使用者使用.
5.為什麼使用者會用你的産品/功能?
有意思,能滿足使用者需求.
6.你的創新在哪裡? 請使用 NABCD 分析(http://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html).
增加了遊戲功能.
7.如果你來上司這個團隊,會有什麼不一樣?
我會更加注重使用者的需求來開發功能
8.如果你的團隊有5個人, 4個月的時間,你作為項目經理,應該如何配置角色(開發,測試,美工等等)?
半個月 | 市場需求調研 | 1人 |
一個半月 | 軟體開發 | 2人 |
軟體測試并改動 | ||
美工 |
9.描述你的團隊在16 周期間每周都要做什麼,才能在第16周如期釋出軟體,大小裡程碑績點設定.
2周 | ||
1周 | 團隊讨論決定軟體功能 | 5人 |
7周 | 3人 | |
軟體測試 | ||
3周 | 測試使用并修改 |