本月3日,微軟突然推送了Windows 10更新十月版(1809)的正式版??v觀Windows 10自2015年正式發(fā)布以來的所有正式版更新,跳過發(fā)布預(yù)覽通道直接RTM的版本,在1809之前,還真的找不到先例。
推送快,是Windows 10 1809的特點之一,除此之外,它還有另外一個特點,就是問題多。
Windows 10 1809都有哪些問題,我們不妨來回顧一下:
英特爾驅(qū)動與Windows 10 1809不兼容,導(dǎo)致部分用戶無法更新;
新版系統(tǒng)安裝緩慢;
從Microsoft Store獲取的應(yīng)用程序無法聯(lián)網(wǎng);
Edge瀏覽器收藏夾中的內(nèi)容丟失;
藍牙連接間歇性中斷;
文件資源管理器的黑暗模式黑暗不完全;
通知可能會無法在操作中心顯示;
開始菜單中的搜索功能無法按預(yù)期工作;
開始菜單中的磁貼可能會意外重疊;
升級到1809后用戶的部分設(shè)置被重置;
升級到1809后部分用戶無法登錄系統(tǒng);
任務(wù)管理器UI元素閃爍;
任務(wù)管理器CPU占用率顯示不準確;
部分用戶的個人文件在升級到Windows 10 1809之后丟失。
不過上面的這些問題并不是我們這篇文章要討論的內(nèi)容。今天我們要討論什么呢?是發(fā)生這些問題的原因。
硬件廠商的問題?
按道理來講,從來只有驅(qū)動適配系統(tǒng)的說法,而沒有系統(tǒng)適配驅(qū)動的說法,所以Windows 10上的一些和硬件廠商的驅(qū)動有關(guān)的問題就一定要廠商來背鍋,是嗎?
不一定。
我們不妨拿這次英特爾的驅(qū)動與Windows 10 1809不兼容,導(dǎo)致部分用戶無法升級的問題舉例。
據(jù)IT之家了解,按照正常的流程,一個Windows 10的大版本更新在正式推送給用戶之前,微軟需要把RTM之前的候選版本提供給硬件廠商,以便他們及時跟進驅(qū)動的適配,這些硬件廠商中肯定會有英特爾。
為了防止驅(qū)動出現(xiàn)問題以及防范惡意軟件,在硬件廠商編寫好驅(qū)動之后,微軟的Windows硬件設(shè)備質(zhì)量實驗室(WHQL,Windows Hardware Quality Lab)會對這些驅(qū)動進行一個認證。
如果認證通過,微軟就會給這些廠商的驅(qū)動簽名,只有這些簽過名的驅(qū)動,最終才被允許安裝在用戶的電腦上。通常來講,微軟會通過Windows Update把來自廠商的新版驅(qū)動靜默推送到用戶的電腦上,用戶無需自己動手。
這次部分用戶因新版驅(qū)動未安裝而無法升級到Windows 10 1809,其背后的事實究竟是怎樣的呢?其實,在Windows 10 1809 RTM之前,適配于新系統(tǒng)的英特爾驅(qū)動就已經(jīng)編寫完成、并通過WHQL的認證了。至于這個本可以避免的問題最終因何暴露,解釋起來卻讓人哭笑不得:英特爾確實提交了新版驅(qū)動,可微軟在Windows Update里推送它的時候,竟把它當成了一個可選更新。
硬件廠商再配合,也怕微軟搭錯筋啊。
微軟砍掉了測試團隊?
微軟內(nèi)部有三大核心技術(shù)工種,分別是軟件開發(fā)工程師(SDE)、軟件測試工程師(SDET)和項目經(jīng)理(PM)。2014年,有傳言稱微軟裁撤了軟件測試部門,轉(zhuǎn)而將Windows 10的測試任務(wù)交給自動化測試和用戶測試,這種說法其實是不準確的。SDET崗位并非被裁撤,而是與SDE進行了合并。SDET的職責也并未消失,只是被重新分配了而已。也就是說,過去,軟件測試這個工作是由SDET來專職負責的,而SDET與SDE合并之后,軟件開發(fā)工程師同時肩負了軟件測試的職責(組合工程),微軟內(nèi)部的QA類型測試依然存在,這樣算起來,Windows 10系統(tǒng)的質(zhì)量控制就是由自動化測試、SDE的內(nèi)部把關(guān)、Windows Insider的外部把關(guān)以及OEM測試所共同完成的。
把SDET與SDE進行合并,這種操作真的沒問題么?
當然沒問題,不過有一點我們需要考慮,那就是SDE的思維方式與SDET的思維方式之間的差異性。對于一個開發(fā)人員來講,在測試軟件的過程中,他們所做的前提假設(shè),是他們面前的這段代碼可以正常運行,而軟件的測試人員則不然,他們所做的前提假設(shè),是他們面前的這段代碼充滿bug,其目標,則是發(fā)現(xiàn)問題、復(fù)現(xiàn)問題、提交問題并解決問題。SDE與SDET思維方式間的差異給最終的測試結(jié)果所帶來的潛在影響,是絕對不可以被忽視的。
所以Windows 10質(zhì)量控制水平下降這個問題,最終要讓SDET與SDE的合并來背鍋?
不盡然。還有其他原因,我們接著看。
Windows 10底層改動太多?
操作系統(tǒng)的開發(fā)是一項超級大的工程。正如我們所知道的,一項工程越復(fù)雜,那它出錯的可能性就越大,而某個錯誤所處于的層級越淺,那修復(fù)它的代價就越小。
這里我們假設(shè)一個最簡單的軟件結(jié)構(gòu)模型,其層級我們以底層、中間層和表層代指。底層(Unit層)相當于蓋房子時所用的磚塊。通常來講,這個層級的測試(單元測試),其需要測試項目最多,可能存在的bug的數(shù)量也最多,但如果問題在這一層級被發(fā)現(xiàn),那解決問題的代價是最小的。
中間層(Service層)相當一棟房子中由磚塊組成的墻體。若底層的各個單元都能正常工作,那將它們結(jié)合到一起之后,其組合體能否依然正常工作,這就是中間層級的測試所需要驗證的事情。通常來講,這個層級的測試,其需要測試的項目的數(shù)量要少于單元測試,而如果有問題在這個層級被發(fā)現(xiàn),那解決問題的代價是相對較小的。
表層(UI層)相當于由墻體、天花板等組成的一棟完整的房子。如果一個由各個單元和模塊所拼合成的最終產(chǎn)品可以按設(shè)計預(yù)期工作,那就萬事大吉,非常好,但如果這一層級當中真的被測出了問題,那就比較麻煩了。因為導(dǎo)致這個問題的原因還無法定位。如果問題出在表層和中間層,那問題解決起來相對還算容易,但如果問題出在底層,那問題不僅定位起來相當麻煩,解決起來的代價也非常高,因為用了有問題的Unit的Service都會受到影響。
作為一個操作系統(tǒng)來講,Windows 10的結(jié)構(gòu)遠比我們上面提出的這個軟件結(jié)構(gòu)模型要復(fù)雜得多,它是由HAL、Devices Drivers、Kernel、Windows and Graphics、NTDLL.DLL、Subsystem DLLs、Service Processes、User Process、Environment Subsystems和System Process等多個層級所組成的,每個層級和每個模塊之間都環(huán)環(huán)相扣,并有可能互相影響。
有件技術(shù)上的事情可以確定的是,據(jù)《Windows Internals》這本書的介紹,Windows 10所加入的新技術(shù)對底層的改動比Windows 7、Windows 8和Windows 8.1還要多,比如新的Secure System進程、Exploit Guard、WSL以及新的驅(qū)動模型。
底層改動所導(dǎo)致的問題很有可能牽一發(fā)而動全身,Windows 10的質(zhì)量難以控制,相信和它的底層改動肯定是分不開的。
Windows Insider項目背鍋?
Windows Insider項目是微軟于2014年推出的面向用戶的Windows 10預(yù)覽體驗計劃,此前有傳言稱,微軟“砍掉測試團隊”之后,Windows 10的質(zhì)量控制將全部依賴于自動化測試和Windows Insider,而因為Windows Insider成員很難像專業(yè)的軟件測試工程師那樣準確和專業(yè)地反饋問題,所以Windows 10的質(zhì)量控制水平出現(xiàn)了下滑。
關(guān)于“微軟砍掉測試團隊”這個傳言,我們上面已經(jīng)進行過一個澄清,將Windows 10質(zhì)量水平下滑的原因歸結(jié)于“微軟砍掉了測試團隊”,這肯定是不準確的。
至于Windows Insider要為此背鍋這個觀點,雖然目前還沒有證據(jù)表明Windows 10的測試在某些程度上依賴于Windows Insider項目與其質(zhì)量控制水平的下滑有直接的關(guān)系,不過有一點是幾乎確定的,那就是沒有接受過專業(yè)培訓的Windows Insider很可能難以足夠高效地發(fā)現(xiàn)和反饋問題。
專業(yè)的軟件測試工程師在進行軟件測試時通常會結(jié)合測試用例系統(tǒng)和全面地排查問題,而沒有經(jīng)過專業(yè)培訓的Windows Insider雖然可以為Windows 10提供數(shù)量相當可觀的反饋,但這些反饋面臨很大的重復(fù)提報風險、漏報風險以及誤報風險,另外,數(shù)量龐大的反饋會讓微軟為之付出相當大的篩選成本。
所以Windows 10質(zhì)量控制出現(xiàn)問題要Windows Insider來背鍋?
這個鍋Windows Insider們當然不能背。
因為在把系統(tǒng)交給Windows Insider測試之前,微軟需要對候選的版本進行單元測試和冒煙測試,也就是說,最終提交給用戶的版本,肯定是一個基本上沒有毀滅性bug的版本,況且用戶提交的問題被解決后,微軟還要以采取回歸測試的形式來進行驗收。由此可見,Windows 10的質(zhì)量控制做得合格與否,很大程度上是取決于微軟,而非Windows Insider。
Windows已經(jīng)不重要了?
今年3月29日,據(jù)IT之家報道,微軟對公司的組織結(jié)構(gòu)進行了新一輪的變革,Windows和設(shè)備部門被拆分,當時的Windows和設(shè)備部門主管Terry Myerson離職,Windows Insider項目唐娜姐被分配到Azure部門。
獨立的Windows部門“沒了”。
近些年,微軟一直在進行業(yè)務(wù)方向上的變革,正如我們所經(jīng)歷的那樣,微軟砍掉了Windows RT,放棄了Lumia設(shè)備的研發(fā)和生產(chǎn),砍掉了微軟手環(huán)的產(chǎn)品線,宣布Windows 10 Mobile進入維護期,種種跡象表明,微軟正在縮減其To C的業(yè)務(wù),而大力發(fā)展量子計算、云計算和人工智能則表明微軟的業(yè)務(wù)中心越來越向To B傾斜。
為什么微軟要做出這樣的傾斜呢?首先,微軟的To C業(yè)務(wù)已經(jīng)遇到瓶頸,隨著亞馬遜、谷歌等科技巨頭在云計算領(lǐng)域紛紛發(fā)力,微軟若不及時改變,等這一領(lǐng)域形成準入壁壘,微軟再入場就為時已晚。另外,To B業(yè)務(wù)會為微軟帶來非常積極的營收,這對微軟的股東以及微軟公司本身都是一大利好。
那Windows呢?Windows就不重要了嗎?
當然重要。
隨著微軟轉(zhuǎn)型的推進,Windows 10早已不是一個簡單的產(chǎn)品——而是基礎(chǔ)設(shè)施。Windows 10已經(jīng)融入到用戶生活和工作的方方面面,就像我們每天呼吸的空氣一樣——它看似透明,卻不可或缺。微軟的服務(wù),不管是To B還是To C,很大程度上都要依托于Windows 10。
既然Windows 10對微軟依然重要,那為什么微軟要分拆Windows和設(shè)備部門呢?
微軟的轉(zhuǎn)型固然是原因之一,不過還有一個故事,大家盡管當成街談巷議來聽,千萬不要認真。
不知大家有沒有過這樣的好奇,納德拉上臺以來,為什么Windows好像越來越不受待見了呢?
微軟Windows事業(yè)部曾經(jīng)有個名叫“Steven Sinofsky”的主管,當年微軟在選下一任CEO的時候,它是薩提亞·納德拉強有力的競爭者,在和納德拉的競爭中失利之后,Steven Sinofsky與微軟“和平分手”。
Steven Sinofsky離職之后,媒體嘗試與微軟的聯(lián)系人取得聯(lián)系,但由于這個話題比較敏感,該聯(lián)系人不愿意透露身份。
聯(lián)系人聲稱:“你想必聽說了Steven Sinofsky是因為得罪了人才離開的,Sinofsky的政治手法一面是鐵腕政策,對他一定要服從,一面是同時在暗地里搞一些政治斗爭……”
薩提亞·納德拉上臺以后微軟為什么總是拿Windows部門開刀,又是砍掉Windows RT、又是放棄Windows 10 Mobile、又是對Windows 10 IoT愛搭不理,如果從“否定競爭對手(即使是曾經(jīng)的)的一切,就是肯定自己的一切”的角度來理解,那上面的這些事情為何發(fā)生,或許也就有個非官方的解釋了。
根本原因
在上文中,討論了可能導(dǎo)致Windows 10質(zhì)量失控的種種原因,但這些原因只是表面原因,它們都不是根本上的原因。
歸根結(jié)底,Windows 10質(zhì)量失控的罪魁禍首,其實就是迭代太快。
Windows 10的開發(fā)和敏捷開發(fā)是同樣的模式,敏捷開發(fā)是一種以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)的模式。
操作系統(tǒng)這種東西,實際上是不能敏捷開發(fā)的。微軟的Windows 10的質(zhì)量之所以有失控風險,就是因為他們更新迭代產(chǎn)品的方式變了。
對于Windows 10這樣的超級工程來講,半年更新一次的頻率對微軟來說太快了,就目前來看,短時間之內(nèi),微軟還很難保證這樣的迭代和交付周期。
除非微軟能夠想出一個能夠讓新系統(tǒng)既能及時交付又能有效控制質(zhì)量的兩全的辦法,否則,IT之家認為,把Windows 10的迭代周期由半年一個大版本改成一年一個大版本可能是個更好的主意。
寫到這里,突然想起8848鈦金手機的一句廣告詞。在文章的最后,我們不妨把這句話送給微軟的Windows 10。
“記住,跑得快不一定贏,不跌跟頭,才是成功?!?/p>