Beta階段敏捷沖刺總結

設想和目標

1. 我們的軟件要解決什么問題?是否定義得很清楚?是否對典型用戶和典型場景有清晰的描述?

??????在最開始的時候我們就是為了解決集美大學計算機工程學院網頁沒有搜索引擎的問題。因為沒有搜索引擎,在搜索內容時需要根據查找信息所屬的不同區域來查找,這個過程非常不方便用戶信息的得取,也很容易找不到相關信息。我們在Alpha階段最簡單的實現了計算機可以查找信息,并且相應的進行顯示,但是因為沒有部署到服務器上,沒辦法發布出去,不能進行普及,所以Beta階段我們主要解決服務器部署的問題,然后再針對一些小細節來方便用戶體驗,提高用戶使用的滿意度。
關于定義在前期的時候就已經清晰定義了,所以整個設計過程中還是很清楚的。典型的用戶和典型的場景有在需求說明書中詳細給出,主要針對的一直是普通用戶,可以是老師也可以是學生,更可以是想要報考集美大學了解計算機學院的人群。

2. 我們達到目標了么(原計劃的功能做到了幾個? 按照原計劃交付時間交付了么?原計劃達到的用戶數量達到了么?)
??????我們基本目標都達成了,但是沒有把Beta階段所有的目標都實現。在Beta階段我們計劃了如下:

  • 新增其他學院的搜索引擎
  • 實現網站的定時爬取以及es的自動同步
  • 主界面設置最新通知播報欄
  • 新增按時間篩選信息功能
  • 擴大使用范圍至移動端
  • 將項目部署到服務器

??????但是最終我們的版本里更改了主界面設置最新通知播報欄,從原先設想的多個通知欄變成一個最重要的通知欄,而新增按時間篩選信息功能因為時間的緣故最終沒有去實現它。雖然少了這一部分,但是整個的主要部分都完成了。在用戶調查階段參與測試的用戶79名,相信不久的將來會有更多人使用的。

3. 和上一個階段相比,團隊軟件工程的質量提高了么? 在什么地方有提高,具體提高了多少,如何衡量的?
??????整體質量效率都有提高。之前在各個功能的實現上都走了很多彎路,然而現在實現的很多功能都可以在預期時間內完成,而且因為期末大家時間比較有限,有幾次隊員沒辦法都到,雖然人數減少了,但是項目的進展并沒有影響。

4. 用戶量, 用戶對重要功能的接受程度和我們事先的預想一致么? 我們離目標更近了么?
??????接受程度比我們預計的要高一點,因為最開始做的時候主要突破在界面以及細節完善上,但是只能憑借我們自己的主觀感受來設計。但是后來我們發現,以前針對一個學院的數據時還是可以做到搜索比較精準的,等數據量擴大后,精準度上有所減少,不如第一階段的精確度了,這個應該是關鍵字的索引那邊需要更改,那個關鍵字精確的方法不適應于較大數據量的情況。

5. 有什么經驗教訓? 如果歷史重來一遍, 我們會做什么改進?
??????整個開發下來,我覺得很多的設想需要有延續性,不能看得太眼前,不然可能未來需要動基層建設。如果歷史從來一遍,我覺得我們可以在前期的時候除了關注點在界面設計上,應該在關鍵字索引的地方多下點功夫,應該選擇一個即使數據量比較大但也同樣適用的方法來實現。


計劃

1. 是否有充足的時間來做計劃?
??????是的,預留了一個半天時間專門用來準備beta階段的沖刺計劃。

2. 團隊在計劃階段是如何解決同事們對于計劃的不同意見的?
??????和Alpha階段一樣我們,當產生分歧的時候我們首先會進行討論,最后得出一個大家都滿意的方案,當然每個人都需要做出一定的妥協。

3. 你原計劃的工作是否最后都做完了? 如果有沒做完的,為什么?
??????beta階段的計劃都完成了。這一次我們預留的時間相當充足,最后距離截止時間甚至還有一周。沖刺過程中對計劃有進行一定的調整,不過偏差不大。

