前言:這應(yīng)該是最后一章了,故事雖然到這就結(jié)束了,但現(xiàn)實(shí)里還要繼續(xù)下去,希望在很久的以后來回顧時(shí),能因自己學(xué)生時(shí)代有這樣的經(jīng)歷而欣慰。
說明:故事中的人物均是化名,故事情節(jié)經(jīng)過些許加工,故事情節(jié)并沒有針對任何人,僅以此紀(jì)念自己的成長。
回顧上一章:詳情請猛戳
第四章:Beta收官
三個(gè)多周的Alpha沖刺,一個(gè)周左右的休息調(diào)整時(shí)間。緊接著也就是Beta階段的沖刺了。
在Alpha版本中,雖然你們預(yù)期的功能基本都實(shí)現(xiàn)了,但仍然有很多不足。比如界面太丑,代碼模塊化太爛等等。瓜哥跟你在那一周的休息調(diào)整時(shí)間里都表示過,要在Beta階段大干一場,好好的將這些問題都解決掉。然而,現(xiàn)實(shí)總是殘酷了,當(dāng)然,這是后話,暫且不提。
在Alpha結(jié)束后,你寫了篇總結(jié)。也就是總結(jié)了下在Alpha階段的一些感想,里面你提到了你們的項(xiàng)目因準(zhǔn)備不足而陷入各種難題,提到了隊(duì)友因意見不合而不斷爭吵的問題。總之,這三周過來,或多或少都學(xué)到了很多。
在Alpha剛開始的編程時(shí),你記得懂哥說項(xiàng)目要學(xué)會使用在框架的基礎(chǔ)上進(jìn)行開發(fā),而不是所有代碼都自己來書寫。帶著這種觀念,你在寫界面的時(shí)候引入了一大堆第三方庫。需要一個(gè)點(diǎn)擊效果,好,引入。需要一個(gè)彈窗效果,好,引入。然而你并沒有真正的深入去學(xué)習(xí)你所引入的第三方庫,導(dǎo)致很多庫之間其實(shí)已經(jīng)有冗余的功能了。
更糟糕的是,隊(duì)友因?yàn)槟阋脒@么多庫,從而導(dǎo)致在編譯項(xiàng)目時(shí)花費(fèi)了大量時(shí)間。因此,你打算在Beta階段時(shí)將多余的庫都刪除掉。
另一個(gè)項(xiàng)目的問題是,當(dāng)初因?yàn)闆]認(rèn)真考慮,而引入了一個(gè)不熟悉的數(shù)據(jù)庫框架。到后面進(jìn)行開發(fā)時(shí),才發(fā)現(xiàn)你們需要的很多功能那個(gè)框架都實(shí)現(xiàn)不了,但已經(jīng)有很多基礎(chǔ)的數(shù)據(jù)庫功能是基于那個(gè)框架上面編寫的,如果要換掉那個(gè)框架,將是一個(gè)工作量巨大的任務(wù)。但如果不換掉,想要的功能又沒辦法實(shí)現(xiàn)。
為了解決這個(gè)問題,你查了各種資料,做了各種嘗試,熬到了半夜兩三點(diǎn)。最后用一種特別暴力的方法去暫時(shí)的解決掉,搞定后你特別想去睡一覺,這種活簡直了!日后需要怎么做再留給瓜哥去頭疼吧。
Beta期間也有兩三周的時(shí)間,但懂哥只要求進(jìn)行七次會議記錄而已。瓜哥為了能讓項(xiàng)目保持一種穩(wěn)定,平均的進(jìn)展,安排了每過兩三四天開一次會議。但計(jì)劃總是趕不上變化。
第一周還好,因?yàn)榇蠹业谝恢芾锩娑紱]有什么考試,進(jìn)展也還算順利,一些Alpha遺留的問題也漸漸的解決了。但到了第二周時(shí),有的隊(duì)員有考試,而且是接連兩三場考試,基于此,瓜哥最后表示,這周就先把項(xiàng)目放一邊,大家好好復(fù)習(xí),準(zhǔn)備考試,等最后一周再來繼續(xù)項(xiàng)目。
本來以為,放一周的時(shí)間去調(diào)整,不做項(xiàng)目可以讓大家到最后一周時(shí)能更有干勁。但事實(shí)卻是,一周沒碰過項(xiàng)目,導(dǎo)致大家對于項(xiàng)目的熱情大大的降低了。不僅如此,對于項(xiàng)目很多地方都漸漸的感到陌生了,更可怕的是,你居然忘記了某塊有合作的代碼當(dāng)初到底是不是你編寫的。
日后瓜哥也提過,當(dāng)初因?yàn)榉帕艘恢埽瑢?dǎo)致他也對于項(xiàng)目的進(jìn)展掌握出現(xiàn)了很多問題。當(dāng)然,這是后話,暫且不提。第二周的Beta過去了,大家都在忙著復(fù)習(xí),確確實(shí)實(shí)都把項(xiàng)目扔一邊去了。等到了第三周時(shí),第一次會議上,大家甚至都不知道要說什么話。
離最后的時(shí)間也就只剩下一周左右了,你突然覺得來不及了。自己無聊時(shí)不斷地手工測試你們的軟件,你發(fā)現(xiàn)似乎還存在一大堆問題,但就是不知道怎么把這個(gè)問題描述出來。你覺得隊(duì)友應(yīng)該也會自己去手工測試,然后發(fā)現(xiàn)相同的問題,但事實(shí)上隊(duì)友基本沒提過你發(fā)現(xiàn)的問題。
在一次會議上,你直接表示出了厭煩,你表示說這樣下去項(xiàng)目根本做不出來,現(xiàn)在仍然存在很多問題。瓜哥要你說出具體有哪些問題,但你又說不出來,你說自己跑一遍就會發(fā)現(xiàn)一堆問題了,但瓜哥卻表示,你說有問題卻又不把問題說清楚。這樣,在Alpha階段發(fā)生的一次沖突到現(xiàn)在又出現(xiàn)了一次。只是這次你沒有繼續(xù)接話下去,因?yàn)槟阃蝗缓懿幌胝f話了。
甚至,你出現(xiàn)了厭工。你總覺得,軟件只有你一個(gè)人在測試,在找Bug,但事實(shí)上很多Bug都被你因?yàn)樽约旱男那闊┰甓糯罅恕D悴恢肋@是不是因?yàn)榍榫w不好,還是因?yàn)闀r(shí)間快臨近截止,還是因?yàn)槿鄙俑?duì)友的溝通,從而導(dǎo)致了你對于項(xiàng)目厭工的心情。
你甚至出現(xiàn)過,你不做了的想法,放一邊去,反正等最后驗(yàn)收時(shí)沒辦法完成作品那責(zé)任也不是你自己去擔(dān)。
然而,就在你自己胡思亂想,亂發(fā)脾氣時(shí)。瓜哥又對總倉庫進(jìn)行了一次提交,你去看了下瓜哥的提交代碼。你發(fā)現(xiàn),瓜哥居然把你一直很苦惱的一些BUG解決了。瞬間,你冷靜下來了。每個(gè)人都在為這個(gè)項(xiàng)目不斷的熬夜,不斷的努力。在別人埋頭修BUG的時(shí)候,你卻在抱怨,卻在厭工。
那天你沒敲什么代碼,就只是早早結(jié)束熬夜,提前上床。你想平靜下自己,想讓自己恢復(fù)到Alpha階段時(shí)的狀態(tài)。你覺得如果你繼續(xù)以這種情緒下去的話,特別對不起瓜哥。當(dāng)初是你把瓜哥拉進(jìn)隊(duì)伍里來的,瓜哥對于項(xiàng)目也一直很負(fù)責(zé),你不能只是因?yàn)樽约旱那榫w不好就厭工。這對項(xiàng)目,對瓜哥,對隊(duì)員都很不公平。
調(diào)整了狀態(tài)后,你繼續(xù)做項(xiàng)目下去。每次的會議上,你也很少再帶有情緒,而是靜靜的聽著瓜哥的安排。然后根據(jù)瓜哥安排的任務(wù),盡可能的保證在規(guī)定時(shí)間內(nèi)完成。
Beta階段的主要任務(wù)是實(shí)現(xiàn)跟網(wǎng)頁端小組的項(xiàng)目的互聯(lián)互通。使用同一個(gè)數(shù)據(jù)庫,對數(shù)據(jù)庫中表的設(shè)計(jì),字段的設(shè)計(jì),瓜哥都去找網(wǎng)頁端的負(fù)責(zé)人討論,然后再把結(jié)果告訴你們。但實(shí)現(xiàn)的過程中仍然碰到很多問題,為了解決這些問題,基本都把時(shí)間放在上面。
導(dǎo)致了你們一開始計(jì)劃在Beta階段對界面進(jìn)行大修改,對項(xiàng)目進(jìn)行大重構(gòu)的安排完全被丟到一邊去了。
在Beta的演示驗(yàn)收上面,又出現(xiàn)了各種問題,更奇葩的是這問題竟不帶重復(fù)的。Alpha階段演示驗(yàn)收時(shí)你們就碰上了無網(wǎng)絡(luò),服務(wù)器崩了,數(shù)據(jù)線連接沒反應(yīng)等問題導(dǎo)致被迫下臺,先讓下一組演示。而這一次的演示上,居然碰上了服務(wù)器連接不上,重啟不了,演示時(shí)漏掉演示某部分功能~~
Beta的演示驗(yàn)收是由各小組互評加懂哥點(diǎn)評結(jié)合完成的。其他小組對于你們的項(xiàng)目看法基本都是功能太單一了,太簡單了!好吧,其實(shí)是沒演示。
演示驗(yàn)收完畢,這學(xué)期的軟工實(shí)踐算是告一段落了。也是時(shí)候再寫篇總結(jié)了。
不同于以往的數(shù)據(jù)庫實(shí)踐之類的課程,這門課確實(shí)讓你經(jīng)歷了很多。見客戶、每日會議、分工開發(fā)、Github團(tuán)隊(duì)合作、爭吵討論、編碼規(guī)范、寫文檔等等。懂哥說過,他最大的希望就是通過這門課程,可以讓他的學(xué)生能有能力接私活。你突然很期待起來,好想自己接一次私活看看。那么,就再繼續(xù)充實(shí)自己吧,讓自己可以擁有接私活的能力。加油吧。
(完結(jié)。再次向懂哥,范老師表示致敬)