這個作業屬於哪個課程 | 軟件工程 |
---|---|
這個作業要求在哪里 | 個人總結 |
作業正文 | 如下 |
回首過往,以往鑒來。
四個月前,還未正式開學的我接到了第一次正式的軟件工程的作業,也就是讓好多同學叫苦不迭的《中文編程實踐》。這個作業同樣也讓我頗為頭疼,在綜合查詢多方代碼以及各位同學的思路后,還是琢磨出了一點門道,如果有興趣的話,可以在《中文編程實踐——第一次個人編程作業》中看一看我的想法和經歷。
在經歷了第一次的磨難后,大家的表現各有不同,一些人在發現自己做不來作業后放棄選修了這門課程,而大多數人認真努力的完善了自己的代碼,在看到作業提交里七十多份雖各有不同,但都很有誠心實意的代碼,我也有了繼續努力學習下去的信心和動力。
之后的作業不出所料,果然是同學之間相互的修改和評價——《第二次個人編程作業》,這次的作業利用程序員必上開源網站:Github進行互相的找錯和修改,也就是提出issues和pull request,這里也算是我第一次建立個人的倉庫,進行倉庫管理和代碼迭代重構。這次作業同時也為后期團隊合作打下了堅實基礎。
接下來的兩次作業,也就是雙宿雙飛的結對作業——《第一次結對作業》以及《第二次結對作業》。這次結對的內容主要是針對疫情期間的網課情況反映,當時我第一時間想到了利用問卷調查,針對本專業進行調查統計,收集有價值的問卷數據。這次的設置以及數據搜集,我個人想法是寧可要少而精,也不要多而雜的數據,畢竟做數據處理時總要丟掉那些沒有參考價值的信息,所以我在設置問卷之初就根據“問卷網”的規則將當時還未經歷“網課生活”的調查者排除在外,從結果來看這樣的信息搜集有效且准確。對目標人群的把握和問題的設置同樣很重要,在設置問卷問題的時候就要先問自己兩個問題:1.問卷你希望交到誰的手上;2.如果你是填問卷的人,怎么樣的題目設置能夠讓你真誠的回答?當時我針對這兩個問題,先是將人群划分為上過網課和未上網課的人,再者通過層層遞進的問題設置讓回答者在不自覺間就可以做出真實的答案。這次的結對作業,我是出題者,連坤就是做數據整合分析和博客編輯的主力,雖然他那段時間並不是很有空閑,但還是連着好幾天和我討論到半夜,這里也要感謝他的辛苦付出和努力。
噔噔噔!終於到了團隊立項環節,《團隊作業第一次 —— 團隊展示》。當時老師讓我們各自組成6-8人的團隊進行一次長時間的開發項目,我還在思考成員人選的時候,@濤兄就問我要不要去他那兒,順水推舟我就去了。剛到組里時對大家都是只聞其名不見其人的狀態,不過大家都對課程項目抱有極大的熱情和信心,也讓我緊張的心情稍稍緩解。這次的作業主要是提出項目的描述,以及建立團隊,具體的可以看一看我們happy_tree_friends的項目博客:《Happy Tree Friends——團隊展示》。當時我們組經過內部討論,一致都認為現有的至誠教務助手並不是很實用,並且也通過個人的調查用戶群體(也就是各級各專業的同學)分析認為,可以做一款與市面上各種課程表app都不一樣、專門服務於我們學校學生的課表app,同時也加上了簽到查詢的功能。當即,大家統一了項目思路,直接就開始思考怎么實現。
之后經過幾次團隊作業:《第一次團隊作業(2)——項目介紹》、《第二次團隊作業——UML圖》以及一次個人作業《第三次個人作業——用例圖設計》,我們對項目的大體流程以及最終需要實現的功能都有了明確的認知。在經過《第三次團隊作業(需求分析)》之后,更是確定了用戶想要,或者說我們想去做的方向。
再之后就是突然襲擊,一個下午+一個晚上的開發作業《團隊Github實戰訓練》,這次我們經過討論,立即確定了JS+sql數據庫的實現方法,將小組的成員分為前端開發和后端開發兩部分並發開發。可是這次開發也暴露出來一些問題,就是在多人共同編輯Github時,我們的操作並不是很理想,出現了莫名其妙的倉庫同步問題,以及為了省時間commit並沒有審核而是直接通過的做法更是亂上加亂。
發現問題就要解決問題,所以從這次開始,我們小組的每個人都開始學習Github的操作和使用,濤兄作為組長讓我們學習github倉庫管理、如何使用IDEA和Android Studio進行倉庫的pr操作。在每天每天不斷的學習和共同開發中,越來越熟悉git的各種操作,也學會了如何進行共同開發。
學習的期間我們也在逐漸完善項目的技術點,這次《團隊作業第四次——項目系統設計與數據庫設計》由我找資料編寫大綱,然后負責數據庫方面的@蔡總填寫兩份報告里的數據庫部分,其他組員一邊忙着git的鞭打,一邊幫忙將兩份報告書填寫完整。這樣痛並快樂着的學習生活沒能持續多久,噩夢般的《Alpha沖刺》就開始了。
具體的事情難以言述,可以看一看《團隊作業第五次——Alpha沖刺》,每天不停的與組員溝通、了解項目進展、后端安卓開發的跟進、邊自學Android Studio的操作邊在運用中熟練,我們在這十多天的沖刺中飛速的成長,也更加明白團隊協作的必要性和重要性。看着每天燃盡圖的減少,我們也越來越有干勁,當橙汁——也就是我們的app,成型且可以投入使用的時候,成就感直接拉滿!
正如濤兄在《Alpha總結展望——前事不忘后事之師 》中所說:回顧Alpha沖刺,覺得挺不可思議的,這段時間做了這么多事,開會、討論、磨合、寫代碼、改代碼,循環往復。以現在的視角看過往,確實有很多方面可以再提升,比如團隊協作,代碼質量等等。而這些都在《團隊作業第六次——Beta》中得到了解決。
最后一階段的沖刺大部分是在處理用戶的反饋和調整UI設計,以及增加各種各樣的功能模塊,總的來說有種雨過天晴見月明的暢快感。
總結新知識
1.學到了一個項目開發所需的流程。
2.項目的關鍵在與團隊協作。
3.熟悉掌握了Git的操作。
4.學習了如何使用Android Studio進行開發。
5.本次項目我更多像一個產品和PM,也在此中學會了如何掌握管理項目。
建議
要說對這門課的建議,我個人認為是出現的太遲,大一太早 大三下太遲,在大二的時候讓大家體會一個項目是如何運作跟進,以及開發所需要掌握的知識技能,這樣可能會更有益於計算機系學生們的進步。希望未來人人都能做出實用的程序,每個同學都有完整的項目經驗。
最后
Last but not least,這學期的軟工課程讓我收獲良多、感觸頗深,之前種種心境在項目落地之后也隨之煙消雲散,取而代之的是滿滿的成就感和滿足感,但也帶有一些對自我的反思:是否哪里有不足之處,是否考慮不夠完全,是否在開發方面不夠積極?特別是最后一個問題,雖然有許多客觀原因讓我無法全身心的投入開發的位置,但是這些都不是借口,我仍然有一些畏難情緒作祟。雖然跟着安卓開發的朋友們天天開會,自己也有在學習開發,但是相對全力以赴的開發人員們我就比較懶散的學習,保持着自己能看得懂聽得明白的程度就足夠了,這樣很不好,以后不能再有這種懈怠感。