4. 有沒有發現你做了一些事后看來沒必要或沒多大價值的事?
??????原定計劃中有一項按時間排序功能,在著手準備的時候發現,主流的搜索引擎有按時間范圍篩選,但沒有按照時間排序的,實際運用上來說按時間排序也沒有什么實際意義。在這一功能的討論上,浪費了我們一些時間,最后刪除了這一功能。所以在做功能的規劃的時候,還是要再多調研一下。

5. 是否每一項任務都有清楚定義和衡量的交付件?
??????對比alpha階段,這一次我們有著清楚的定義,但放棄了過于高標準的定義,追求功能的基本實現。

6. 是否項目的整個過程都按照計劃進行,項目出了什么意外?有什么風險是當時沒有估計到的,為什么沒有估計到?
??????本階段順利的按照計劃進行,最后提前一周完成沖刺。唯一的意外是域名的申請備案,到用戶調查結束都沒有審批下來,好在影響不大。

7. 在計劃中有沒有留下緩沖區,緩沖區有作用么?
??????留下一周的緩沖區,但沒有使用上,原因是用戶調研結果不需要我們做出過多的更改。

8. 將來的計劃會做什么修改?(例如:緩沖區的定義,加班)
??????alpha階段,我們計劃對任務量進行壓縮,留下充足的緩沖空間,這一點我們在beta階段完成的很好了。如果還需要對產品進行迭代,我們可以保持現階段的節奏進行。

9. 我們學到了什么? 如果歷史重來一遍, 我們會做什么改進?
??????beta階段對比alpha階段來說,更順利,包括技術和溝通上都有了很大的進步。歷史再來一遍的話,我們也許不能做到更好了。


資源

1. 我們有足夠的資源來完成各項任務么?
??????alpha階段已經有基礎了,而Beta階段新增的功能網絡上也有一些參考資料。
2. 各項任務所需的時間和其他資源是如何估計的,精度如何?
??????根據個人開發階段每個人所需要的時間進行估計,精度較為準確。
3. 測試的時間,人力和軟件/硬件資源是否足夠? 對于那些不需要編程的資源 (美工設計/文案)是否低估難度?
??????測試時間相對Aplpha階段較為足夠。對于缺少筆記本電腦的成員,在除了一定要全體面對面溝通的情況下,我們采取了網上群視頻通話的方式進行共同開發。對于其他資源,美工設計方面在Beta階段無需改進,而對于搜索引擎來說文案并不需要。
4. 你有沒有感到你做的事情可以讓別人來做(更有效率)?
??????Alpha階段雖然是混著做的,但還是有一些大致的成員分工,所以在Beta方面也是考慮了Alpha階段的任務安排情況來進行成員分工,大家都是做自己較為擅長、Alpha階段有經驗的任務,所以還是很合理的。
5. 有什么經驗教訓? 如果歷史重來一遍, 我們會做什么改進?
??????因為計劃新增的功能較多且后階段臨近考試,所以提前完成了項目,計劃新增的功能中有些需要大量的時間研究且難度較高,最后未能完成。計劃時考慮時間和完成難度,做一個更合理的優化計劃。


變更管理

1. 每個相關的員工都及時知道了變更的消息?
??????alpha階段的時候因為沒有太多的使用碼云來同步代碼,所以在beta階段的時候我們有專門注意代碼的上傳,每次沖刺完后都有在碼云上傳相關代碼。同時也有在用qq傳輸,或者u盤。

2. 我們采用了什么辦法決定“推遲”和“必須實現”的功能?
??????必須實現的肯定是不能影響主要程序使用的地方,比如搜索引擎必須能搜索到內容,結果不能錯。推遲的內容是分詞器能不能自行控制。

