個人作業——軟體工程實踐總結作業
标簽(空格分隔): 軟工實踐
作業連結的傳送門
一、請回望暑假時的第一次作業,你對于軟體工程課程的想象
1)對比開篇部落格你對課程目标和期待,“希望通過實踐鍛煉,增強計算機專業的能力和就業競争力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目标,哪些方面還存在哪些不足,為什麼?
四個月的時間時間,說長不長,說短不短,之前覺得做一個項目是一個比較神秘而又複雜的事情,但是經過了實踐後,發現,其實完成一個項目,也就是一個團隊成員合作各施其職的完成的一項工作。每個人負責好自己的部分,然後再整合起來,有問題丢出來吐槽,該接鍋的接鍋,該修改的地方修改,有問題一起商量,項目也就不難做了。
經過軟工實踐後發現,技術上的問題基本上都不算是什麼大問題,真正困難的是,我們的項目該做什麼(需求),到底這個功能我們要不要做這個東西,我們到底有有沒有足夠時間做這個功能,理論課和實踐上課初期的時候,都一直在強調的需求分析,那個時候我是懵懵懂懂,始終始終不是特别明白需求分析的重要性,項目在需求分析的時候也是主要是其他人提出來,我大概聽一聽,發現沒有什麼好補充的。直到直到beta版本的時候,由我負責,對需求分析的重要性,簡直是深有體會。
我:我們做了A、B、C、D四個接口
前端:啊?誰說要做A的。
我:之前讨論不是說了做A的嗎。
前端:不做了,做了沒意義,xxx(一堆理由)。
我:好吧。
需求分析簡直是太重要了太重要了太重要了。我很慶幸還好在beta版本的時候接了一下組長的鍋,不然每次從任務表中仔細思考琢磨哪一個任務适合我現在做,完全體會不到要制定任務的多麼的困難。能完成項目的人一抓一大把,而能正真掌控項目的,隻有項目的計劃者。能甚至可以說,能制定好項目的計劃,項目就完成了一半。
我覺得,這方面的能力,我還是有所欠缺的,缺乏經驗,能力上也缺乏鍛煉。
我們做了做基礎最核心的内容。但是我覺得我參與的不夠多,真正寫代碼的時間大概隻有1/4左右,甚至可能不到,其他時間要麼寫文檔(測試文檔、接口文檔、流程圖),要麼測試接口的正确性,要麼就是花在寫部落格上等等。導緻我覺得雖然在實踐課上花的時間不少,但是感覺實際上做出的東西卻不多,這讓我覺得有點沖突。
2)總結這門課程的實踐總結和給你帶來的提升,包括以下内容:
1、統計一下,你在這門軟體工程實踐中,完成了多少行的代碼;
github上面送出了的大概就800~1000行左右吧。實際應該删删改改大概是2、3倍。
組隊作業和個人作業加起來應該也是差不多800~1000行
但是這兩個800~1000行代碼的品質是完全不一樣的。
2、軟工實踐的各次作業分别花了多少時間?(做一個清單)
作業 | 花費時間 |
---|---|
第一次作業-準備 | 1~2h |
第二次作業——個人項目實戰 | 25~30h |
軟體工程實踐 · 團隊項目 第一次作業 | |
第五次作業--原型設計(結對) | 10h |
軟體工程實踐 · 團隊項目 第二次作業 | 0.5~1h |
結對項目--第二次作業 | 15~17h |
第七次作業--項目需求分析(團隊) | 2~3h |
項目UML設計(團隊) | 4~5h |
項目選題報告答辯總結 | |
項目需求分析報告答辯總結 | |
Alpha 沖刺 | 8~13h |
Alpha 答辯總結 | |
Alpha 事後諸葛亮(團隊) | |
BETA 版沖刺前準備 | 0h~1h |
軟體産品案例分析(團隊) | 4h~6h |
Beta 沖刺 | 23h~33h |
Beta 答辯總結 | 6h~7h |
3、哪一次作業讓你印象最深刻?為什麼?
印象最深的作業有兩次
一次是 第二次作業——個人項目實戰,當初隻是覺得這個作業挺有意思的,是以才花了很多的時間和精力去弄,然後沒有想到意外的得到了助教還有老師的贊賞。
另外一次是
另外一次是結對項目--第二次作業,一開始沒有花時間去弄,大概還剩下一周多的時候,開始思考,然後想了很多,然後到了截至的那天,從早上8點多開始一直,外賣了午飯,到了下午上課的點去上課到了4點,回來繼續弄,一直弄到晚上9點,晚飯都沒有吃,才弄完這次作業。
4、累計花了多少個小時在軟工實踐上?平均每周花多少個小時?
總計大緻上花了140~180h在完成各項作業和任務上.按照17周時間來算,平均一周160/17 = 9.41h。
5、學習和使用的新軟體;
-
Wampserver
Apache Web伺服器、PHP解釋器以及MySQL資料庫的整合軟體包
-
excel
用excel 生成燃盡圖
6、學習和使用的新工具;
-
insomnia
接口測試軟體
7、學習和掌握的新語言、新平台
- PHP 語言 以及 CI架構
8、學習和掌握的新方法
UML類圖
9、其他方面的提升。
部落格的速度提升了不少。
二、寫下屬于自己的人月神話——個人或結對或團隊項目實踐中的經驗總結+執行個體/例證結合的分析
歲月神話:前期摸魚劃水,後期接鍋力挽狂瀾。
前期的時候,因為要打比賽,在訓練和比賽上花的時間比較多,而且組長(浩晖)也覺得我要打比賽,然後就不怎麼布置任務給我了,是以我就前期很安逸,主要就是跟着看了CI架構的視訊和兩門PHP的課程,然後熟悉一下接口測試軟體,項目的具體上手任務就幾個個來熟悉練練手,相比一下其他人做的事情比較少一些。
Alpha版本開始前後,組長任務交接給了海林,但是後期到了Alpha版本快結束的時候,組長(海林)因為各種原因不太想做組長了,導緻alpha版本展示的時候,我們組連ppt都沒有。然後就隻好我來接鍋,但是我接鍋的時候啥都不知道啊= =。。隻好先開一個會讨論一下beta版本還能做些什麼,最能做什麼。全部列一個清單,接下來我花了一段時間研究了如何釋出任務,然後熟悉團隊目前的進度,然後擔任各種中轉站,寫部落格的量刷刷刷就上去了。當然實際上因為之前的一些方向已經定好了,是以我接手的時候就是盡最大可能的保證完成項目最核心的功能要做出來。不過功夫不負有心人,雖然不完美,但是還是勉強完成了任務。
三、對下一屆實踐的建議,或者對于開學初的你,對于大一的你,對于開學初的我,你有什麼想建議和告知的呢?對于後來人的期許。 特别地,特别地,下一屆要不要中途換隊員?
- 軟工實踐很麻煩,很多部落格要寫,組隊最好認識的,這樣子一開始讨論起來比較不會尴尬,好配置設定事情的,那種可能中途棄坑的隊友千萬就不要了,會很坑,最初的目标千萬要符合實際,需求分析千萬要慎重,任務的制定一定要清晰,不然後期會很慘,還有就是團隊合作很重要。
- 換隊友的話,偷偷進了z班的微信群,裡面讨論的很激烈,其中讓我比較認可的一些内容,,軟工實踐的換隊員機制是在模拟企業環境,但是我覺得達不到模拟的效果,你沒有辦法做到把一個web隊員換到另外一組做前端工作中,我們也沒有短時間天自學并融入到新團隊的能力,就算有這個能力,除非對軟工實踐抱有巨大的熱情(具有巨大熱情的人基本上不會被換),否則按照大三上的科目情況,把大多數時間浪費在軟工實踐的成本效益不高,那麼,換隊員的事情就是弊大于利,對于被換的隊員,對于軟工實踐的恐怕也是越來越抵觸。是以,我個人不建議強制換隊員,極個别想要離開嘗試新團隊的,也支援。
四、分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《建構之法》上說團隊的發展有幾個階段,你的團隊都經曆過麼,最後到達了“創造”階段了麼?(參考《建構執法》第17章 人、績效和職業道德)
- 萌芽階段:團隊成員雖然是經過了精心的篩選,但團隊成員剛進入到一個新的團隊,還是會對職責規則和團隊的期望還不熟悉,可能成員之間的經曆與能力彼此也不太了解。
- 磨合階段:每個人都互相熟識,團隊開始有了明确的目标并為之共同努力,但會因各自不同的目标及個的能力、見解會對某個事項的見解不同而産生沖突,這種事情在團隊磨合期是常會發生的事情。
- 規範階段 感覺存在這個階段,但是又不存在的樣子。
- 創造階段 在beta版本快要結束的那幾天,感覺有創造階段的一點點小錯覺
五、怎樣證明你學會了軟體工程?
研發出符合使用者需求的軟體
已新增賬號:50+
一個月内使用的使用者數:20左右
活躍使用者:10+
通過一系列工具,流程,團隊合作,能夠在預計的時間内釋出 “足夠好” 的軟體
wonderland 位址
項目規劃說明書
github commit 記錄
Beta版本總結
Beta版本讨論分析
Alpha版本總結
項目文檔彙總位址
項目github位址
關于檢查表中的内容,大概掌握的語言方面不太好說,打的最多的就是c++了,軟工實踐用的是php,還是用架構的那種。。。軟體實作方面閱讀别人的代碼主要考腦力模拟,實在不行就隻好跑一遍,輸出中間變量慢慢了解。。。。。。目前确實還有很多答不上來,不過通過軟體實踐已經有部分能打得上來了,比如軟體測試,效能分析等已經有了涉及。