軟工1816 · 作業(十三)最終作業 - 軟體工程實踐總結(個人)
一、請回望暑假時的第一次作業,你對於軟體工程課程的想象
1)對比開篇部落格你對課程目標和期待,“希望通過實踐鍛鍊,增強計算機專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什麼?
期望我的隊友們都很給力,我能有共同作戰互相鼓勵的隊友,這樣熬夜打程式碼都是歡樂的。也希望這門課結束我能真正學到東西。
回過頭翻了一下開篇部落格,這是我在第一次作業中寫下的對“軟工實踐”這門課的期望,一學期過去了,很高興這個期望成了真。在團隊協作這個方面算是達到了目標吧。最大的收穫應該是學會了GitHub的使用,親身體驗了用它做團隊程式碼管理有多麼的方便。另外我還學習到了多人團隊程式設計是如何執行
2)總結這門課程的實踐總結和給你帶來的提升,包括以下內容:
1、統計一下,你在這門軟體工程實踐中,完成了多少行的程式碼;
粗略估計了一下,大概有兩、三千行程式碼吧。
2、軟工實踐的各次作業分別花了多少時間?(做一個列表)
次數 | 時間(分鐘) |
---|---|
第一次 | 30 |
第二次 | 590 |
第三次 | 350 |
第四次 | 30 |
第五次 | 1698 |
第六次 | 500 |
第七次 | 670 |
第八次 | 290 |
第九次 | 355 |
第十次 | 44 |
第十一次 | 50 |
第十二次 | 30 |
第十三次 | 52 |
Alpha衝刺 | 2217 |
Beta衝刺 | 1425 |
3、哪一次作業讓你印象最深刻?為什麼?
第二次吧,也就是個人作業第一次。那次作業做的真的是心路歷程漫長吶。那時正值開學初,新生入學,身為班導的我每天忙得晚上十點十一點才能回宿舍,作業剛釋出時也只能來得及匆匆瀏覽一遍,心底裡覺得剛第二次作業而已不會太“魔鬼”,後來Deadline前開始著手做起時才發現和想象中的有點差距,然後就崩盤了,只能在截止時間前提交了個自己並不是很滿意的作品。到現在還是很不敢面對。如果時間能重來……我一定不會在deadline前才開始爆肝,這是個非常不明智的行為。姑且也算這門課給的一個經驗:給自己的Deadline,儘量比官方DDL早一些。
4、累計花了多少個小時在軟工實踐上?平均每週花多少個小時?同時貼出開篇部落格“你打算平均每週拿出多少個小時用在這門課上”的回答
累計共157.116個小時,Alpha和Beta版本平均每週約有十個小時吧,其餘時間約有三四個小時。開篇部落格中我寫到需要看課程難易程度,開學初粗略計算約為兩三個小時吧,後來……我天真了。我覺得是遠遠不夠的。
5、學習和使用的新軟體;
- HTTP除錯與模擬:Postman
- Git客戶端:GitKraken
- 互動原型設計軟體:Axure
- 虛擬機器:Vagrant
6、學習和使用的新工具;
- HTTP除錯與模擬:Postman
- Git客戶端:GitKraken
- 互動原型設計軟體:Axure
7、學習和掌握的新語言、新平臺;
新語言:
PHP編寫後端
新平臺:
Vagrant虛擬機器
8、學習和掌握的新方法;
- 後端寫完介面後的測試方法:利用postman
- 團隊協作程式設計方法:Github
9、其他方面的提升。
收穫到了如何協調管理一個團隊吧,雖然自己這次的角色只是團隊裡微不足道的一員,但看著各個團隊的PM,學到了一個PM應該如何統籌管理十個人的隊伍,如何在Deadline前協調好各個隊員的任務時限。
二、寫下屬於自己的人月神話——個人或結對或團隊專案實踐中的經驗總結+例項/例證結合的分析
鑑於個人和團隊的已經寫了很多感想,這一部分就來談談結對的經驗吧。說實話這次結對應該是這門課程中我完成得最好的一個部分了……感謝隊友!兩個人配合的結對相比一個人起來,要容易得多,畢竟一個人想不出來的問題可以找隊友商討;比起團隊來,也更容易溝通,出現矛盾的時候也只有兩個人,私下解決起來也比較方便。兩個人開會的時間也比較容易安排,甚至有時候線上討論即可。
三、對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,對於同期的TA們,對於後來的學弟學妹:
1)你有什麼想建議、告知和期許想要告訴他們呢?
千萬不要因為開學初覺得自己吹下的牛難度太高完成不了而懈怠這門課,萬事總有解決的辦法,只要肯做,肯想,總能做出來的。或許最終成果沒有一開始時的那樣完美,但總能找到辦法的。不要放棄,態度要端正。
不知道我帶的班級會不會有人看到233(我覺得不會有),你們應該是兩年後的事了,那時候我也畢業了,堅持下去,相信你們做出來的作品一定比我們現在優秀得多。
2)特別地,特別地,下一屆要不要中途換隊員(強制的、徹底的從一隊換到另一隊)?
假設依舊是一個90+人數的大班
如果團隊內部出現無法協調的矛盾可以自行選擇換隊。
但是,強制我是不贊同的。我覺得這有一定可能會影響到班級成員之間的感情,對被換的那個人來說,可能會造成很大的傷害。我覺得一門課程不應該這麼殘酷。
3)身在一個格外大的班級,競爭強勁,你認為一個組的人數應當在多少比較合適?
如果不考慮展示、班級人數等因素,我覺得一個組四五個比較合適,既可以減少分工不協調、開會時間無法統一的問題,也不會使得每個人的任務過重。
4)個人/結對/團隊作業應該控制在怎樣的規模?
團隊>結對>個人,不論是數量上還是難度上都一樣。
5)這學期下來,你最感謝的人是誰?有什麼話想要對TA說呢?
………………感謝老師!感謝助教!你們辛苦了!感謝PM的好多好多奶茶!感謝隊友的包容!
四、分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了“創造”階段了麼?(參考《構建執法》第17章 人、績效和職業道德)
萌芽階段:這個階段是一開始組隊的時候吧,大家都比較客氣,分工之類的也還尚未安排。
磨合階段:是的,我們團隊也經歷過。記憶猶新有幾次小矛盾吧,但經過討論所幸解決了。
規範階段:這個階段大概是Alpha和Beta衝刺階段?兩天一次的會議使得很多規則都被建立起來。
創造階段:事實上我覺得還未到達吧,缺了PM還是不行,還是需要有一個PM統籌領導。
五、怎樣證明你學會了軟體工程?
1)研發出符合使用者需求的軟體
以上是來自大一新生的反饋
2)通過一系列工具,流程,團隊合作,能夠在預計的時間內釋出 “足夠好” 的軟體
↓團隊內的文件
3)並且通過資料展現軟體是可以維護和繼續發展的。
↓程式碼規範
4)對著這個檢查表:http://xinz.cnblogs.com/p/3852177.html 檢查一下,自己如果去企業面試,這些常見的問題是否都能回答,並在此總結。
本來想對著檢查表一項項填下來,但發現到後半部分就很難全部回答出來了,看來離面試企業還有一大段的距離。主要是軟體測試還不夠熟練,效能分析沒有接觸過,專案管理沒有接觸過,軟體設計、質量意識都還不夠清楚。