3. 項目的出口條件(Exit Criteria – 什么叫“做好了”)有清晰的定義么?
??????有清晰的定義,能用搜索引擎來搜到我們學院的內容,有兩個頁面,一個是搜索引擎的干凈整潔首頁面,一個是搜索到內容的顯示頁面,第二個頁面能準確搜索到用戶需要的內容,并且進行一個最優排序。

4. 對于可能的變更是否能制定應急計劃?
??????能,剛開始本來是定制的所有學院都做一個搜索引擎,但是后面發現要完成一個就需要花一下午的時間,所以我們就改為只加了一個航海的搜索,也是因為航海沒有搜索引擎,并且也能證明我們也能把其他的學院都爬下來只是需要時間而已。

5. 員工是否能夠有效地處理意料之外的工作請求?
??????能,當我們PM在沖刺之前給的任務,在進行之后發現還有一些零碎的關鍵任務沒有人去完成,PM會按照大家擅長的部分去分配,并且會說一個截止日期,會在群里面督促大家盡快完成,所以我們每次都能有效的完成意料之外的工作。

6. 我們學到了什么? 如果歷史重來一遍, 我們會做什么改進?
??????完成一個項目的時候不能死腦筋,必須做完這個才干嘛,有時候需要靈活的運用和方法來促使整個項目的完成,會比一個人鉆牛角尖好得多。這次我們安排了很多次沖刺,時間安排的很棒,不會說因為最后沒時間的趕工,因為大家最后都有考試,所以提前了兩三天就結束項目。


設計/實現

1. 設計工作在什么時候,由誰來完成的?是合適的時間,合適的人么?
??????設計工作在第一次老師給出這個項目需要幾個幾個星期完成的實驗課,我們在實驗課上就開始討論前端頁面的樣式和要求,同時也在網上查找搜索引擎和爬蟲的相關知識,大家都在實驗課上一起討論,但是這個時間是遠遠不夠的,后面沖刺的時候最開始也有討論過我們程序的走向,討論好后最終定下終稿。

2. 設計工作有沒有碰到模棱兩可的情況,團隊是如何解決的?
??????用戶測試這一塊,我們是用的調查問卷,在制作調查問卷,提問的時候因為有些考慮到很多人不喜歡填寫調查問卷,所以我們準備把問卷做的簡單一點,我覺得是用戶的建議是最重要的,所以我推崇就一個空,我們的搜索引擎有什么需要改進的么,這樣我們就能拿到我們需要的內容,別人也不會覺得很煩,但是秦玉覺得應該像普通的問一些問題,不然空口答別人可能也沒什么建議,我們要的數據就根本沒有。

3. 什么功能產生的Bug最多,為什么?在發布之后發現了什么重要的bug? 為什么我們在設計/開發的時候沒有想到這些情況?
??????爬蟲功能產生的Bug最多,因為界面不一樣,學校的網站不是Css結構的,完全是又一個一個的表格寫出來的網頁,所以爬取跟普通的網站爬取又有區別,都是一步一步的學習改進才爬取出數據的,因為對爬蟲理解的不深。我們還沒有發布。同時也是我們對爬蟲了解也不夠深入,只能爬取到紅色標題的內容,但是經過后期的改進已經能爬取全部的內容了。

4. 代碼復審(Code Review)是如何進行的,是否嚴格執行了代碼規范?
??????代碼復審統一由一個人來規范代碼,嚴格執行了代碼規范,因我們在編寫的時候就在注意代碼的編寫,這樣方便大家的理解同時后期也不用改這么麻煩。

5. 我們學到了什么? 如果歷史重來一遍, 我們會做什么改進?
??????只有當自己真正開始編寫代碼的時候你才能進步。編程的重要任務還需要分的細致一點,這樣大家都能寫到關鍵的代碼,更多的熟悉爬蟲。


測試/發布

1. 團隊是否有一個測試計劃?為什么沒有?
??????沒有花太多的時間在測試上,只是有一個大概的測試計劃。因為Beta階段完成的功能比較零散,而且很多是在Alpha階段做一些改進(如新增其他學院的搜索引擎),代碼框架都是一致的,所以在搜索速度、爬取速度等方面基本沒有變化。
2. 是否進行了正式的驗收測試?
??????進行了正式的驗收測試。

