一. 請回望開學時的第一次作業,你對於軟件工程課程的想象
1. 對比開篇博客,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什么?
- 開篇博客:http://www.cnblogs.com/ycll/p/8511827.html
- 這學期對於專業知識的掌握,自認為比起開學初更加全面了。一個學期的專業課下來,有不少收獲。軟件工程這門課,雖然不是很想上,但勉強學下來也有一些收獲吧,在團隊這方面。
- 不足的地方,可能就是代碼能力進一步減弱了吧。雖然作為團隊,我們是完成了一個小程序(我覺得我們的代碼真的寫的很好!前端和后端都寫了很久,改了很多很多很多次),但就我自己而言,我沒有任何的代碼工作。這學期又學了很多網絡專業知識,加上代碼越打越少。
2. 總結這門課程的實踐總結和給你帶來的提升
-
這門課中完成了多少代碼
團隊作業中沒有代碼量,結對編程中有。因為JAVA代碼比較繁瑣,我負責的又是界面,所以代碼量偏多。大概一千多行吧
-
軟工各次作業所用時間
-
哪一次作業最印象深刻
除了項目驗收的作業以外,每次作業都印象深刻。尤其是寫了非常,非常,非常多的博客,根本忘不掉。還有好幾次的作業,認真寫了很多東西,但是不符合得分要求,導致個人作業得分不高。
強行來說還是Alpha階段的個人總結印象深刻吧,當時因為一些評價和排名心里很不爽,就發泄了一通。當然,當時也說了不會改博客內容的,雖然是比較激動,但說的確實都是實話。多的抱怨就不說了,反正就是很印象深刻了,因為很氣。 -
累計花了多少個小時在軟工上,平均每周花多少時間
累計時間上面已經放了表了,大概90多個小時,平均下來每周差不多9個小時的樣子。畢竟有一些是稍微放松的時間
-
學習和使用的新軟件
微信開發者平台(雖然不是我在用)
-
學習和使用的新工具
在線服務器測試,微信端測試工具,leangoo,碼雲(以前有用,但是沒有用很多)。視頻,PS等......
-
學習和掌握的新語言,新平台
結對編程用的是以前就學過的JAVA,團隊編程沒有代碼任務。所以沒有學習到的新語言,只會個Java。學習到的新的平台是微信開發者平台
-
學習和掌握的新方法
團隊合作......主要是在開會和溝通部分,把控整個團隊項目的進度。
另外在整個團隊項目進度上面,在服務器,數據庫,后台,前端之間的各種關系,雖然不是我在做開發,但是在給他們之間的進度調整,討論中也學到了很多。 -
其他方面的提升
寫博客和打字速度大幅提升,這個應該算是提升吧???
可能還有就是總結歸納的能力更強了(廢話也更多了)。溝通能力和時間把控都進一步提升了吧,什么事情優先做,什么事情要先放一下。開發過程中如果同時遇到了一堆東西,短時間內到底要先做什么,后做什么。
二. 寫下屬於自己的人月神話——個人或結對或團隊項目實踐中的經驗總結+實例/例證結合的分析
總結:很多時候,你做了什么不重要,重要的是你讓別人知道你做了什么。
經驗總結:做人還是要圓滑一點,會bb比什么都重要。雖然你什么都沒做出來,但是只要會說,會寫,0.1的東西都能寫成100,努力這東西也是一樣的。個人作業就不舉例了,畢竟這個東西,我說我寫的很認真,費了很多時間,但是呈現的結果就是不符合評分標准,那我也沒辦法。
用結對編程和團隊來舉例子吧。
結對編程,我們小組改代碼吧......用的時間就不說了,我們不知道其他組的情況,所以不敢說我們比別人更用心。但是我們做出來的成品(或者說改進完的程序),從功能和界面上來說,自認為比一些小組的要好上不少,他們沒有調整的界面,我們調整了;他們沒有做出來的功能,我們做了。從程序上來講,應該是不錯的(也有可能是我們太自大了)。但是從得分上來說,卻是少於其他小隊。時間過了這么久了,我也不是想去爭什么,況且本來就是毫厘之差,硬要去爭取反而顯得較勁。只是這里既然要總結一下經驗和教訓,那就總結一下嘍。很多時候,你做了什么並不重要,重要的是你讓別人知道你做了什么。
從團隊編程來看的話,也是應了我上面說的,你得讓別人知道你做了什么。另外就是寫博客,按得分點寫。一開始我的個人作業,寫了很多東西,因為感想真的很多(我的廢話也真的很多),但是最后得分低到無法接受。當然,結果是因為寫太多了,找不到重點,找不到得分點。后來的團隊博客證明了,我確實是要按分答題(雖然還是要暗搓搓的說一句,感覺跟八股文一樣........)。我的團隊博客寫的還行,當然得分我還是有點意見(當然人也很慫,只敢在這里bb...)。只求助教給大家的開發成果做最后排名的時候,能夠......不要只看大家寫了什么......同學間的排名,准確度太低了,請務必,一定,結合碼雲代碼來看...
三. 對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,你有什么想建議和告知的呢?對於后來人的期許。對於換人機制,有什么樣的建議?
對於開學初的我,emmmmmm這次的團隊選擇和組建還是比較合理的。整個項目進度,課程作業沒有留下太多的遺憾和麻煩。一開始的時候可能會覺得很累,因為這門課上要花的時間太多了,那其實只是你不適應,不習慣這整個作業流程而已。習慣之后,雖然作業量還是很大,但是適應之后就會發現,做起來已經很快了。雖然很多同學都覺得寫博客很廢腦子,最浪費時間的。但是寫博客也是一個很重要的技能,做了什么,一定要說出來。
對於換人機制,我覺得有意義,但是沒什么作用。學生團隊畢竟只是學生團隊,有能力的人實在是太少了。各個團隊之間最多就是互換個吉祥物,一方面不會傷害同學感情,另一方面互換個吉祥物也不會影響團隊的整體進度。換個角度來說,就算是換的人有一些能力,但是融入新團隊的時間稍微短了些,還沒適應新的團隊做的開發,第二階段的沖刺就要結束了。
四. 分析一下自己所處的團隊。軟件工程實踐是大學里少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過么,最后到達了“創造”階段了么?(參考《構建執法》第17章 人、績效和職業道德)
萌芽階段,磨合階段,規范階段,創造階段。我們團隊基本上是從磨合階段開始的,因為同學之間本來就比較熟,所以萌芽階段算是直接跳過的。
一開始在Alpha階段沖刺開始之前,我們差不多處於磨合階段,前端和后端互相適應各自的開發習慣,解決一些比如git的存在bug。針對要開發的程序的功能,界面,用戶使用之間的討論和爭論。我自己在這個階段處於一種主要探討的角色。和后端討論開發的需求,協調前端做相應的界面,然后分配工作,大家各自認領,確認可以完成。
后來沖刺階段,差不多我們就進入了一種比較規范的階段。前端和后端之間已經可以自己進行討論,針對他們之間開發的重合的部分,可以自己進行商量了。之間如果有大問題,或是溝通失敗的部分,會來找我翻譯一下這樣的......
再往后面就是創造階段了,大家都是集中精力在開發小程序上面。最后也確實把東西做出來了,我認為團隊成員的發揮都非常好,就算是最后沒有得到一個比較公正的評分......我也覺得團隊成員都很努力。
雖然說驕傲自滿不好......但是必要的鼓勵和自我肯定是必要的。
我們的后端代碼是自己寫的,改邏輯改了很久,小型的bug改了一次又一次。一些功能因為需求不太明確,往往是要做出來之后看了效果才能確定是否要保留,所以后端也都一直在變動。圖表部分的代碼很難寫,換了好幾個庫,還改了圖表的源代碼。可以說,雖然圖表是直接調的庫,但是因為需求不同,我們就差點是全部寫了圖表代碼了。包括一開始普通的扇形圖,還有困擾了好久的金錢燃盡圖。
我們的數據庫和服務器是自己搭出來的,空閑之余還幫了其他好幾組同學搭建服務器,數據庫的連接。
我們的前端代碼自己做的,第一階段和第二階段界面完全不一樣,前端改代碼的同學就一個人。比起其他組不用考慮后端的問題,所有人都可以把所有精力都集中在前端上,我們的前端壓力比較大。尤其是圖表部分的調整,顏色,框架,都有很多bug,調了非常久。另外日歷部分,另外一個組的日歷其實和我們調用的是同一套模板,但是很明顯他們的日歷沒有經過調整,直接就用了。我們的前端調整之后,還是可以說好看了很多很多的。(大家有興趣可以看一下)
五. 怎樣證明你學會了軟件工程?
1. 研發出符合用戶需求的軟件
- 因為統計是每隔一小時的統計,所以空着的地方會比較多。因為6月7號是上一次做項目復審答辯的時間,所以沒有統計那一天的數據。從8號到12號,我覺得這是一個還可以的數字了。在6月11號,能達到41個訪問量,用戶留存度還不錯
2. 通過一系列工具,流程,團隊合作,能夠在預計的時間內發布“足夠好”的軟件
具體的各種進度,在前面的各類博客里都寫過了,這邊大概放個鏈接就好了
- 項目規划:http://www.cnblogs.com/Team-Blog/p/8733024.html
- 項目需求:http://www.cnblogs.com/Team-Blog/p/8783845.html
- 項目實現
- Alpha階段項目實現:http://www.cnblogs.com/Team-Blog/p/8869481.html
- Beta階段項目實現:http://www.cnblogs.com/Team-Blog/p/9049210.html - 項目發布
- Alpha展示:http://www.cnblogs.com/Team-Blog/p/8983806.html
- Alpha測試與發布:http://www.cnblogs.com/Team-Blog/p/8983672.html
- Beta項目總結:http://www.cnblogs.com/Team-Blog/p/9123399.html
3. 通過數據展現軟件是可以維護和繼續發展的
- 碼雲地址:https://gitee.com/SE-Tally/Tally
- readme中寫了程序的基本情況
- 軟件規格需求說明在附件中可下載
- 代碼可下載,后端是python寫的,需要有python環境才可運行