一、請回望開學時的第一次作業,你對于軟體工程課程的想象
- 對比開篇部落格你對課程目标和期待,“希望通過實踐鍛煉,增強計算機專業的能力和就業競争力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目标,哪些方面還存在哪些不足,為什麼?
-
期待和目标
學會了微信小程式的開發,學會小程式開發新語言,了解到關于一個軟體從開始制定計劃到可以驗收傳遞需要經過一個什麼過程,在這次團隊項目裡,讓我很好的體會到了一個軟體開發的過程,要怎麼去進行需求分析,如何找到使用者的痛點,怎麼做好功能的四象限配置設定,如何在一個較短時間裡做好一個mvp功能,要如何做一個“足夠好”的軟體。
- 不足
- 邏輯思維能力還不是很好,在寫代碼的時候邏輯不是很清楚就開始動手敲代碼,導緻一直出問題。
- 對于時間的安排,在aphla階段和beta階段幾乎都是要熬夜寫代碼的。
- 語言表達,交流寫作能力還是沒有得到提升,不能夠清楚的表述自己遇到的問題。
-
- 總結這門課程的實踐總結和給你帶來的提升,包括以下内容:
-
1)統計一下,你在這門課程中,完成了多少行的代碼;
800,900行吧
- 2)軟工的各次作業分别花了多少時間?(做一個清單)
作業 耗時 個人作業1--閱讀作業 7h 個人作業2--提問題 8h 結對程式設計 30h 個人作業3--案例分析 5h 團隊作業1--團隊展示 1h 團隊作業2--團隊計劃 2h 團隊作業3--需求分析 15h 團隊作業4--alpha沖刺 85h 團隊作業5--測試與釋出 團隊作業6--展示部落格 3h alpha項目複審 團隊作業7--alpha階段事後諸葛亮 4h 個人作業4--alpha階段個人總結 團隊作業8--beta沖刺 80h 團隊作業9--項目驗收總結 beta項目複審 -
3)哪一次作業讓你印象最深刻?為什麼?
alpha沖刺階段,因為剛開始學寫微信小程式,對于小程式的開發一竅不通,要自己找資料學習小程式的開發語言邊學邊寫,遇到很多問題還不知道是什麼原因産生的,很心酸。經常要熬夜寫代碼,因為剛開始學有時候代碼寫的不是很好,還要一直改動。再加上有時候會開發平台莫名有問題,明明代碼都沒有改動過,别人的機子上可以運作,自己就不能運作,還要重新建立一個項目把代碼導進入。關于連接配接伺服器的問題,各種找尋方法。
-
4)累計花了多少個小時在軟工上?平均每周花多少個小時?
累計花了200多個小時,平均每周花了17小時。
-
5)學習和使用的新軟體;
知曉雲、石墨文檔
-
6)學習和使用的新工具;
微信開發工具、leango、jprofiler
-
7)學習和掌握的新語言、新平台;
微信小程式開發語言:wxml、wcss、js
微信小程式開發平台
-
8)學習和掌握的新方法;
關于閱讀要如何提一個有想法的問題,如何結對程式設計,軟體開發從定計劃到測試傳遞需要使用到的方法,如在做需求分析時可以使用NABCD方法,可以使用四象限的方法給功能定位。
-
9)其他方面的提升。
團隊合作能力,解決問題的能力,抗壓能力
-
二、寫下屬于自己的人月神話——個人或結對或團隊項目實踐中的經驗總結+執行個體/例證結合的分析
- 在做結對項目時,需要彼此了解一下自己的能力,更好的配置設定彼此的工作,不要隻有一個人在程式設計,另一個人閑着。要注意每個人的程式設計時間,不要長期由一個人掌控鍵盤。并且要注意時間的安排,在這次結對項目中,因為是要在上一屆的代碼進行修改,因為沒有合理配置設定時間,提前閱讀學姐的代碼,了解整個代碼的結構,導緻在做修改的時候很痛苦。
- 在團隊項目裡,遇到問題經過一番思考之後如果想不出來解決辦法,要及時要隊友求助,不要死鑽問題,我在開發過程中遇到過因為有一定的程式設計疲勞了,但是又死要自己解決問題,導緻浪費了很長時間在一個bug上,最後求助隊員很快就得到解決。是以如果實在解決不了要及時要隊員求助,并且在程式設計的時候要注意程式設計時間的長短,過長的程式設計時間反而會較低自己的效率,因為長時間的程式設計,思維有時候就會被固定在一個方向,這時候就需要休息一下或者隔天再繼續(已經是晚上了)。
三、對下一屆實踐的建議,或者對于開學初的你,對于大一的你,對于開學初的我,你有什麼想建議和告知的呢?對于後來人的期許。對于換人機制,有什麼樣的建議?
-
對開學初的我:
多讀書(文學方面的),提高自己的語言表達能力,交流、寫作能力;合理安排自己的時間,做好短期目标和長期目标;做事不要趕,緩下來想好了在做
-
後來人的期許:
合理安排自己的時間以及團隊合作的時間,當發生沖突的時候,要考慮好優先順序,跟PM解釋清楚,以免工作安排發生問題。在團隊項目裡要善于跟隊員交流,經常交流經驗,遇到無法解決的問題要及時求助。做項目前要做好預備工作,需要使用什麼程式設計語言要事先去了解學習,不然邊寫邊學,會很痛苦。代碼規範和源代碼的管理也很重要。
-
換人機制:
挺好的,能提高自己的适應能力,能盡快的融入一個團隊裡,了解新團隊的工作安排,看懂新團隊的程式,協作工作。模拟工作中可能出現成員的變動問題。
四、分析一下自己所處的團隊。軟體工程實踐是大學裡少有的認真的團隊協作經驗。《建構之法》上說團隊的發展有幾個階段,你的團隊都經曆過麼,最後到達了“創造”階段了麼?(參考《建構執法》第17章 人、績效和職業道德)
- 萌芽階段:個人的角色和職責不是清楚,但是項目剛開始,有點迷茫,還未适應團隊環境、結構,不知道從何下手開始工作。
- 磨合階段:對于項目有了一定的了解,工作開始有點順手,沒有發生沖突問題。
- 規範階段:對于角色、職責定義和項目流程有了比較統一的認識,能夠互相協助,交流經驗。
- 創造階段:感覺團隊還沒能達到這一點,并沒有實作高度自治,角色和職責不能夠根據項目的要求自然轉換。
五、怎樣證明你學會了軟體工程?
- 研發出符合使用者需求的軟體
- 必須公開釋出,有實際的使用者,一定的使用者量和持續使用量 (3 天後能保持10 - 100個使用者);而不是: 做沒有使用者使用的軟體
個人作業5——軟工個人總結 個人作業5——軟工個人總結
- 必須公開釋出,有實際的使用者,一定的使用者量和持續使用量 (3 天後能保持10 - 100個使用者);而不是: 做沒有使用者使用的軟體
- 通過一系列工具,流程,團隊合作,能夠在預計的時間内釋出 “足夠好” 的軟體
- 有項目規劃/需求/設計/實作/釋出/維護,有定時的進度釋出 ; 而不是: 通過臨時熬夜,胡亂拼湊,大牛一人代勞,延遲傳遞等方式糊弄
原型設計工具:墨刀
代碼管理:碼雲
項目管理:issue,leango
項目規劃
需求分析
使用者使用調查
相關測試釋出部落格:
https://www.cnblogs.com/coolgirls/p/8996095.html
https://www.cnblogs.com/coolgirls/p/9127612.html
http://www.cnblogs.com/coolgirls/archive/2018/05/08.html
定時進度釋出:
alpha沖刺
beta沖刺
- 并且通過資料展現軟體是可以維護和繼續發展的。
-
而不是 找不到源代碼,代碼無文檔,代碼不能編譯,沒有task/bug 等項目的發展資料
碼雲位址
-
請在随筆中用資料證明上述内容或側重選擇之一。