3. 團隊是否有測試工具來幫助測試?
??????沒有用到,只是用黑盒測試、瀏覽器自帶的性能測試等方法來測試。

4. 團隊是如何測量并跟蹤軟件的效能的?從軟件實際運行的結果來看,這些測試工作有用么?應該有哪些改進?
??????我們并沒有測量并跟蹤軟件的效能,我們只有代碼測試各個瀏覽器的頁面是否正確,搜索速度,爬取速度等的測試,后階段進行用戶調查,調查問卷中附加了網頁鏈接,其實也是在測試服務器和用戶交互。很有用,讓我們的程序更符合大眾使用的要求,改進了很多我們忽略的點,同時也驗證了服務器性能。

5. 在發布的過程中發現了哪些意外問題?
??????通過用戶調查后得到的數據,發現搜索得到的結果項中的摘要部分,是顯示文章中匹配到的最后一個關鍵字的地方,所以若某文章中該關鍵字出現的位置分布在文章的前部和后部,則會導致摘要顯示的篇幅比較大,其實應該做到像百度搜索出來的結果摘要,顯示固定的大小。

我們學到了什么? 如果歷史重來一遍, 我們會做什么改進?
??????在發布過程中發現的摘要問題,我們在編寫及測試的時候都沒有意識到,在用戶交互方面還有所欠缺。在編寫項目的過程中,應該更多的以用戶的角度去思考,因為做出來的產品是給用戶用的,而不是程序員本身,當然在技術方面,則是要以程序員的角度尋求最優解。


團隊的角色,管理,合作

1. 團隊的每個角色是如何確定的,是不是人盡其才?
??????這次的角色確定會更多地還是從比較細的方面來劃分,因為beta階段與alpha相比,目標明確了很多,最后分出來的任務也比較細致,然后根據每個人的能力或是意愿來進行任務的分配,大致可以做到人盡其才。

2. 團隊成員之間有互相幫助么?
??????有互相幫助,因為我們平時都是聚在一起來完成這個項目的,因此在遇到困難的時候,一般會直接提出來,然后手頭上比較閑的同學就可以一起來想解決問題,解決完以后積累下來的經驗也會跟其他成員交流,防止踩到同一個坑里。

3. 當出現項目管理、合作方面的問題時,團隊成員如何解決問題?
??????遇到了這方面問題的時候,一般就是讓矛盾雙方闡述自己的想法,然后再一起交流,最后達成一致,但是其實經過了alpha階段,我們在這方面都比較成熟和默契,一般不會出現這種問題。


總結

你覺得團隊目前的狀態屬于 CMM/CMMI 中的哪個檔次?
??????屬于第五級 優化級

你覺得團隊目前處于 萌芽/磨合/規范/創造 階段的哪一個階段?
??????我們團隊目前處于創造階段。beta階段我們的團隊成員已經對規范方面有了比較好的實現,然后集體意識也有所提高,對于項目的走向也有一個比較好的把握。

你覺得團隊在這個里程碑相比前一個里程碑有什么改進?
??????相比于alpha階段,首先,我們團隊成員之間的配合更加的有默契, 能夠更好的溝通交流;其次我們在技術能力方面也有很大的進步,從最開始對搜索引擎的貧乏的了解到現在已經能大概掌握其全貌以及具體實現方法;最后,我們團隊在代碼規范方面和管理方面也有了比較大的改進,前一個階段比較不注重規范,主要還是求能實現功能就行,然后在管理方面也沒有使用專門的工具來處理,beta階段開始我們會比較注重這一點。

你覺得目前最需要改進的一個方面是什么?
??????我覺得雖然我們最后完成了這個項目,但是總體的完成效果其實還是有一些瑕疵,主要還是因為我們投入的時間不太多,因此我覺得需要改進的是希望我們團隊的成員能投入更多的時間在項目上,這樣做出來的效果應該會更好一點。

