個人作業:閱讀和提問
作業要求
| 項目 | 內容 |
|---|---|
| 這個作業屬于哪個課程 | 北京航空航天大學2025年春季軟件工程 |
| 這個作業的要求在哪里 | 個人作業:閱讀和提問 |
| 我在這個課程的目標是 | 掌握軟件工程的基本技能,學習大型項目的開發流程和技巧 |
| 這個作業在哪個具體方面幫助我實現目標 | 通過閱讀書籍,思考軟件工程的基本流程和注意事項 |
閱讀提問
- 誠然,由程序的作者來編寫單元測試是非常有必要的,但為什么不能由其它人員也負責編寫一定數量的單元測試?
教材P25:單元測試必須由最熟悉代碼的人(程序的作者來寫)
代碼的作者最了解代碼的目的、特點和實現的局限性。所以,寫單元測試沒有比作者更適合的人選了。
我認為作者的這個觀點有點過于絕對了。誠然如書中所言,程序的作者對程序的了解最深,可以依據程序的特點針對性地編寫單元測試。但正如古話所言:“當局者迷,旁觀者清”。程序的作者常常會因為對程序的目的、功能與實現過于了解,從而對程序形成了思維定勢,反而很容易忽視一些對其他人而言比較顯而易見的bug。正如下圖那個經典的程序員笑話

最后顧客問廁所在哪,酒吧炸了。
這就是很顯然的測試人員對酒吧功能形成了思維定勢,從而忽視了另外的顯而易見的bug
我在自己的學習過程中也經常出現這個問題:自己幸幸苦苦de一個下午bug無功而返,最后請教室友。室友卻能在十分鐘內迅速破案。我在學習過程中也經常和同學交換著互相debug,并且取得了非常好的效果。因此我認為,盡管可能造成單元測試的冗余,但出于程序的健壯性考慮,讓一些只對程序功能有基本了解的人員參與編寫單元測試是非常有必要的。
- 在軟件工程的實戰中,如何把握與團隊與顧客交流的程度?或者說,是否在某些條件下(比如商業利潤過于龐大的情況下),可以拒絕與用戶合作?
教材P145:MSF強調產品團隊與顧客的交流與合作,并不是產品團隊拿到合同后,舊閉門造車,直到產品完成才告訴用戶,給他們一個驚喜。
讀了書上這句話,我產生了一些思考。事實上,很多產品團隊推出的產品功能,在很多情況下與用戶的需求是相抵觸的。比如近幾年來瘋狂寄生到各類手機APP中的“開屏搖一搖廣告”,應該不會有用戶覺得“這個搖一搖廣告好啊,完美符合我對這個APP的需求“。
但結果就是,開屏搖一搖廣告從最開始的少數流氓軟件的專利,逐漸蔓延到了幾乎所有主流手機APP,讓不少用戶叫苦不送。但不可否認的是,”搖一搖廣告“獲得了巨大的商業成功,其創始人更是通過”搖一搖廣告“專利獲利百萬以上。
依據”搖一搖廣告“商業上的成功,我們是否可以認為,在有些時候,拒絕與用戶的合作,與用戶的期望背道而馳,也不失為一個正確的商業選擇?
- 我認為,對產品的全部投資集中在”最基本功能“也是一個可行的道路,也有可能帶來成功。
教材P176:一個極端的例子是,如果你對產品的全部投資都集中在”最基本功能“,那么產品的平均分不會超過3分。
教材在此處寫這句話,意圖凸顯產品“驚喜功能”的重要性。但我的觀點與作者有所不同。
當代國產主流軟件一個被詬病的點就是過于臃腫:不管是什么軟件,都要加網購功能,加短視頻功能,加理財借貸功能,加裝扮功能……這些所謂”附加功能”反而給用戶帶來了許多負反饋,比如資源占用高,軟件流暢度降低,界面繁亂等。
而這些軟件對應的“極速版”“精簡版”“國際版”,只保留了“最基本功能”,卻往往能得到用戶更高的評分。
市面上也有許多軟件,僅僅是把基本功能做到極致,便收獲了用戶的一眾好評,比如IDM下載器、WinRAR解壓器等。
因此我認為,對產品的全部投資集中在”最基本功能“也是一個可行的道路,也有可能帶來成功。
- 作為一名PM(Program Manager),卻不具備使開發人員按照規格說明書(spec)進行開發的強制力,這是否會造成效率低下?
教材P194:首先,我們認為好的產品設計是在平等討論的基礎上產生和完善的,如果討論的一方同時又是另一方的老板,則無法進行平等和無拘束的討論。
教材作者認為,PM與開發人員是平等的。但在這種情況下,最終決策權又交給誰呢,誰要為討論的結果負責呢?這樣的安排,是否與教材前文提到的團隊開發中“各個團隊成員對自己部分負責”的原則相沖突?
我認為,在缺少具體負責人員,決策人員的情況下,進行討論是相當低效的。盡管“平等和無拘束的討論”聽起來很美好,但最終卻容易造成效率低下的問題。
我想知道,這種問題在實際團隊開發過程中是否會出現?如果會,我們應該如何避免這種問題的產生?
- 教材第十五章“軟件測試”描述了許多Bug以及其可能的修復優先級低的問題,但我在實際軟件使用過程中仍然有一些bug體驗顯然不屬于教材描述的范圍內,我想知道這些bug直到現在仍然不修復的原因。
我在使用微信的過程中,常常會想使用“語音通話”功能,但最后卻找不到這個功能在哪里。上網查百度才知道,“語言通話”在“視頻通話”選項的二級菜單中。


“語音通話”功能居然在“視頻通話”的二級菜單中,這簡直離譜。而且用戶也不大可能會為了進行“語音通話”,去點那個“視頻通話”按鈕——萬一沒有跳出確認界面,直接進行通話了怎么辦。
之后我與同學交流,在網上查詢相關資料,發現微信用戶對這種設計抱怨已久。微信開發團隊不可能沒注意到這個嚴重影響用戶體驗的bug。
但是事實就是,這個Bug直到今天也沒有修復。在我看來,就無非就是將"語音通話"按鈕從“視頻通話”中獨立出去,或者改“視頻通話”菜單為“音視頻通話”不是更合理嗎?
諸如此類還有微信的發朋友圈圖標居然是個相機,發文字朋友圈居然需要先選張圖片再把圖片刪掉等匪夷所思的設計。
這些bug顯然不屬于書中提到的可能的"知錯不改"的原因,我想知道Bug其它可能的成因。
浙公網安備 33010602011771號