最終做業 - 軟件工程實踐總結

1、請回望暑假時的第一次做業,你對於軟件工程課程的想象

1)對比開篇博客你對課程目標和期待,「但願經過實踐鍛鍊,加強計算機專業的能力和就業競爭力」,對比目前的所學所練所得,在哪些方面達到了你的期待和目標,哪些方面還存在哪些不足,爲何?html

  • 開篇回顧:

  • 在完成了軟工實踐後來看,說實話我認爲本身在代碼能力的提高方面是頗有限的,身爲PM在此次實踐中並不負責項目的具體編碼,而是將更多的時間和精力放在了團隊管理和推動項目上。前端

  • 但在團隊協做方面我認爲徹底達到了個人期待和目標,此次實踐可以真正的管理一個9人團隊並從始至終地完成了一個項目的開發,這對我來講是第一次,它大大提升了我待人處事的能力。python

  • 此外就是對本身的時間管理能力也在此次實踐中獲得了提高,經歷了實踐才頭一次以爲時間如此不夠用,天天既要完成實踐任務又要兼顧學習和週末的實驗,這讓我不得不學習如何合理利用各類碎片化的時間來兼顧實踐與其餘課程的學習。laravel

2)總結這門課程的實踐總結和給你帶來的提高,包括如下內容:git

  • 問:統計一下,你在這門軟件工程實踐中,完成了多少行的代碼;github

  • 答:根據以前的beta總結的學習進度表的統計,我這個學期打了2550行代碼,不過老實說個人代碼量主要體如今實踐的我的做業、結對兩次做業上了,而到後面的團隊項目時,我並無在項目中貢獻太多的代碼,更多的代碼用來驗證想法的可行性上了,以後就將任務交給分配的人去作了。web

二、軟工實踐的各次做業分別花了多少時間?(作一個列表)面試

做業名 花費時間
第一次做業 120
我的項目 960
結對項目1 580
團隊風采展現 120
結對做業2 1620
團隊選題報告 720
團隊課堂UML設計 405
團隊需求分析報告 915
Alpha衝刺 2385
團隊現場編程 205(課後)+180(課上)
團隊項目評測 215
Beta衝刺 1405
最終展現 180
  • 總花費時間:9810分鐘

三、哪一次做業讓你印象最深入?爲何?數據庫

  • 印象最深的應該是團隊現場編程的做業,那次做業咱們在規定的時間內只是寫出了預期的前端代碼,因此課後我和後端組的@王源和@趙暢爲了完成項目,從下午3點一塊兒幹到了凌晨一點,最終完成了項目的後端代碼並部署到了雲端上,也是此次做業標誌着咱們團隊從學習狀態真正轉到了有必定生產力的階段。
    此外也是此次做業讓咱們對本身的代碼能力和學習能力有了更強的信心,畢竟在一天的時間內完成了一個網站從無到有的搭建,而關於後端laravel框架的相關知識,也是在一天時間內悟道的。

四、累計花了多少個小時在軟工實踐上?平均每週花多少個小時?同時貼出開篇博客「你打算平均每週拿出多少個小時用在這門課上」的回答編程

  • 實踐前立下的flag
- 我打算每週拿出14小時左右的時間,平攤到天天大概兩小時來花在這門課上,不過具體須要根據任務需求靈活調整,而且我但願我花在這麼課上的時間是高效率的,不要最後成爲自我感動的藉口
  • 根據上面的統計,累計花了9810分鐘在軟工實踐上,算起來也大概是天天兩個小時╮(╯▽╰)╭ ,基本符合本身的預期

五、學習和使用的新軟件;

  • 原型製做軟件:Axure

  • 矢量圖繪製軟件:Illustrator

  • 視頻剪輯軟件:Premier

  • Android Studio

六、學習和使用的新工具;

  • 石墨文檔(在線文檔編輯)

  • SVG2Drawable(安卓矢量圖轉換)

  • 版本控制:git及github

七、學習和掌握的新語言、新平臺;

  • 基於JAVA的Android開發基礎

  • 基於laravel的web後端框架

八、學習和掌握的新方法;

  • 學習編寫單元測試來檢測代碼質量

  • 學會使用python爬取網頁信息

  • 學會撰寫文檔來規範團隊的代碼質量並以及引導團隊前進

  • 學習如何給團隊的每一個人分配合適的任務

九、其餘方面的提高。

  • 收穫了屢次在百十號人前展現本身的想法、思考、答辯的機會

  • 對軟件工程的思想有了本身的切身體會,明白了一個項目有必要的規範文檔作支撐的必要性(雖然很繁複,可是這是「工程」不可或缺的)

  • 收穫了管理一個9人團隊的寶貴經歷

2、寫下屬於本身的人月神話——我的或結對或團隊項目實踐中的經驗總結+實例/例證結合的分析

  • 人月神話在團隊現場編程中有很是具體的體現,在現場編程的實踐中,我一開始考慮到各個組員的技術棧,因此讓司職後端和前端的組員依然按照各自的角色完成抽獎系統的前端和後端部分,而web平臺的特色又致使前端頁面的完成速度會遠快於後端,但當咱們的前端頁面完成時,儘管解放了4個組內勞動力,但因爲負責前端的組員對於咱們選用的後端框架並不熟悉,致使出現了後端努力編程前端只能負責加油的狀況出現
    這就像《人月神話》中描述的危機同樣,在這樣的狀況下,即便增長再多的人手,由於擅長技術不一樣,到最後也只能增長溝通成本拖慢項目進度。

3、對下一屆實踐的建議,或者對於開學初的你,對於大一的你,對於開學初的我,對於同期的TA們,對於後來的學弟學妹:

1)你有什麼想建議、告知和期許想要告訴他們呢?

  • 我想說在尋找隊友時必定要好好考慮,要從性格、價值取向、技術能力等多方面考慮,就個人實踐經從來看隊員之間有相仿的三觀是十分必要的,這樣不只下降了你們溝通的成本,也能使團隊保持一個良好的氛圍。

2)特別地,特別地,下一屆要不要中途換隊員(強制的、完全的從一隊換到另外一隊)?假設依舊是一個90+人數的大班

  • (既然我已經渡過此劫)那我想說:換!狠狠的換!這樣才能更好的模擬現實生活中職員跳槽的狀況,並且換隊員後對團隊的管理者來講也是一個既有趣又有挑戰的問題(⊙﹏⊙)。

3)身在一個格外大的班級,競爭強勁,你認爲一個組的人數應當在多少比較合適?

  • 我我的認爲團隊人數保持在5-7我的的規模應該是最合適的。

4)我的/結對/團隊做業應該控制在怎樣的規模?

  • 我的做業和結對做業的規模我認爲沒有問題,可是在團隊編程實戰中我認爲任務的規模應該適當減少一下,畢竟此次的現場編程做業不像是3個小時能夠完成的╮(╯▽╰)╭,此外我認爲Alpha從衝刺的時間能夠維持在2周的時間,而beta能夠縮短到一週,我的傾向於長痛不如短痛的衝刺模式,既然伸頭是一刀縮頭也是一刀不如多熬幾個夜直接將項目完成。

5)這學期下來,你最感謝的人是誰?有什麼話想要對TA說呢?

  • 我想感謝組內的後端leader@趙暢,在此次實踐中做爲後端的leader幫我負擔一大部分後端的管理,讓我可以把更多的時間放在對項目總體的把控上。

4、分析一下本身所處的團隊。軟件工程實踐是大學裏少有的認真的團隊協做經驗。《構建之法》上說團隊的發展有幾個階段,你的團隊都經歷過麼,最後到達了「創造」階段了麼?(參考《構建執法》第17章 人、績效和職業道德)

  • 萌芽階段:這一階段大概對應着咱們從組隊開始到第三次alpha衝刺時的狀況,在這個階段隊員們都在學習相關的技術,對項目實現可能碰到的問題尚未一個很是清晰的認識。

  • 磨合階段:這一階段對應咱們團隊現場編程及以後的兩次alpha編程,團隊現場編程將咱們團隊當時存在的問題暴露了出來,這也是組內成員提出疑問最多的一個階段,不過很慶幸團隊成員直接可以相互理解,對項目的疑問也能經過當面交流指定解決方法,從而度過了團隊的磨合階段。

  • 規範階段:從第六次alpha衝刺開始,我認爲咱們團隊進入了規範階段,咱們在這時已經完成了項目的接口文檔撰寫、代碼規範的約定、版本控制規則的制訂,與此同時你們對項目所指望達成的目標有了清楚的認識,對本身負責的部分應該達成怎樣的效果也瞭然於心。

  • 創造階段:我認爲咱們的團隊在beta衝刺階段必定程度上觸及了創造階段,我的的體會是,在beta階段咱們相比alpha階段添加了4個全新的功能點,在我和後端組編寫好接口文檔後,每一個隊員在明確了本身的任務後項目便開始了「並行開發」,咱們的7次beta衝刺中,由於考試衝突擠掉了3次的時間,但咱們的項目卻依然早於預期的進度完成了,這說明咱們整個團隊已經可以排除雜念將大部分精力花在項目的開放上了。

5、怎樣證實你學會了軟件工程?

1)研發出符合用戶需求的軟件

  • 在項目開始時咱們就發佈了一份有100人回答的問卷,明確了用戶的需求,並以此爲依據開發咱們的軟件

  • 截至截圖時,根據後臺的數據庫記錄一共有141人/次 使用了咱們的軟件

2)經過一系列工具,流程,團隊合做,可以在預計的時間內發佈 「足夠好」 的軟件

  • 此次實踐中咱們團隊的代碼徹底託管在github organization上,每一個人在上傳代碼前都須要遵循約定撰寫commit信息

  • 團隊的merge network圖:

  • 前端:

  • 後端:

  • 前端commit狀況:

  • commit信息(部分)

  • 後端commit狀況:

3)而且經過數據展示軟件是能夠維護和繼續發展的。

  • 團隊的接口文檔、技術文檔等都是放在石墨文檔上組內共享的:

  • 組內有詳細的技術文檔

  • 組內的代碼規範

  • 組內的代碼管理

4)對着這個檢查表:http://xinz.cnblogs.com/p/3852177.html 檢查一下,本身若是去企業面試,這些常見的問題是否都能回答,並在此總結。

  • 針對「硬的問題」:按照檢查表,我認爲本身還有很是大的進步空間,特別是JAVA部分的問題,在此次實踐中並無系統的學習JAVA這門語言,只是以項目驅動學到將將能看代碼、寫代碼的程度

  • 針對"軟的問題":感謝軟工理論課與實踐,我對檢查表中的這些問題都有了切身的體會,可以明白一些必要的「繁複」項目文檔、相關調查、詳細的規範都是爲了支撐項目可持續發展的必要要素,雖然這會必定程度上下降效率,但倒是保證項目可以成爲一個「工程」不可或缺的。

7、個性發揮,包括圖文、照片和創意

相關文章
相關標籤/搜索