1. 程式人生 > >租車App第一次迭代報告

租車App第一次迭代報告

專案:基於Android的汽車租賃平臺——快租車APP

設想與目標

  1. 我們的軟體要解決什麼問題?是否定義得很清楚?是否對典型使用者和典型場景有清晰的描述?
    • 產品定義:提供給租車公司的使用者使用的租車app
    • 典型使用者:有駕照,經常進行工作或商務活動的人士
    • 典型場景:出差人士需要駕車出行
  2. 我們達到目標了麼(原計劃的功能做到了幾個? 按照原計劃交付時間交付了麼? 原計劃達到的使用者數量達到了麼?)?
    • 原計劃功能:做出app,實現使用者登入,註冊,租車,還車,充值等實用功能,並且設定後臺管理介面
    • 實現情況:基本實現功能
    • 交付與使用者:無
  3. 使用者量, 使用者對重要功能的接受程度和我們事先的預想一致麼? 我們離目標更近了麼? 
    • 未交付使用,所以沒有使用者量
    • 離目標更近了
  4. 有什麼經驗教訓? 如果歷史重來一遍, 我們會做什麼改進?
    • 大家對app的理解不同,我比較喜歡線性佈局,相對佈局這些,隊友用的約束佈局,在合併的時候,重寫了一遍佈局,所以下次一定要溝通好要用的技術

計劃

  1、是否有充足的時間來做計劃?

         是的,一開始有兩週的時間去做迭代開發計劃,做了3個版本,同時還不斷改進資料表

        2、團隊在計劃階段是如何解決同事們對於計劃的不同意見的?

    團隊討論,互相說出自己的道理

        3、你原計劃的工作是否最後都做完了? 如果有沒做完的,為什麼?

    是的

   4、有沒有發現你做了一些事後看來沒必要或沒多大價值的事?

    有,我在設計佈局的時候和隊友出現衝突,所以後來合併的時候隊友重寫了佈局

   5、是否每一項任務都有清楚定義和衡量的交付件?

    是的,在迭代開發報告中寫清楚了

   6、是否專案的整個過程都按照計劃進行,專案出了什麼意外?有什麼風險是當時沒有估計到的,為什麼沒有估計到?

    沒有什麼意外,android和java web雖然比較花時間,但是學起來比較順利

   7、在計劃中有沒有留下緩衝區,緩衝區有作用麼?

    沒有

   8、將來的計劃會做什麼修改?(例如:緩衝區的定義,加班)

    暫時沒有

   9、我們學到了什麼? 如果歷史重來一遍我們會做什麼改進?

    我學到了關於android的很多知識,同時也瞭解了很多後臺的程式碼,包括jquery,servlet等
    歷史重來一遍,我們應該更明確的分工

資源

1、我們有足夠的資源來完成各項任務麼?

有,其實並不需要什麼資源,至少目前為止

2、各項任務所需的時間和其他資源是如何估計的,精度如何?

大致估計猜測的,然後邊做邊修改

3、測試的時間,人力和軟體/硬體資源是否足夠? 對於那些不需要程式設計的資源 (美工設計/文案)是否低估難度? 

測試的時間還好,有一週,人力也足夠,目前還沒有考慮UI設計

4、你有沒有感到你做的事情可以讓別人來做(更有效率)?

沒有

 

變更管理

1、每個相關的員工都及時知道了變更的訊息?

大致是的,但是有時候突然發現一個bug,可能通知不及時,沒有在群上講,就直接改了

2、我們採用了什麼辦法決定“推遲”和“必須實現”的功能?

必須實現的功能是第一次使用必要的,比如登入註冊,租車還車,充值

推遲的是附加功能,比如地圖,常見問題,地圖,延長租車等

3、專案的出口條件(Exit Criteria – 什麼叫“做好了”)有清晰的定義麼?

我認為是將實際需要的功能都完成,然後使用比較簡單,bug少就可以做好了

4、對於可能的變更是否能制定應急計劃?

