這個作業屬於哪個課程 | 2020春IW班(福州大學) |
---|---|
這個作業要求在哪里 | 個人作業——軟件工程實踐總結&個人技術博客 |
這個作業的目標 | 完成本次軟件工程實踐課程的個人總結 |
作業正文 | https://www.cnblogs.com/ybn-juan/p/13131305.html |
其他參考文獻 | 《構建之法》 |
一、回望
(1)對比開篇博客你對課程目標和期待,“希望通過實踐鍛煉,增強軟件工程專業的能力和就業競爭力”,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,為什么?
- 達到期待:熟悉了團隊協作下的軟件開發流程,掌握了一些常用的團隊開發所需的工具,以及能更敏銳地發現用戶需求的痛點。
- 存在不足:個人的軟件架構設計能力、編程能力仍有很多不足,常常出現有想法但不知道如何用代碼實現的情況。
(2)你在第一次作業的個人簡歷中制定的“這門課程結束后,你預期你將增長的能力、技術、技能”和你針對你的目標繪制的學習路線圖。對比當前你的所學所得,你達到了當時的預期值嗎?
- 沒有達到預期值。我在第一次作業中設定的預期是經過半年的學習能掌握基本的iOS App設計與實現能力,但在軟件工程實踐課程中我主要負責的是項目前端以及團隊博客,且團隊項目的界面是針對桌面Web端進行設計的。項目前端使用的Angular框架+NG-ZORRO組件庫對我來說都是完全從零開始學習的新技術,再加上組長的工作以及其他課程的任務,導致幾乎沒有時間去學習iOS開發了。
(3)請總結這門課程的實踐總結和給你帶來的提升,包括以下內容:
-
統計一下,你在這門軟件工程實踐中,一共完成了多少行的代碼:
- 個人作業+結對作業1000行左右,團隊作業1500行左右,共2500行左右。
-
軟工實踐的各次作業分別花了多少時間?(做一個列表)
作業名稱 花費時間(小時) 准備篇 3 熱身篇——疫情統計 50 結對第一次——某次疫情統計可視化(原型設計) 16 團隊作業第一次——種子隊伍選拔和團隊展示 3 結對第二次作業——某次疫情統計可視化的實現 24 團隊作業第二次——團隊GitHub實戰訓練 2 團隊作業第三次——項目需求分析 3 團隊作業第四次——系統設計和數據庫設計 3 個人作業——軟件評測 6 團隊作業第五次——站立式會議+alpha沖刺 48 團隊作業第六次——beta沖刺+事后諸葛亮 36 個人作業——軟件工程實踐總結&個人技術博客 6 -
哪一次作業讓你印象最深刻?為什么?
- 團隊GitHub實訓讓我印象最深刻,因為那次作業的截止時間就在當天23點,作業要求又很多,所以帶給我的緊張感是最強的。好在團隊中幾位后端大佬Java編程實力強勁,很快就完成了接口設計、數據庫設計和DAO層編寫,其他組員只需要分配一些方法去實現即可。最終這個看似很復雜的作業我們團隊在晚飯前就提交了。
-
累計花了多少個小時在軟工實踐上?平均每周花多少個小時?
- 200小時左右,平均每周15小時。
-
學習和使用的新軟件:
- Postman,Navicat,Axure RP
-
學習和使用的新工具:
- Git,GitHub,JProfile,Wakatime,Swagger-UI,Leangoo看板
-
學習和掌握的新語言、新平台:
- Typescript
-
學習和掌握的新方法:
- 開發前進行原型設計
- 前端面向對象編程,前后端分離
- 客戶端-服務器軟件體系結構
-
工程能力的提升:
- 了解並參與了一個前后端分離的小型Web項目的敏捷開發過程
- 提升了文檔和博客撰寫的能力
-
團隊合作上的提升:
- 掌握了使用Git和GitHub進行團隊開發的代碼管理和版本控制
- 掌握了使用博客園和看板進行每日工作記錄和進度監控
-
其他方面的提升:
- 自己的應變能力、抗壓能力、與人溝通的心態等都得到了一定的鍛煉
二、團隊總結
1、 如果你是組長,你覺得你有哪些地方做的不夠好的?有哪些地方做的好的?你覺得該怎么改進?
- 做得好:
- 從與其他團隊對比來看,除了無懈可擊的種子隊外,我們團隊博客和文檔的編寫水平和規范程度在所有團隊中間還是比較高的。
- 當老師、助教在博客下評論時,我們團隊會針對提問的范圍及時安排前端或后端的組員回復相關評論。
- 項目后端負責組員的編程水平都很高,所以后端設計、開發、測試進度能夠一直領先於前端,這也為前端的開發提供了很多便利。
- 團隊內有困難互相幫助,例如后端組員向前端提供完善的接口文檔和樣例,遇到困難或大的變更時開會或錄屏講解,幫助換組過來的同學盡快了解我們團隊的開發流程和風格並融入工作等。
- 做的不好:
- 對於極個別在團隊中划水的組員,沒有采取有效的應對措施。
- 兩輪沖刺前的任務分配(主要是前端)都不夠合理,導致工作量分配不均。
- 改進措施:
- 要求划水的組員主動換組,以免影響團隊整體進度。
- 前端任務分配細化,避免工作量不平均的情況。
2、 你這學期經歷過換組嗎?你對換組有哪些看法?談談你在這個過程中的感受。
- 我們團隊經歷過換組,后端3名小黃衫得主中的一人被換出,而換入的同學在原隊伍負責的是安卓,和我們的后端項目之間除了開發語言都是Java外幾乎沒有共通之處。Beta沖刺之初,后端主力沈志峰同學不僅要主導重構整個后端項目,還要幫助新組員了解我們項目的業務邏輯和技術細節,壓力之大可想而知。
- 我認為目前的換組模式只是照搬《構建之法》中的內容,過於教條主義。企業對於員工因突發情況(老婆生孩子、親人重病等)而無法繼續參與工作的情況,應該會有一套完善的應對措施,而不該將這部分壓力下放給開發團隊。課程中的換組需要模擬的應該是團隊成員的技術方向與項目要求不符合、團隊成員間出現不可調和的矛盾等由成員主動提出離開原團隊的情況,抑或是團隊成員毫無貢獻需要“開除”的情況。
- 綜上所述,我認為“要不要執行換組”“該將誰換出去”等問題,應該由具體團隊自行討論決定。
3、分析一下自己所處的團隊。軟件工程實踐是大學里少有的認真的團隊協作經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過么,最后到達了“創造”階段了么?
- 我認為我們的團隊在Beta沖刺后可以算是處於“規范”階段,由於時間和技術水平的限制,在項目上沒有更多的突破,只有一個通知自動轉換到待辦事項的功能可以算是“創造”。
三、人月神話
1、怎樣證明你學會了軟件工程?以下要求你們的團隊達到了哪幾個?請在隨筆中用數據證明上述內容或側重選擇之一。
- (2)通過一系列工具,流程,團隊合作,能夠在預計的時間內發布 “足夠好” 的軟件
我們團隊的開發流程都有詳細的記錄,還使用了Leangoo看板來管理兩輪沖刺的過程。- 項目需求分析:快樂就隊——項目需求分析
- 項目系統設計:快樂就隊——項目系統設計與數據庫設計
- 項目實現過程:快樂就隊——Alpha沖刺隨筆集合,快樂就隊——Beta沖刺隨筆集合
- 項目進度安排:快樂就隊——Alpha沖刺分工安排,快樂就隊——凡事預則立
- 項目任務分配:Alpha沖刺看板,Beta沖刺看板
- 項目提交記錄:前端Commit記錄,后端舊項目Commit記錄,后端新項目Commit記錄
- (3)並且通過數據展現軟件是可以維護和繼續發展的。
我們團隊項目的源代碼和關鍵文檔都可以在GitHub上找到,其他附加文檔在歷次作業博客附件中也有提供。
2、寫下屬於你自己的人月神話——個人或結對或團隊項目實踐中的經驗總結+實例/例證結合的分析,文字部分字數要求在100字以上,可以使用你自己喜歡的方式表達(如圖文結合、視頻)..
在本次軟件工程實踐中我以一個技術菜鳥的身份擔任了組長,所以想談一談當自己代碼水平不那么突出時應該如何為團隊做貢獻。
剛組隊時我是處於前端后端要啥啥不會的狀態,本想着做點測試只求能過,但團隊中的大神們除了本門課外都還有其他項目要做,組長就落到了我這個“閑人”頭上。既然做了組長,再想着划水顯然說不過去。想着自己高考時語文還算優勢科目,於是先攬下了團隊博客的工作,以及檢查項目文檔語句是否通順合理等。
大佬推薦使用前端框架Angular,在結對作業過程中學了一下還比較好上手。由於自己有點強迫症,同時也覺得作為組長貢獻度比組員差太多會很難看,所以在發現其他組員負責的模塊有問題時也會順手改一改,但往往一做就是兩三個小時。最后統計下來,我在前端組員中的編碼時長是最長的,再加上寫了很多篇博客,貢獻度就比較好看了。
我認為我是被組長的身份推着去完成團隊任務的,但這並不算什么壞事,重要的是我能在團隊中找到自己合適的位置,實現自己的價值。以及我能夠較為順利地完成組長的工作,離不開團隊中其他技術大牛的幫助和支持。特別是在第一批就獲得小黃衫的沈志峰同學,老師、助教提出的關於技術細節的問題,基本都仰仗他來回答。在這里也向團隊中其他完成了自己工作的組員致以衷心的感謝。
四、建議
1、對下一屆同學的建議,或者對於開學初的你,對於大一的你,對於開學初的我,你有什么想建議和告知的呢?請寫下你對后來人的期許。
- 軟件工程實踐總體來說是一門很實用的課,它能讓你實現從“代碼能力”到“工程能力”的轉變。通過在組隊中選擇自己喜歡的角色/崗位,可以幫助你找到未來就業后的工作定位。一個團隊中並不要求所有人都是代碼高手,編程之外也很多工作可以做(比如我過去語文比較好,我負責的團隊博客文筆會更流暢,閱讀體驗更佳)。總之,人盡其力,不做咸魚。
2、對於軟工實踐課程,你有哪些建議?
- 希望老師能多針對福州本地軟件相關企業的工作模式來設計教學內容,而不是照搬教材或其他學校的模式。當然對於追求大廠的大佬們,就不用作什么限制了。
- 對划水、消極怠工的同學的督促和懲戒,不應該要求其所在團隊來承擔責任,這一點看隔壁S班的同學吐槽比較多。畢竟在企業中,這樣的人是有人事部門來處理的。指責組長不作為甚至搞連坐扣績效(團隊成績),不僅傷不到那些已經躺平了的咸魚,而且會打擊其他勤懇工作的組員的積極性(這篇博客下面林助教的回復就讓我很感動)。
3、對於助教工作,你有哪些建議?
- 希望助教更像是老師和學生間溝通的橋梁,以學長學姐的身份來引導我們這些后輩更好地融入課程學習中去,以及多一些經驗分享,比如這學期樂助教的技術分享就很棒。
4、對於自己今后,你有哪些建言?
- 要多學習與人溝通的技巧,這樣在以后的團隊工作中才會更加游刃有余。
五、個人技術總結
概述:HttpClient是Angular框架中用來發送Http請求的模塊,它通過面向對象的方式創建和使用,可以很方便地向目標URL發送Get、Post等請求,並使用.subscribe()方法和回調函數來處理返回的數據或錯誤信息。