微信款款說軟工——聽取蛙聲一片【HansBug與WPB同學*於2021.4.14凌晨的對話】


  • 注:本次對話是以微信聊天的形式進行的,其中HansBug指助教HansBug,WPB同學* 是指以WPB同學作為打字者,謎語人隊成員共同作為思辨者的聊天角色。

前情提要

HansBug視角:

課程是2021年北京航空航天大學計算機學院本科敏捷軟工課程,大三下學期開課,同時有另外兩個並行課程可供選擇(我們這邊是軟件工程三選一,分別是敏捷軟工、嵌入式軟工和AI軟工)。在本年度的課程中,之前的結對部分進行了一定程度上的改革,雖然略有問題但是還算是圓滿結束。事情發生在簡要需求分析部分,由於之前的一些安排失誤以及需要邀請業界人士和大眾評審團,故需求部分的答辯安排在了周三上午(2021-4-14)。在周二晚上(2021-4-13),助教們對各組的成果進行審核的時候,發現部分組的內容過於簡略,且近期助教工作壓力也很大,故在學生群中用語略微激烈地對學生表述了意見,由此在學生群體中引發較大爭議。本段對話即在事情發生后,聯系到了一向相對客觀中立的WPB同學,與之進行的一段深刻且有價值的意見交換。

謎語人隊視角:

在擺脫了痛苦的結對階段后,我們迎來了我們對軟件工程這門課程的主要預期階段——團隊階段。在周六(2021-4-10)發布團隊選題后,我們玩了一個黃金點游戲,並於當天晚上22:25確定了選題優先級,此時我們優先級為4號,因此放棄了之前商議的航概題庫選題,轉為自選題目。我們決定在周日(2021-4-11)這個大家都有空的時間進行討論,確定選題。當天16:58,發布了團隊項目需求分析,該作業顯然是需要在討論出選題之后才能進行。因此我們緊鑼密鼓地討論了自選題目后交給HansBug進行審核。被否兩次后,被通知自選題目具有較高門檻,因此我們在周一(2021-4-12)再次討論選題,最終選定了數據集管理和可視化這個給定選題,並於周二(2021-4-13)凌晨得到了該選題可行的回復。由於當天有四位同學需要進行計網實驗,因此我們非常緊迫地完成了兩個需提交的作業,並於完成后不久看到了一條令人感到不快的消息。在水群中發泄了自己的情緒后,我們認為需要對課程組進行反饋,此時恰好HansBug向WPB發送消息想要調查相關事件,因此我們決定通過這個方式進行反饋。

當事消息

@所有人

緊急通知:助教團正在提前查閱並審核各團隊的博客作業,發現部分團隊存在一些較嚴重問題,比如:沒有視頻鏈接,沒有說明發布平台及預計用戶量等一些作業要求中明確規定的要點。這些內容都需要提前給旁聽人士,學弟學妹,助教老師查閱觀看,質量過低影響的不僅是單個團隊,

嚴重影響班級博客整體質量,嚴重帶壞作業提交敷衍風氣,嚴重耽擱助教提前准備工作。因此請各團隊再次審核團隊作業博客,盡快將作業要求中要求的全部內容完成,若繼續不合作業要求並給課程組增加負擔,將會承受貴團隊應受的懲罰。

