【軟件工程】 第1次團隊作業


項目 內容
這個作業屬於哪個課程 軟件工程 羅傑
這個作業的要求在哪里 第一次團隊作業
我們在這個課程的目標是 熟悉軟件開發整體流程,提升自身能力
這個作業在哪個具體方面幫助我們實現目標 第一次體驗一個完整的工程

團隊成員介紹

    對沒錯!我們就是葫蘆娃!!



    我們的團隊由七位男生組成,他們分別是:

  • 大娃

        “熱愛生活、熱愛挑戰、熱愛編程的大三“准程序猿”一枚”
  • 二娃

        “男,21歲,愛好足球、乒乓球、打游戲,精通C、Java等語言”
  • 三娃

        “心走得很遠,但身體仍在北航的幻想型程序猿,本科所學略知一二,本科之外一無所知(qwq)的萌新”

  • 四娃

        “馬四娃,男,北航6系普通學生,業余阿森納球迷,專業低級碼農。C,C++,Java,JavaScript,Python都能寫,但都不精通。磕磕碰碰,成功完成了兩年半的本科學習,有點幸運。沒什么項目經歷,做的都是些不值一提的小玩意。作為開發組的一員會在團隊作業中盡力的。”

  • 五娃

        “率真,樂觀。人生不長,做想做的事,見想見的人,創造想創造的代碼!”

  • 六娃

        “樂觀,進取;愛動漫,愛籃球,虛心學習,勇於嘗試,追逐夢想;熟悉c/c++、java等語言,積極做好力所能及的事。”

  • 七弟

        “計算機學院學生,偶爾打打籃球,超愛游戲的咸魚程序員一枚”


我們團隊成員的初步分工如下:

PM: 二娃、三娃

開發組: 大娃、四娃、五娃、七弟

測試組:六娃


學長的經驗之談

軟件工程這門課已經開設了幾年的時間,以前也有很多學長做過團隊項目,為了更好的推進我們的項目,我們請到了15級的劉子淵學(巨)長(佬)來學習經驗。

“當時的項目有多少用戶?給用戶多少價值?現在還有人用嘛?”

當時完成了一個物理實驗報告的在線生成網站,用戶數沒有一個具體的統計。

“這個項目能否讓我們團隊繼續開發呢?”

當然可以繼續開發,如果我們的版本不行的話你們也可以使用再上一屆的版本。不過你們也可以寫一些自己喜歡的、感興趣的東西。

“項目開發有什么樣的經驗或教訓呢?”

經驗和教訓的話,就要有一個充分的准備,也要有一個計划,比如說對做好一個項目的時間成本有估計嘛?遇到一個新的框架,打算用多久來熟悉它呢?可能概念和語言都和你們之前學的完全不同,也要寫很長的文檔,每周可能要花 3*8 個小時來推進項目,那么具體要怎么推進呢?

個人建議可以每天坐在一起干活,中午的時候一起吃飯,相互聊聊項目進展怎么樣。我自己當時的教訓就是時間不是很夠,對其他人的進度失控。我認為軟工主要分為兩部分,一部分是對代碼的控制,一部分是對進度的控制。代碼控制還好一些,比如說代碼規范、版本、工作流之類,有linter還有git flow。進度控制就是一個比較虛的東西,不太好衡量但又必須衡量。要學好軟工我覺得主要還是進度控制。

“可我們對工程的概念挺模糊的,也不知道到底有多大的工作量,老師助教只說要1W行代碼左右,但不同的封裝程度和語言,1W行代碼能干的事區別可太大了,所以感覺......確實挺模糊的”

所以你們學不好軟工。

“那學長對學好軟工有什么樣的建議呢?(絕望.jpg)”

我就說說不談時間的對工程的認知吧。怎么設計結構?這個應該是OOP。然后是文檔,文檔決定了你的項目是否能長久。文檔包括tutorial,manual和documentation。

Tutorial是用來告訴什么都不知道的人這個項目是如何運行的。Manual包括每個模塊的作用,以及和其他模塊的相互作用,想開發一些功能應該如何修改。Documentation就是API文檔。

我認為manual是最重要的,它關系到項目的可擴展性,API文檔就像一盤散沙,manual負責有邏輯的將他們串起來。API是當你已經知道了每個地方怎么連起來了,然后也知道有類似的例子,但你對每個參數的意義和返回值的意義不是很清楚,或者想看看這個模塊有什么可以用的,你才去查API文檔。就好像你Cpp遇到一個東西,想用可變長數組,你去百度,人家推薦你Vector,然后會說明一些作用和例子,這里面就包含了tutorial和manual的東西。等你大概明白是怎么回事了,但可能用起來還不是太方便,你會想去查查cppreference,看看vector具體怎么用,比如我能不能獲得頭元素和尾元素?能不能把兩個vector拼接在一起?這比直接讀代碼要方便的多。前期可以寫一寫這個,既可以幫助你們掌握進度,還可以加深對項目的理解。


采訪所得

通過采訪大佬學長,我們學習到了很多東西,對一個項目從開始到推進到最終的成果,整個流程也有了一個大概的概念,也學習到了一些提高效率的方式和需要注意的隱患。比如:

  • 在項目開始前,全面的設計和詳實的文檔,能夠有助於整體項目架構的確定,也能夠避免“走一步看一步”導致項目無法推進,甚至需要重構的問題。

  • 以工作組的形式來完成項目,而不是成員各寫各的,大家坐在一起寫一方面對項目進度可以有一個更好的把控,另一方面如果遇到困難,大家也可以一起克服,降低交流成本。

  • 雖說大家各司其職,但不同組之間也應該相互溝通,密切配合。比如:PM雖然負責前期總體需求分析和產品的設計,但在開發組開發的過程中,也應該跟隨開發組一起,了解進度,並熟悉開發組的整體架構,提出合理的需求推進項目,而不是對項目完全不熟悉,提出一些不太可能實現的需求導致開發組的進度陷入困境。

  • 在閱讀了其它同學的博客后,我們也認識到我們要對可能出現的情況做出預期,比如說項目進度緩慢、或是團隊出現矛盾等等。我們作為一個團隊,只有志同道合、一起努力,才能最后達到不錯的結果。


實際花費時間

  • 采訪:50min
  • 編寫:90min


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM