《对不队》团队项目用户验收评审
任務(wù)1:團(tuán)隊(duì)作業(yè)Beta沖刺
- Beta沖刺第一天:https://www.cnblogs.com/bingoF6/p/9221744.html
- Beta沖刺第二天:https://www.cnblogs.com/bingoF6/p/9226305.html
- Beta沖刺第三天:https://www.cnblogs.com/bingoF6/p/9230815.html
- Beta沖刺第四天:https://www.cnblogs.com/bingoF6/p/9235917.html
?
任務(wù)2:源代碼管理的10 個(gè)問(wèn)題
?1.你的團(tuán)隊(duì)的源代碼控制在哪里?用的是什么系統(tǒng)?如何處理文件的鎖定問(wèn)題?
團(tuán)隊(duì)項(xiàng)目在Github上托管,采用git的方式進(jìn)行版本控制,這個(gè)是我們?cè)陂_(kāi)發(fā)伊始就達(dá)成的共識(shí),針對(duì)這種多人多任務(wù)的開(kāi)發(fā)模式,我們認(rèn)為git是再好不過(guò)的選擇,于是我們從開(kāi)發(fā)到現(xiàn)在一直采用這種方式;團(tuán)隊(duì)的在處理文件的鎖定問(wèn)題上是不加鎖的,也就是說(shuō)我們的成員可以自由遷入遷出。由于現(xiàn)階段的開(kāi)發(fā)規(guī)模比較小,于是為了最大化效率,我們沒(méi)有對(duì)文件遷入遷出進(jìn)行過(guò)多的限制。將文件在遷入遷出時(shí)加鎖,顯然可以保證源代碼修改的同步性,減少不必要的沖突和錯(cuò)誤,但是這樣的缺點(diǎn)是顯而易見(jiàn)的,由于缺乏了并行性,項(xiàng)目開(kāi)發(fā)的效率就被極大地降低了,極端情況下很有可能因?yàn)橐粋€(gè)人的失誤,導(dǎo)致全隊(duì)項(xiàng)目的擱淺。反之,我們采用自由遷入遷出(用鄒欣老師的話來(lái)講,就是“寬松的政策”)的方式,則與前者的優(yōu)缺點(diǎn)互反了
2.如何看到這個(gè)文件和之前版本的差異? 如何看到代碼修改和工作項(xiàng) (work item),缺陷修復(fù) (bug fix) 的關(guān)系。
git pull進(jìn)行更新后,可以看到本地的版本和最新的版本之間的不同之處
同時(shí),在本地上傳自己的文件到分支之后也可以查看自己或者是別人上傳的文件在以前的版本的基礎(chǔ)上,修改了哪些地方
我們?cè)谏厦鎴D片里面可以看到的是"+"標(biāo)注的是在原文件的基礎(chǔ)上增加的代碼的記錄,"-"標(biāo)注的是在原文件的基礎(chǔ)上刪掉的代碼的部分,顏色顯示也不同。其實(shí)我們團(tuán)隊(duì)是以任務(wù)為單位和模塊進(jìn)行的開(kāi)發(fā),這種開(kāi)發(fā)模式在任務(wù)分配之處就已經(jīng)給該任務(wù)提供了描述
3. 如果某個(gè)文件在你簽出之后已經(jīng)被別人修改,并且簽入了,那么你在簽入你的修改的時(shí)候, 如何合并不同的修改(merge)? 你用了什么工具來(lái)幫助你?
在git中執(zhí)行合并即可自動(dòng)合并Git修改的部分。但是,也存在無(wú)法自動(dòng)合并的情況。如果在遠(yuǎn)程數(shù)據(jù)庫(kù)和本地?cái)?shù)據(jù)庫(kù)的同一個(gè)地方都發(fā)生了修改的情況下,因?yàn)闊o(wú)法自動(dòng)判斷要選用哪一個(gè)修改,所以就會(huì)發(fā)生沖突。
git會(huì)顯示本地?cái)?shù)據(jù)庫(kù)和遠(yuǎn)程數(shù)據(jù)庫(kù)同一個(gè)地方的不同修改,這時(shí)候就需要我們手動(dòng)解決沖突,暫時(shí)沒(méi)有想到什么好的工具可以解決不借助人力自動(dòng)解決這個(gè)問(wèn)題,只能依據(jù)規(guī)定和協(xié)商解決這一問(wèn)題。
4. 你有20個(gè)文件都是關(guān)于同一個(gè)功能的修改,你要如何保證這些文件都同時(shí)簽入成功(修改的原子性),或者同時(shí)簽入不成功?
?git作為一個(gè)成熟的源代碼版本管理系統(tǒng)本身就可以保證在簽入時(shí)的原子性,所以在我們的項(xiàng)目開(kāi)發(fā)流程中沒(méi)有遇到部分修改可以上傳而某些部分的修改不能上傳的混亂狀態(tài)。
5. 你的PC 上有關(guān)于三個(gè)功能的修改, 但是都沒(méi)有完成,有很多文件處于半完工的狀態(tài),這時(shí)你要緊急修改一個(gè)新的 bug,如何把本地修改放一邊,保證在干凈的環(huán)境中修改這個(gè) bug, 并成功地簽入你的修改 --- changelist management。
這個(gè)時(shí)候我們只要在本地新建一個(gè)分支,然后在新的分支上進(jìn)行bug的修復(fù)就好。當(dāng)前分支的內(nèi)容就被保存在原地。這樣我們就可以在“干凈”的環(huán)境中進(jìn)行bug的修復(fù)工作了。
6. 規(guī)范操作和自動(dòng)化
你的團(tuán)隊(duì)規(guī)定開(kāi)發(fā)者簽入的時(shí)候要做這些事情:
????- 運(yùn)行單元測(cè)試,相關(guān)的代碼質(zhì)量測(cè)試。
????- 代碼復(fù)審 (要有別的員工的名字)
????- 和這次簽入相關(guān)的issue 編號(hào), 任務(wù)/task, 缺陷/bug 編號(hào),等等, 以備查詢。
????請(qǐng)問(wèn)你的團(tuán)隊(duì)有這樣的自動(dòng)化工具讓開(kāi)發(fā)者方便地一次性填入所有信息然后提交么? ?(高級(jí)功能, 代碼提交之后, 相關(guān)bug 的狀態(tài)會(huì)改動(dòng)為 ?“fixed”, 并且有鏈接指向這次簽入。)
答:我們團(tuán)隊(duì)沒(méi)有使用這樣的工具,我們?cè)陂_(kāi)發(fā)之前對(duì)編碼做了規(guī)范,進(jìn)行完單元測(cè)試后,將沒(méi)有bug的代碼提交Github。
?7. 如何給你的源代碼建立分支?
? ?上傳一個(gè)與MASTER相關(guān)的分支(該分支是從MASTER中g(shù)it clone 得到,相關(guān)信息在 .git 文件中)
????修改后源碼后,在進(jìn)行如下操作
1、git add .
2、git commit -m "test" ?(”test“為分支名)
3、git branch test(創(chuàng)建分支)
4、git checkout ?test (切換分支)
5、git push origin test:test
8. 一個(gè)源文件,如何知道它的每一行都是什么時(shí)候簽入的,為了什么目的簽入的 (解決了哪個(gè)任務(wù),或者哪個(gè)bug)?
對(duì)于我們團(tuán)隊(duì)來(lái)講每一次任務(wù)都有明確的分工,也就是提前打上標(biāo)簽,每個(gè)成員在commit的記錄保留,github上面有每一次的每一個(gè)人的提交的記錄。
?
9. 如何給一個(gè)系統(tǒng)的所有源文件都打上標(biāo)簽,這樣別人可以同步所有有這個(gè)標(biāo)簽的文件版本?
代碼每天都在變, 有時(shí)質(zhì)量變好,有時(shí)變差,我們需要一個(gè) Last Known Good (最后穩(wěn)定的好版本) 版本, 這樣新員工就可以同步這個(gè)版本, 我們?nèi)绻枰l(fā)布,也是從這個(gè)版本開(kāi)始。 ?那么如何標(biāo)記這個(gè) Last Known Good 版本呢?
?答:我們對(duì)沒(méi)一次的系統(tǒng)文件都有相應(yīng)的注釋,即在這個(gè)版本中,我們新添加的內(nèi)容,和對(duì)之前的內(nèi)容修改地方,我們?cè)贕itHub提交的時(shí)候都做了詳細(xì)的說(shuō)明。我們可以根據(jù)這些說(shuō)明來(lái)確定各個(gè)版本。
10. 你的項(xiàng)目的源代碼和測(cè)試這些代碼的單元測(cè)試,以及其他測(cè)試腳本都是放在一起的么? 修改源代碼會(huì)確保相應(yīng)的測(cè)試也更新么?你的團(tuán)隊(duì)是否能部署自動(dòng)構(gòu)建的任務(wù)?
???答:這些文件是放在一起的,項(xiàng)目的單元測(cè)試完成后,對(duì)與測(cè)試腳本都會(huì)提交到GitHub上,并有詳細(xì)說(shuō)明,修改源程序后相應(yīng)的測(cè)試文件也會(huì)及時(shí)更新。
?
任務(wù)3:驗(yàn)收準(zhǔn)備文檔
項(xiàng)目驗(yàn)收準(zhǔn)備內(nèi)容?
1.文檔準(zhǔn)備:
1) ?開(kāi)發(fā)總結(jié)文檔
2) ? 需求文檔:包括需求規(guī)格說(shuō)明書(shū),需求變更文檔等
3) ? 設(shè)計(jì)文檔:包括概要設(shè)計(jì),詳細(xì)設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)等
4) ? 測(cè)試文檔:包括測(cè)試方案,內(nèi)部測(cè)試報(bào)告,第三方測(cè)試報(bào)告等
5) ? 實(shí)施文檔:包括實(shí)施,部署方案,用戶手冊(cè),維護(hù)手冊(cè)等
6) ? 過(guò)程文檔:包括項(xiàng)目周報(bào),會(huì)議紀(jì)要等
2.項(xiàng)目概況ppt準(zhǔn)備
項(xiàng)目概況ppt包括以下幾個(gè)部分:?
1) 項(xiàng)目背景和簡(jiǎn)介
2) 合同執(zhí)行情況匯報(bào)
3)開(kāi)發(fā)過(guò)程:記錄項(xiàng)目開(kāi)發(fā)過(guò)程中的一些重要事件
4) 系統(tǒng)功能簡(jiǎn)介
5)項(xiàng)目應(yīng)用成果展望
文檔Github倉(cāng)庫(kù)鏈接:https://github.com/RNTF6/web
?代碼Github倉(cāng)庫(kù)鏈接:https://github.com/RNTF6/meeting-web
團(tuán)隊(duì)代碼貢獻(xiàn):
?
?任務(wù)4:項(xiàng)目驗(yàn)收過(guò)程
第一階段:老師擔(dān)任主持人,項(xiàng)目組長(zhǎng)或主要技術(shù)人員進(jìn)行PPT回報(bào)演示,匯報(bào)本項(xiàng)目的項(xiàng)目背景、開(kāi)發(fā)過(guò)程、功能簡(jiǎn)介、工作總結(jié),并對(duì)本系統(tǒng)進(jìn)行演示,由老師和其他同學(xué)對(duì)本項(xiàng)目進(jìn)行提問(wèn),該團(tuán)隊(duì)成員進(jìn)行解答,在此同時(shí),老師根據(jù)項(xiàng)目講解情況、項(xiàng)目完成度以及答疑情況對(duì)本項(xiàng)目進(jìn)行評(píng)分。
第二階段:確定結(jié)對(duì)項(xiàng)目組是Blue Flke,由項(xiàng)目組長(zhǎng)擔(dān)任主持人,結(jié)對(duì)項(xiàng)目組成員項(xiàng)目甲方,對(duì)本項(xiàng)目的成果進(jìn)行驗(yàn)收,首先項(xiàng)目組主要技術(shù)人員對(duì)所開(kāi)發(fā)的系統(tǒng)進(jìn)行演示,并就主要的功能進(jìn)行講解,由Blue Flke成員進(jìn)行提問(wèn)和驗(yàn)收,最終由Blue Flke團(tuán)隊(duì)組長(zhǎng)填寫(xiě)項(xiàng)目驗(yàn)收意見(jiàn)表。
?
?任務(wù)5:
- 團(tuán)隊(duì)成員的具體分工、占整個(gè)實(shí)驗(yàn)任務(wù)的工作量比例及完成各自任務(wù)的實(shí)際時(shí)間
| ?人員 | 具體任務(wù) | 工作量比例 | 完成時(shí)間? |
| 王 爽 | ?Beta沖刺二、文檔的整理與完善、團(tuán)隊(duì)項(xiàng)目用戶驗(yàn)收評(píng)審博文的撰寫(xiě) | ?18% | ?6h |
| 馮 曉 | 撰寫(xiě)系統(tǒng)用戶手冊(cè)、制作PPT、系統(tǒng)演示 | ?17% | ?5h |
| 彭 輝 | Beta沖刺三、項(xiàng)目軟件系統(tǒng)演示前準(zhǔn)備工作 | ?17% | ?6h |
| 吳 瓊 | ?Beta沖刺一 、撰寫(xiě)測(cè)試文檔 | ?16% | ?5h |
| 郝延婷 | 系統(tǒng)測(cè)試報(bào)告的撰寫(xiě)、文檔整理 | ?16% | ?5h |
| 馬思遠(yuǎn) | Beta沖刺三、編制項(xiàng)目驗(yàn)收意見(jiàn)表 | ?16% | ?4h |
- 本次實(shí)驗(yàn)的場(chǎng)景照片
? ? ? ? ? ?
?
- 各成員心得體會(huì)?
- 郝延婷:本次實(shí)驗(yàn)我的任務(wù)分工是進(jìn)行系統(tǒng)測(cè)試,覺(jué)得對(duì)一個(gè)完成的系統(tǒng)進(jìn)行測(cè)試這一步驟是非常有必要的,會(huì)及時(shí)的發(fā)現(xiàn)系統(tǒng)中存在的漏洞或不足,在交付給用戶前可以加以改進(jìn),提高系統(tǒng)性能;還有就是要對(duì)每一次的測(cè)試過(guò)程做詳細(xì)的記錄,以便于總結(jié)經(jīng)驗(yàn);最后是測(cè)試用例的選擇問(wèn)題也是非常重要的,要全面,精準(zhǔn)的發(fā)現(xiàn)更多的系統(tǒng)運(yùn)行過(guò)程中邏輯問(wèn)題。?
- 彭輝:轉(zhuǎn)眼間,一學(xué)期的軟件工程的課程接近了尾聲,回想起這一學(xué)期關(guān)于軟件工程的學(xué)習(xí),感覺(jué)收獲頗多。從最開(kāi)始對(duì)軟件工程一無(wú)所知到現(xiàn)在深深的喜歡上了這門(mén)課的學(xué)習(xí),老師的翻轉(zhuǎn)課堂的教學(xué)模式,讓我們不但在理論上掌握軟件工程,而且還有很多的實(shí)例實(shí)驗(yàn),讓理論和實(shí)踐很好的結(jié)合,在我看來(lái),軟件工程與其說(shuō)是一門(mén)課程,不如說(shuō)是一種思想,是一個(gè)如何去分析和處理問(wèn)題的過(guò)程。在老師的和助教老師的孜孜不倦的幫助下,我能夠及時(shí)的改正自己的錯(cuò)誤與不足。在完成我們團(tuán)隊(duì)項(xiàng)目“會(huì)議管理系統(tǒng)”中,從最開(kāi)始的問(wèn)卷調(diào)查,用戶需求的分析,到《軟件需求規(guī)格說(shuō)明書(shū)》,到基于墨刀的原型系統(tǒng)的實(shí)現(xiàn)再到項(xiàng)目的系統(tǒng)改進(jìn),最后到系統(tǒng)的實(shí)現(xiàn),這一路走來(lái),每一步都走的不容易,期間也遇到了很多的問(wèn)題,例如最開(kāi)始的時(shí)候,用戶需求分析團(tuán)隊(duì)成員的意見(jiàn)出現(xiàn)了分歧,為此我們?cè)俅握{(diào)查了更多的用戶后,小組經(jīng)過(guò)認(rèn)真討論后達(dá)成一致,正是我們?cè)谇捌诘某浞终{(diào)研,才使的我們?cè)诤竺娴木唧w實(shí)現(xiàn)工程中游刃有余,在預(yù)期的時(shí)間內(nèi)完成我們的項(xiàng)目。這也是我更加深刻的理解到軟件工程的想。在代碼實(shí)現(xiàn)的過(guò)程中,我主要負(fù)責(zé)的是會(huì)議內(nèi)容管理部分的實(shí)現(xiàn)。當(dāng)然,實(shí)現(xiàn)工程也不是一帆風(fēng)順,在會(huì)議欄目編輯富文本框?qū)崿F(xiàn)的時(shí)候,就遇到了麻煩,之前沒(méi)有接觸到,所以不知道如何去實(shí)現(xiàn),在我不知所措的時(shí)候,我們的團(tuán)隊(duì)成員馮曉同學(xué),挺身而出,在他的幫助下,我順利的完成了我的任務(wù)。團(tuán)隊(duì)項(xiàng)目的實(shí)現(xiàn)除了學(xué)習(xí)更多的新知識(shí)外,我覺(jué)得更重要的是團(tuán)隊(duì)成員的相互合作,相互配合。這接下來(lái)的時(shí)間,我們會(huì)更加完善我們的項(xiàng)目。
- 馬思遠(yuǎn):一個(gè)學(xué)期的軟件工程課即將接近尾聲,在這一學(xué)期的軟件工程課里面,我深切體會(huì)到了團(tuán)隊(duì)合作的重要性,怎么磨合團(tuán)隊(duì),怎么分工等等,都是我們?cè)趧e的課程里面沒(méi)有學(xué)到的。軟件工程這門(mén)課大大的規(guī)范了我們的編碼。同時(shí)也告訴我們軟件是工程,工程意味著一個(gè)人是完成不了的,大家要通力合作才能完成任務(wù)。因?yàn)樽陨淼木幊棠芰Σ皇呛軓?qiáng),所以有些時(shí)候分配給我的任務(wù)都不能按時(shí)完成,但是大家都沒(méi)有催我反而是給我講解要怎么弄該怎么改,有時(shí)候遇到問(wèn)題問(wèn)團(tuán)隊(duì)成員他們也非常愿意解答。感謝小伙伴的悉心幫助。
- 馮曉:持續(xù)一個(gè)學(xué)期的軟件工程課程告上了一個(gè)段落,在學(xué)期的結(jié)尾,回望這學(xué)期的課程,想起那些和團(tuán)隊(duì)一起奮斗的日日夜夜,收獲和感想太多,想說(shuō)的也很多。一開(kāi)始我以為軟件工程就是編寫(xiě)代碼做出一款軟件,直到這門(mén)課的開(kāi)設(shè),我才真正了解到軟件工程是一項(xiàng)工程,工程就意味著要有團(tuán)隊(duì)合作,要有效率體現(xiàn),要有人員分配,要有人員管理,要有維護(hù)維修,要有安全監(jiān)測(cè),要有推銷(xiāo)。它涉及的是很多流程和環(huán)節(jié),面臨的是用戶的體驗(yàn)和需求,投向的是市場(chǎng)。這些都是從這門(mén)課的學(xué)習(xí)中所體會(huì)到的。軟件工程課很新穎,因?yàn)檎n程的學(xué)習(xí)中摻雜了不少?gòu)恼n本上學(xué)習(xí)不到的知識(shí),我覺(jué)得更多的是素養(yǎng)和習(xí)慣。我曾思考老師為什么沒(méi)有簡(jiǎn)單教我們?nèi)绾尉幊?#xff0c;如何做框架,如何解決編程語(yǔ)言以及語(yǔ)法的一些問(wèn)題,而卻是讓首先讓我們?nèi)プ?#xff0c;然后再去講一些軟件工程流程,軟件工程開(kāi)發(fā)的注意事項(xiàng)意見(jiàn)軟件工程開(kāi)發(fā)的方法。現(xiàn)在也明白了其中的一些道理,如果我們只去學(xué)習(xí)開(kāi)發(fā),提高的只是編程能力,提高不了大腦的思考能力以及開(kāi)發(fā)水平和更高的素養(yǎng)。這門(mén)課程老師還引入了《構(gòu)建之法》這本書(shū),結(jié)合本書(shū)和課本的學(xué)習(xí)使我們對(duì)傳統(tǒng)軟件工程和現(xiàn)代軟件工程的學(xué)習(xí)進(jìn)一步結(jié)合起來(lái)。課程還采用了項(xiàng)目推進(jìn)學(xué)習(xí)的實(shí)踐活動(dòng),通過(guò)工程實(shí)踐和博客文檔的書(shū)寫(xiě)進(jìn)一步加強(qiáng)實(shí)戰(zhàn)性,提升我們軟件開(kāi)發(fā)的綜合實(shí)力。最后感謝代老師和鄒欣老師及助教老師對(duì)這門(mén)課程的辛勤付出,感謝我們團(tuán)隊(duì)其他成員對(duì)我的幫助。這學(xué)期下來(lái)收獲滿滿,謝謝大家。
- 吳瓊: 這個(gè)學(xué)期的軟件工程課告了一個(gè)段落,從個(gè)人博客到結(jié)對(duì)編程再到團(tuán)隊(duì)任務(wù),一步一個(gè)腳印走過(guò)來(lái),感覺(jué)收獲頗多。這么課程學(xué)習(xí)地很艱辛,因?yàn)槿蝿?wù)繁多,但自己也從一個(gè)小白逐漸對(duì)一個(gè)項(xiàng)目的完成過(guò)程有所了解,對(duì)于Java編程,也不像以前那樣一有任務(wù)就聞風(fēng)喪膽,自己在這個(gè)過(guò)程中也知道了團(tuán)隊(duì)協(xié)作的重要性,學(xué)會(huì)了在項(xiàng)目完成的過(guò)程中如何拒絕團(tuán)隊(duì)之間的矛盾和問(wèn)題。最后,謝謝代老師以及助教們的辛勤付出。
- 項(xiàng)目組長(zhǎng)總結(jié)
- 曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習(xí)這門(mén)課程第一個(gè)收獲是,知道了二者的不同之處。經(jīng)過(guò)老師的講解,理解了軟件工程,就是一套用于軟件的團(tuán)隊(duì)開(kāi)發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對(duì)于軟件開(kāi)發(fā)的重要組成部分:需求分析,設(shè)計(jì),編碼,調(diào)試,維護(hù),如何組織這5個(gè)部分的工作,以及如何完成每一個(gè)工作。吾生也有涯,而知也無(wú)涯,學(xué)習(xí)永無(wú)止境。起初,對(duì)軟件工程處于一知半解的狀態(tài),分工比較混亂。在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學(xué)習(xí)過(guò)程中,知道了團(tuán)隊(duì)合作十分重要,爭(zhēng)議固然存在,但通過(guò)討論、協(xié)商,能夠達(dá)成一致與默契。團(tuán)隊(duì)成員每個(gè)人都很努力與認(rèn)真,正是大家的相互合作,才使得我們的項(xiàng)目更加完善,還有老師們的幫助與指導(dǎo),讓我們及時(shí)發(fā)現(xiàn)問(wèn)題,解決問(wèn)題。
轉(zhuǎn)載于:https://www.cnblogs.com/bingoF6/p/9248756.html
總結(jié)
以上是生活随笔為你收集整理的《对不队》团队项目用户验收评审的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华为Mate 50 RS保护壳抢跑:八边
- 下一篇: 面向对象初识④