及時完成!及時完成!及時完成!(視頻


聊天記錄

  • 注:為了閱讀的流暢性,我們整合了一部分聊天記錄,修改了一部分聊天記錄的說法和格式,並人為地進行了分段且概括了主要內容,原文在此:https://shimo.im/docs/cQ3GKqxtwCpxQtVD

同學們情緒的直接原因和深層原因,課程組和我們對軟件工程課程的理解不同

HansBug:老哥,問個問題啊,你覺得這波因何而起?直接原因深層原因都談談唄。
WPB:我感覺直接原因就是時間太緊了,大家壓力都比較大,導火索就是那個通知。
WPB:我感覺深層原因是我對軟工的理解和老師對軟工的理解不太相同。
WPB:我在組長群里問能不能選難度高,但創新度低的項目作為選題,就是想跳過找點子,找用戶這些。
WPB:我理解的軟件工程,是客戶提出需求,我們探索客戶需求,重點放在大規模代碼的管理上。
WPB:但是現在感覺是,我們要提出一個點子,去市場調研,創新,推廣,這部分工作量比較大。
WPB:我來羅傑老師班上的原因是:1.和隊友做點東西;2.學一下互聯網公司的前后端技術,為未來工作積累經驗。
HansBug:可以理解你們的這一看法
WPB:核心是我是技術導向,現在有點像產品導向
HansBug:我們對自選題的定位,是讓一些特別有點子的組,在有大把握的情況下,搞大事情;而不是讓人人都去從零開始整,我們想的是對於能力不夠,或者如你所言這樣想的組,選個給定的題目,或者干脆繼承項目,搞一下也行啊
WPB:我們是這么想的:給定的選題里,2應該是個非常標准的互聯網項目吧,8個組我覺至少有4個想選,前后端,高並發,各種技術都能學
WPB:剩下的題目里:1. 我們不想做AI;3.用戶推廣難,做AI的人不會寫代碼可視化感覺有點很怪;4. 感覺全是前端;
WPB:繼承項目,要么想不出來創新,要么創新難度不可控:1. vlab,我們想加協同,但是他用了成熟的前端編輯器,我們不太可能改;2. 知識路書,看不出來有啥用,更別提創新;3. 表情包制作:懷疑是怎么進入選題里的,同類軟件滿天飛;4. visualpytorch:感覺直接是把nn.sequential做了個gui,感覺沒啥意義

課程組和我們對自選題的理解不同

HansBug:我明白,不夠你們其實搞偏了一件事,既然我讓你們繼承,選擇現有題目,那就意味着我們知道其中深淺,同時也意味着本來你們就不太可能出乎我們意料
HansBug:而自選題,最怕的是一群人都來搞個大一學生那樣的圖書管理系統,那就真的...[衰]。所以自選題,必須會讓你們講出個所以然來
HansBug:
團隊軟件工程的總體目標:

  1. 研發出符合用戶需求的軟件說明:要通過實際的工作收集、推導、提煉需求,並在軟件發布后通過實際數據驗證需求的確被滿足了。需求來自於實際,而不是自己想象出來的“需求”或者人雲亦雲的需求(例如:圖書館管理系統)。
  2. 通過一定的軟件流程,在預計的時間內發布“足夠好”的軟件說明:這個軟件不是期末前兩天由兩三個同學熬通宵趕出來的急就章,而是經歷了一定的軟件流程,通過全體團隊成員的努力,在一個學期內逐步完成的。
  3. 並通過數據和其他方式展現所開發的軟件是可以維護和繼續發展的說明:例如,對用戶需求有詳細的分析,包括對將來這類軟件發展的趨勢的分析。主要功能都有設計文檔,源代碼完整,有修改記錄,並有最后版本。關鍵模塊有可以執行的單元測試、壓力測試腳本,等等。對於已知的bug和將來的工作都有詳細的記錄。

HansBug:軟工某種意義上和OO是一個類型的,思想和思維才是上品
WPB:這就是我們對軟件工程理解的偏差了,我們希望關注技術,你們希望關注產品
HansBug:大概清楚了。那今天的問題可以說是因那個通知而起?
WPB:1. 思維和產品點子很重要,時間不夠:2. 一開始我們不知道會有說傳承和定題要求會低
WPB:通知只能說是導火索,引爆情緒而已。時間不夠,大家好不容易趕完,然后來了一個有點厲聲質問怎么還沒盡善盡美的感覺
WPB:軟工,我只能表達下我們一小部分人(不大於5個)的想法,用一定的甚至較多的技術,去做一個經典的題目,加入一點點自己的私貨獲得點成就感
HansBug:誒,我大概清楚意思了,這波我們確實沒表達清楚,我還奇怪為啥這屆人都一個一個去自選題呢,以前自選的組並不多
HansBug:我當時其實,以為不少組早在醞釀大事情了,那會發問卷,你們幾乎都沒選題想法的時候,我挺意外的,自選本來就不是讓你們三天搞定一切的,而是對於早就想搞事情苦於沒機會的組(或者已經在搞事情且不想搞兩份的),一個不被栓死的機會
WPB:大家沒想到這點,你們也沒提前說;而且到頭來天降ddl,然后突然還來厲聲要求,就導火索了
HansBug:確實,我們的問題,一些准備做的並不全乎,而且新改革,很多事情也沒想到,發現不對勁了才能采取行動(比如群里補充一波,小心社區類項目,這樣的)

反饋說明課程組的部分失誤由同學們承擔后果,需要補正機制

WPB:所以,我認為的問題就是,課程組做的准備不夠充分,然后信息上也有誤差,不管怎么說,最終結果是學生實際工作量遠大於想象。但是最后,學生們只有承受這個結果,可能是缺乏一個補正的機制吧。
HansBug:雖然我也認為那位助教的話很不應該,不過也看得出來這陣子助教們其實肝也快炸了;我們也很想如果可以的話,延后一些,推遲一周,這樣一切都會自然非常多;不過這學期真的短,而且不方便把我們的課安排進考期,所以就很僵硬,只能硬上了
WPB:這就是一部分情緒的來源了,小白鼠實驗中出現了一些問題,下次的小白鼠里當然好好注意,而且這次小白鼠也需要一些治療一些補正啥的
HansBug:現在情況變成這樣,是該有個交代,而且也得有個實惠地交代
HansBug:以及我想問下,你們組這邊感覺整體是否還好?
WPB:

  1. 對課程安排,我會有懷疑。首先是這幾天,確實有很多問題,后續不敢確定是不是有,這種問題經常有影響,而且我們也沒怎么得到彌補。

  2. 我們有結對項目和個人作業。比起其他軟工班級少的不是一星半點,時間上本來就很緊,后續安排感覺會有問題。 然后對這個題,能做,但只限於能做,我也說過,這個題我們是排除法做出來的。畢竟必修課,肯定會做下去,但投入多少熱情,難

HansBug:
這么說吧,我個人理解是這樣的,結對不說了,都過去了,你們也都看到了。然后團隊部分,實際上個人理解,特別關鍵的部分就是這個選題 需求部分,這個部分搞出問題的話,一步錯步步錯,咱就算不題那些特別高大的命題,即便對於分數本身,一個歪了的選題也會必然有影響。我們這波本意還是“助”,幫大家指指問題,有的放矢。
然后后續部分,雖然不能說不重要,但是像現在這樣處於咽喉要道的情況會少得多甚至與沒有。后續的alpha beta階段,基本還是正常的節奏,只不過今年會有更多的互動,目的也是更多了解你們的日常工作情況,多一些指導,長遠來看都是為你們好(我知道很多人對這話ptsd,但是這就是掏心窩子話,我嘴笨也不知道換個什么詞更好聽)。

WPB:

  1. 對過去的問題沒有追責預防和補償機制,這就是我之前覺得的的一部分情緒的來源
  2. 重要的部分,然后只有三天,我們相信助教的目的是好的,但是實際結果是與時間大量的工作量和沒有的補正機制,最后我們就承受了這個影響

HansBug:你也提到了補正、補償的概念,關於這部分,有啥具體的意見沒
WPB:我不太確定,因為這個和你們課程組的安排非常相關,可能只有你們才能做出決定。但是我只能說確定應該要有這樣一個機制,並且讓大家看見
HansBug:恩,我明白你們的顧慮,我只是問下,如果可以的話,你們希望什么樣的補償機制
WPB:你看,這個還是得助教團隊內部去想,我之前這個補償機制什么的,目的是論證,不應當由學生承擔后果,或者代替課程組做課程組該做的,然后包括現在這個,也有點,怎么說,讓學生來做課程組要做的事的感覺了
HansBug:不,你理解錯了,我只是想了解你們的意思,你們的希望,我們是幫助學生的,總得了解學生吧?對不。不過如果確實不方便給也無妨,你說的也有道理,我明白
WPB:核心就是,不應當由學生承擔課程組這邊導致后果,具體是補償還是怎么做,這個我是沒有想法的
HansBug:好,懂了,理解萬歲
后續我們溝通了對本聊天記錄可否公開以及如何公開


事后進展

在談話進行完之后,課程組順利地組織了這次答辯,總體來看大家還算有所收獲。而在整理完對各組的問題、建議以及答辯紀要后,HansBug在學生群里進行了一段必要的回應,以下聊天記錄取自“2021軟件工程學生群”,日期為2021-4-15:

HansBug 11:34

各位同學,我們這邊對之前需求答辯、需求匯報博客下的討論以及課程組審閱時的問題和建議內容進行了一個整理,匯總成了一個文檔提供給大家:https://www.cnblogs.com/HansBug/p/14661665.html ,希望可以幫助到各位,大家在后續的部分中對所述問題進行一些必要的優化或回應。

首先,對於2021年4月13日晚上在群里的助教通知,我們表示歉意。近期由於本學期時間偏短,以及涉及到借教室、邀請企業工程師和大眾評審團等多方面原因,故時間安排較緊,助教和學生的壓力都很大,出現這樣的通知給同學們帶來了很不好的感受,此事因我們內部工作疏忽未充分考慮到學生情緒所致,實非課程組本意,我們再次表示深深的歉意,實在是很抱歉。我們課程組一直致力於幫助學生更好的學習敏捷軟件工程,助教們也將一個“助”字放在至關重要的位置上,我們會做深刻反思並引以為戒,始終做到不忘初心。

HansBug 11:35

此外,鑒於之前的情況,課程組感覺有些問題需要進行一些必要的解釋。在這學期的選題設計中分為繼承選題、推薦選題以及自選題三類,其中自選題我們的本意是希望已經有明確成熟點子的組(或者有已經在做的且希望在軟工課上繼續進行的項目的組)來進行選擇,以實現讓能力突出的組不必受限於繼承選題和推薦選題,並更好的完成這門課程團隊部分的實踐學習。為了確保自選題目的學習效果,以及后續環節中可能存在的潛在困境(例如較難推廣的產品、較難入手的技術棧等),以及自選題目本身的實際價值性,所以會在需求性和創新性等環節進行一定的審核。而對於繼承選題和推薦選題,由於是課程組所提供,所以很大程度上要有跡可循得多,故部分要求也相對沒有那么嚴苛。而且本次組織答辯,其首要目的是在於幫各組的項目進行一個初步的把關,而不是最終評審,邀請企業工程師和大眾評審團也是為了獲得更多視角下的不同意見,本意在於幫助各組,而這個階段實際上后續依然還有持續完善的時間。然而我們在發布選題以及后續與各組溝通的環節中,沒有較好的傳達上述考慮,以至於造成了較為嚴重的誤會,對於這件事情我們表示深刻檢討,並對同學們表示歉意,實在對不起。

HansBug 11:35

另外,之前跟部分同學進行了交流,發現可能部分同學對軟工課的教學目標存在一定的理解偏差。在此這邊引用一下《構建之法》中對團隊軟件工程的總體目標:

  1. 研發出符合用戶需求的軟件說明:要通過實際的工作收集、推導、提煉需求,並在軟件發布后通過實際數據驗證需求的確被滿足了。需求來自於實際,而不是自己想象出來的“需求”或者人雲亦雲的需求(例如:圖書館管理系統)。
  2. 通過一定的軟件流程,在預計的時間內發布“足夠好”的軟件說明:這個軟件不是期末前兩天由兩三個同學熬通宵趕出來的急就章,而是經歷了一定的軟件流程,通過全體團隊成員的努力,在一個學期內逐步完成的。
  3. 並通過數據和其他方式展現所開發的軟件是可以維護和繼續發展的說明:例如,對用戶需求有詳細的分析,包括對將來這類軟件發展的趨勢的分析。主要功能都有設計文檔,源代碼完整,有修改記錄,並有最后版本。關鍵模塊有可以執行的單元測試、壓力測試腳本,等等。對於已知的bug和將來的工作都有詳細的記錄。

其中包含了一個產品完整的流程,從需求分析和提取,到軟件技術設計,到代碼實現,再到測試部署,且需要對未來可能存在的迭代留出空間。實際上軟件工程課的教學目標並不只是去實現一個能run的工程代碼,而是去了解體驗一個完整的工作方法,並從中理解到更深層次的思想。換言之,軟件工程課並不是在學習一項類似程序語言那樣的具體技能,而是在學習一種思維,是一個悟道的過程,就像是OO課也並不是在學習Java一樣。關於這件事情希望大家可以理解,以及如果有疑問、困惑或者建議,可以直接在群里說或者私戳助教或老師們,我們會竭誠為大家服務。

HansBug 11:35

關於后續的需求分析部分,我們為大家提供了匯總文檔(地址:https://www.cnblogs.com/HansBug/p/14661665.html ),希望各位可以進一步優化需求分析等相關內容。此外,對於現有選題,我們還會保持一定的審核,這是出於教學效果的考慮還希望各位同學多多理解,因此為了接下來盡可能進展順利,故希望各組能多多與老師或助教進行相關溝通,並不斷優化以確保審核可以通過,我們會竭誠為大家服務。

最后,感謝大家的支持與理解,敬請期待接下來的部分。

助教L 11:45

未來幾周內課程將參考往年的計划推進,聽取去年同學們對團隊項目的建議后,今年我們會提供一個每日例會報告的標准模板,並將原先每日例會報告降低頻次為至少每兩日匯報一次。目前課程組的計划后續安排如下,同學們如果有疑問或者建議歡迎在群里或聯系任意助教指出,謝謝大家對課程的支持!

助教L 12:00

圖片


免責聲明!

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



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