對照敏捷開發的原則, 你覺得你們小組做得最好的是哪幾個原則? 請列出具體的事例。
??????對照TSP原則,我認為我們小組在以下幾個方面做得比較好:

  • 團隊的各個成員對團隊目標、角色、產品都有統一的理解
    在我們開始對產品進行討論的時候,就已經小組達到一個共識,然后在后面不斷地編寫程序完成項目的時候,我們也會定期交流一下我們項目的未來走向以及其他一些與項目相關的內容。
  • 增加團隊的自我管理能力
    我們團隊的每個成員對于我們的項目都能夠比較好的投入到里面,每個人都有自己的定位,也都能在計劃時間內完成任務。

轉載于:https://www.cnblogs.com/qin-yu/p/10159330.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395658.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c語言 二進制壓縮算法_使用C ++解釋的二進制搜索算法

c語言 二進制壓縮算法by Pablo E. Cortez由Pablo E.Cortez 使用C 解釋的二進制搜索算法 (Binary Search Algorithms Explained using C) Binary search is one of those algorithms that you’ll come across on every (good) introductory computer science class. It’s an …

【LATEX】個人版latex論文模板

以下是我的個人論文模板,運行環境為Xelatex(在線ide:Sharelatex.com) 鑒于本人常有插入程序的需求,故引用了lstlisting \RequirePackage{ifxetex} \ifxetex\documentclass[hyperref, UTF8, c5size, no-math, winfonts,a4paper]{ct…

初識virtual memory

一、先談幾個重要的東西 virtual memory是一個抽象概念,書上的原文是"an abstraction of main memory known as virtual memory"(參考資料p776)。那么什么是抽象概念。下面說說我個人對這個東西的理解。 所謂抽象概念是指抽象出來的…

java創建mysql驅動,JDBC之Java連接mysql實現增刪改查

使用軟件:mysql、eclipse鏈接步驟:1.注冊驅動2.創建一個連接對象3.寫sql語句4.執行sql語句并返回一個結果或者結果集5.關閉鏈接(一般就是connection、statement、setresult)這三個連接對象,關閉順序一般是(setresult ---> statement …

算法第五章作業

1.你對回溯算法的理解(2分) 回溯法(探索與回溯法)是一種選優搜索法,又稱為試探法,按選優條件向前搜索,以達到目標。但當探索到某一步時,發現原先選擇并不優或達不到目標,…

c++編碼風格指南_100%正確的編碼樣式指南

c編碼風格指南Here are three links worth your time:這是三個值得您花費時間的鏈接: The 100% correct coding style guide (4 minute read) 100%正確的編碼樣式指南( 閱讀4分鐘 ) I wrote a programming language. Here’s how you can, too (10 minu…

xp開機黑屏故障分析

今天裝完xp系統之后,重啟開機發現竟然黑屏了,查資料發現有很多用戶在修改分辨率后,因顯示器不支持修改后的分辨率,會出現電腦黑屏的情況。分辨率調高了,超出了屏幕的范圍,肯定會黑屏,而且這個問…

應用程序圖標_如何制作完美的應用程序圖標

應用程序圖標by Nabeena Mali通過Nabeena Mali 如何制作完美的應用程序圖標 (How to Make the Perfect App Icon) With just 24 app icon slots on the first page of an iPhone home screen, or 28 if you have a fancy iPhone 7, creating the perfect app icon is a vital …

Luogu3702 SDOI2017 序列計數 矩陣DP

傳送門 不考慮質數的條件,可以考慮到一個很明顯的$DP:$設$f_{i,j}$表示選$i$個數,和$mod\ pj$的方案數,顯然是可以矩陣優化$DP$的。 而且轉移矩陣是循環矩陣,所以可以只用第一行的數字代替整個矩陣。當然了這道題$p \leq 100$矩陣…

java閏年的年份,Java案例-判斷給定年份是閏年

專注學子高考志愿填報,分享你所不知道信息。Java案例-判斷給定年份是閏年案例描述編寫程序,判斷給定的某個年份是否是閏年。閏年的判斷規則如下:(1)若某個年份能被4整除但不能被100整除,則是閏年。(2)若某個年份能被400整除&#…

通過path繪制點擊區域

通過path繪制點擊區域 效果 源碼 https://github.com/YouXianMing/Animations // // TapDrawImageView.h // TapDrawImageView // // Created by YouXianMing on 16/5/9. // Copyright © 2016年 YouXianMing. All rights reserved. //#import <UIKit/UIKit.h> #…

Raft與MongoDB復制集協議比較

在一文搞懂raft算法一文中&#xff0c;從raft論文出發&#xff0c;詳細介紹了raft的工作流程以及對特殊情況的處理。但算法、協議這種偏抽象的東西&#xff0c;僅僅看論文還是比較難以掌握的&#xff0c;需要看看在工業界的具體實現。本文關注MongoDB是如何在復制集中使用raft協…

db2 前滾會話

前滾會話 - CLP 示例ROLLFORWARD DATABASE 命令允許每次指定多個操作&#xff0c;各個操作由關鍵字 AND 隔開。例如&#xff0c;要前滾至日志末尾&#xff0c;然后完成&#xff0c;可將下列獨立的命令&#xff1a;db2 rollforward db sample to end of logsdb2 rollforward db …

史上最爛代碼_歷史上最大的代碼庫

史上最爛代碼Here’s a diagram of the biggest codebases in history, as measured by lines of code:這是歷史上最大的代碼庫的圖表&#xff0c;以代碼行來衡量&#xff1a; As you can see, Google has by far the largest codebase of all. And all 2 billion lines of co…

php添加jpeg,PHP-如何將JPEG圖像保存為漸進JPEG?

我具有以下將JPEG保存為漸進JPEG的功能.它已保存,但不是漸進式JPEG.這個對嗎 &#xff1f;function save($filename, $image_type IMAGETYPE_JPEG, $compression 75, $permissions null) {if ($image_type IMAGETYPE_JPEG) {imageinterlace($this->image, true); //conv…

Mysql添加字段.md

alter table td_user add gender bit DEFAULT 0 COMMENT 性別; 轉載于:https://www.cnblogs.com/bihanghang/p/10167446.html

推薦兩款實用工具——hcache和SQLPad

hcacheLinux用戶可能經常遇到的一個問題是內存大部分都被Buff和Cache占用了&#xff0c;但是有時候我們想知道到底Cache了些什么內容卻沒有一個直觀好用的工具。今天給你介紹一個可以查看Linux當前緩存了哪些文件的小工具hcache。hcache是基于pcstat的&#xff0c;pcstat可以查…

如何構建設計系統

by Colm Tuite通過Colm Tuite 如何構建設計系統 (How to construct a design system) 設計和構建一致的設計系統的技巧。 (Tips for designing and building a consistent design system.) Without doubt, I get asked about design systems more than anything else. So, hav…

matlab中get和set命令,關于matlab中get和set的用法

求極值點我現在知道有兩種方法&#xff1a;建立一個fun.m文件&#xff1a;function fxfun(x)fxsin(x)然后在命令窗口中調用&#xff1a;zfmax(fun,[0,pi/2])%同樣的函數還有zfmin(fun,...[0,pi/2]),zfzero(fun,0.5).zfsolve(fun,x0,option)...方程組求解&#xff0c;x0是求根過…

jmeter學習筆記(一)

1.添加JSON Path Extractor >>下載地址&#xff1a;http://jmeter-plugins.org/downloads/all/&#xff0c;下載 JMeterPlugins-ExtrasLibs-X.X.X.zip下載 >>解壓&#xff0c;將lib和lib/ext中的jar包放到安裝目錄對應位置&#xff0c;重啟。 2.參數不能輸入中文&…