暫時沒有

5、員工是否能夠有效地處理意料之外的工作請求?

可以,我覺得大家對學習的熱情很高,即使突然改需求,也能很快上手

6、我們學到了什麼? 如果歷史重來一遍, 我們會做什麼改進?

做的時候要考慮到隨時變更的需求,所以在設計的時候一定要注意封裝,降低耦合性,提高程式碼可重用性

 

設計/實現

1、設計工作在什麼時候,由誰來完成的?是合適的時間,合適的人麼?

在比較前期大概第4周的時候,有大家開會討論決定的,比較合適的時間

2、設計工作有沒有碰到模稜兩可的情況,團隊是如何解決的?

目前我覺得沒有

3、團隊是否運用單元測試(unit test),測試驅動的開發(TDD)、UML, 或者其他工具來幫助設計和實現?這些工具有效麼?

使用了uml工具,繪製了類圖,時序圖等,幫我們理清的思路,開發更有針對性,還有騰訊工蜂,方便記錄大家的進度

4、比較專案開始的 UML 文件和現在的狀態有什麼區別?這些區別如何產生的?是否要更新 UML 文件?

是有比較大的修改,比如類圖等,主要是在設計資料庫和java程式碼時發現原來設計的不合理的地方,所以修改了很多uml圖

5、什麼功能產生的 bug 最多,為什麼?在釋出之後發現了什麼重要的 bug? 為什麼我們在設計/開發的時候沒有想到這些情況?

目前沒有,但是我覺得可能在android連線資料庫那塊有bug,因為那裡集中了比較多的執行緒,執行緒比較容易出錯

程式碼複審(Code Review)是如何進行的,是否嚴格執行了程式碼規範?

目前還沒有程式碼複審

我們學到了什麼? 如果歷史重來一遍, 我們會做什麼改進?

在做事前,先畫好圖,理清思路是很重要的,磨刀不誤砍材工

測試/釋出

  1. 團隊是否有一個測試計劃?為什麼沒有?
    • 目前還沒有測試計劃
  2. 是否進行了正式的驗收測試?
    • 暫時沒有
  3. 團隊是否有測試工具來幫助測試?
    • 沒有
  4. 團隊是如何測量並跟蹤軟體的效能的?從軟體實際執行的結果來看,這些測試工作有用麼?應該有哪些改進?
    • 沒有
  5. 在釋出的過程中發現了哪些意外問題?
    • 還沒有釋出
  6. 我們學到了什麼? 如果歷史重來一遍, 我們會做什麼改進?
    • 在測試這一塊暫時沒有學到什麼,不過按照老師課上的內容,我們也是在邊開發邊測試,除錯bug

團隊的角色,管理,合作

  1. 團隊的每個角色是如何確定的,是不是人盡其才?
    • pm統籌安排,我寫的android,有3個Android開發人員,兩個後臺,我覺得大家都做出了自己的貢獻
  2. 團隊成員之間有互相幫助麼?
    • 有。
  3. 當出現專案管理、合作方面的問題時,團隊成員如何解決問題?
    • 通過團隊討論解決的。

總結

    1. 你覺得團隊目前的狀態屬於 CMM/CMMI 中的哪個檔次?
      • 我覺得接近了CMM/CMMI中的可重複級(Repeatable)
    2. 你覺得團隊目前處於 萌芽/磨合/規範/創造 階段的哪一個階段?
      • 磨合。
    3. 你覺得團隊在這個里程碑相比前一個里程碑有什麼改進? 
      • 大家的水平都有較大提高,而且功能實現得比較漂亮
    4. 你覺得目前最需要改進的一個方面是什麼?
      • 程式碼寫得比較冗餘,在Android中大量的程式碼重複
    5. 對照敏捷開發的原則, 你覺得你們小組做得最好的是哪幾個原則? 
      • 我們每週都會有開會,計劃接下來的內容,其實我們已經做了比較多第二期的功能,所以接下來大概會比較輕鬆