當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]就在不久以前,我房地產(chǎn)界的好朋友Kirk閱讀了Tracy Kidder的《新機(jī)器的靈魂》。這本書(shū)講述了Data General公司的工程師們?nèi)绾卧趧?chuàng)紀(jì)錄的時(shí)間里生產(chǎn)出Eclipse計(jì)算機(jī)。Kirk認(rèn)為這是一本有趣的書(shū),寫(xiě)得很好;但是對(duì)其中高

就在不久以前,我房地產(chǎn)界的好朋友Kirk閱讀了Tracy Kidder的《新機(jī)器的靈魂》。這本書(shū)講述了Data General公司的工程師們?nèi)绾卧趧?chuàng)紀(jì)錄的時(shí)間里生產(chǎn)出Eclipse計(jì)算機(jī)。Kirk認(rèn)為這是一本有趣的書(shū),寫(xiě)得很好;但是對(duì)其中高壓力的生產(chǎn)計(jì)劃和精疲力竭的人們感到難過(guò)。他說(shuō)了一句讓我十分意外的話(huà):“我無(wú)法相信Kidder所描述的這種高強(qiáng)度的日程安排是真的,沒(méi)有人能長(zhǎng)久地像那樣工作。”

我該怎樣向一個(gè)與高科技領(lǐng)域沒(méi)有任何聯(lián)系的人解釋?zhuān)粘贪才乓恢倍际俏覀冏铑^痛的事;在我的以及幾乎所有我認(rèn)識(shí)的工程師的職業(yè)生涯中,我們做的每一個(gè)項(xiàng)目的最后期限都是反復(fù)無(wú)常并且不可能完成的?最近幾年,時(shí)間線(xiàn)收縮得更多,以今天的標(biāo)準(zhǔn)來(lái)看,Kidder的敘述甚至可以說(shuō)是過(guò)于溫和的。

我由此想到,不是身在技術(shù)行業(yè)的人對(duì)于我們?nèi)绾伪徊豢赡芡瓿傻淖詈笃谙薇频冒l(fā)瘋也許真的一無(wú)所知。我們的行業(yè)很獨(dú)特嗎?還有多少其他行業(yè)也有這樣長(zhǎng)期、無(wú)情的壓力以使事情做得更快?經(jīng)常性的、沒(méi)有報(bào)酬的加班是否也是其他經(jīng)濟(jì)部門(mén)的主題?

較完善的項(xiàng)目管理軟件于20世紀(jì)80年代出現(xiàn)。任何人都可以輸入復(fù)雜的PERT(計(jì)劃評(píng)審法)和甘特(Gantt)圖。誰(shuí)能成功地運(yùn)用這些?我見(jiàn)過(guò)無(wú)數(shù)的開(kāi)發(fā)人員試圖圍繞由市場(chǎng)設(shè)定的最后期限去建立時(shí)間表,他們希望這個(gè)時(shí)間安排具有可信度,但心里完全清楚是不可能的。我上中學(xué)的時(shí)候,耶穌會(huì)的教士們總在周五下午寄來(lái)成績(jī)單,我們會(huì)從郵箱抽出成績(jī)單,等到周一再重新塞回去,這樣周末就不會(huì)被毀掉。這只是個(gè)孩子氣的小花招,來(lái)推遲不可避免的事情;而這正是工程師們所做的。

項(xiàng)目進(jìn)度規(guī)劃軟件被宣傳為原始手工工具的進(jìn)步?,F(xiàn)在,我們能更快速地制造錯(cuò)誤數(shù)據(jù)。這就是計(jì)算機(jī)的美妙之處:以前需要幾秒鐘,甚至幾分鐘去犯一個(gè)錯(cuò)誤,現(xiàn)在一秒鐘內(nèi)就可以產(chǎn)生幾千個(gè)錯(cuò)誤。

人們寫(xiě)軟件已超過(guò)50年之久,開(kāi)發(fā)嵌入式系統(tǒng)也有30年了。這段時(shí)間里不變的是:日程計(jì)劃緊縮下的性能提升。

我們嘗試處理3件相互沖突的事:不可能完成的日程、過(guò)多的預(yù)期功能、質(zhì)量。如果去掉3條腿中的1條,這個(gè)項(xiàng)目就會(huì)失去價(jià)值。我們能夠在出貨時(shí)還存留很多bug嗎?如果答案是“是”,那么按時(shí)交付將會(huì)非常容易。我們能忽視出貨時(shí)間嗎?如果擁有無(wú)限的時(shí)間,我們就能完善每項(xiàng)功能。

這糾結(jié)的3者從一開(kāi)始就成為隱患,而開(kāi)發(fā)人員和管理人員卻無(wú)法認(rèn)識(shí)到矛盾所掩蓋的事實(shí)。老板無(wú)一例外地想要所有的3條腿:按時(shí)交付、完美的質(zhì)量、無(wú)窮的功能。但他不可能得到所有。

合乎邏輯的想法是,我們必須強(qiáng)調(diào)功能,因?yàn)槿粘逃?jì)劃和質(zhì)量問(wèn)題總是沒(méi)有商量余地的。利用需求淘汰法來(lái)識(shí)別并去除那些實(shí)際上并不需要的功能。用條理化的方式建立系統(tǒng),這樣即使落后于計(jì)劃,仍然可以拿出能良好完成大多數(shù)重要功能的產(chǎn)品。

當(dāng)然,還有其他因素影響開(kāi)發(fā)環(huán)境:資源。合用的工具、足夠多的優(yōu)秀開(kāi)發(fā)人員、開(kāi)明的管理團(tuán)隊(duì),這些構(gòu)成了我們要完成項(xiàng)目所需的基礎(chǔ)架構(gòu)。

20世紀(jì)里我們學(xué)習(xí)如何建立嵌入式系統(tǒng),但管理上卻一直沒(méi)有搞清楚資源在所開(kāi)發(fā)項(xiàng)目中的恰當(dāng)位置。工程項(xiàng)目通常被看作如同是在生產(chǎn)線(xiàn)上制造小玩意。需要更多產(chǎn)品嗎?那就加入更多的人和更多的機(jī)器。但是這在軟件工程領(lǐng)域根本行不通。

Fred Books在他的《人月神化》(注:“人月”指一月人工)一書(shū)中展示了一個(gè)現(xiàn)象:給一個(gè)已經(jīng)滯后的軟件項(xiàng)目增加人員,這總會(huì)致使其更加滯后。兩個(gè)開(kāi)發(fā)人員之間只有單一的通信渠道,但當(dāng)增加工程師時(shí),備忘/會(huì)議/電子郵件的鏈接數(shù)量將隨人數(shù)的平方增長(zhǎng)。

IBM發(fā)現(xiàn),當(dāng)項(xiàng)目的規(guī)模擴(kuò)大,軟件生產(chǎn)率由于同樣的原因會(huì)明顯下降。他們的調(diào)查顯示代碼產(chǎn)量(行/天)隨著項(xiàng)目的擴(kuò)大以數(shù)量級(jí)降低。

Barry Boehm的建設(shè)性成本模型是最著名的軟件規(guī)劃預(yù)測(cè)模型,它也顯示時(shí)間線(xiàn)比固件大小增長(zhǎng)得快得多。將代碼行數(shù)乘以2,則交付時(shí)間的增加將遠(yuǎn)遠(yuǎn)超過(guò)一倍。有時(shí)會(huì)更多。

然而,當(dāng)一個(gè)項(xiàng)目出現(xiàn)麻煩時(shí),“再雇些人回來(lái)”似乎是普遍應(yīng)用的管理格言。但就是不起作用。

難道沒(méi)有希望了么?我們的項(xiàng)目注定要失???這種在《新機(jī)器的靈魂》中貼切描述的壓力是否就是我們的命運(yùn)?

隨著項(xiàng)目復(fù)雜度迅速增長(zhǎng),很明顯,除非我們投身一種全新的開(kāi)發(fā)模式,否則在過(guò)去的半個(gè)世紀(jì)里學(xué)到的關(guān)于軟件工程的一切會(huì)讓我們停滯不前、退化并最終失敗。接受新思維模式(以及已被驗(yàn)證的舊模式)的那些公司將會(huì)獲得成功。特別有兩方面對(duì)新的理解十分關(guān)鍵,就是本文將要談到的重用和工具。

工具

20世紀(jì)40年代,所有的軟件用機(jī)器碼寫(xiě)成。50年代見(jiàn)證了首個(gè)編譯語(yǔ)言:Fortran,幾乎是在一夜之間提高了編程效率。使用Fortran的代價(jià)是更大、更慢的代碼,這在當(dāng)時(shí)被過(guò)多的工程師認(rèn)為是不可接受的。但是那些接受了Fortran的人則證明是未來(lái)的先驅(qū)。

今天,關(guān)于建模、C++和Java,我們聽(tīng)到了類(lèi)似的爭(zhēng)論。太慢、太大。但很明顯,繼續(xù)制造出幾百萬(wàn)行的C程序不能解決任何問(wèn)題;要趕上日益增長(zhǎng)的產(chǎn)品需求必須提高生產(chǎn)率,而手工編寫(xiě)代碼不再提供這樣的提升。

高級(jí)語(yǔ)言給予我們抽象以及在更高層次做項(xiàng)目的能力。抽象是未來(lái)的基礎(chǔ)。我們?cè)僖膊荒苋楸忍睾妥止?jié)煩惱,因?yàn)檫@樣的代價(jià)太高。不管你喜歡與否,Windows API的確給臺(tái)式機(jī)開(kāi)發(fā)者提供了大量豐富的資源。

各種風(fēng)格的工具能夠使我們從較底層的細(xì)節(jié)抽象出來(lái)。第一個(gè)Fortran編譯器,按今天的標(biāo)準(zhǔn)來(lái)看簡(jiǎn)單得可笑,給予了50年代的工程師們強(qiáng)大的武器?,F(xiàn)在我們有了更多的選擇。

我們基本上接受編譯器帶來(lái)的額外開(kāi)銷(xiāo)。其他抽象能力更強(qiáng)的工具會(huì)帶來(lái)更大的開(kāi)銷(xiāo),但也帶來(lái)了更快、更好的交付能力。建模工具,如UML,在一些領(lǐng)域以獲得成功。太少的開(kāi)發(fā)人員充分了解LabView和MATLAB,而它們是嵌入式領(lǐng)域很重要的角色。

能夠自動(dòng)搜尋bug的工具將會(huì)進(jìn)一步提高程序員的生產(chǎn)率。Coverity、Klocwork、Polyspace、Green Hills以及GrammaTech公司都在推動(dòng)其尋找運(yùn)行時(shí)問(wèn)題的靜態(tài)分析器。這些工具當(dāng)然無(wú)法找到所有的bug,但它們提供了一項(xiàng)對(duì)付日程計(jì)劃的武器,雖然到目前為止的市場(chǎng)滲透率還很低。

重用

能讓我們更快地寫(xiě)出更多代碼的工具只是解決方法的一部分。顯然,迫切需要一種新的重用模型。由百萬(wàn)行代碼構(gòu)成的產(chǎn)品,如果一行一行編譯鏈接的話(huà),那就太慢了。

把軟件工程中某些出色的新發(fā)展擋在門(mén)外,那么未來(lái)肯定只能屬于重用。除非我們能討來(lái)、借來(lái)、偷來(lái)或者買(mǎi)來(lái)大量的代碼庫(kù),否則永遠(yuǎn)都得靠自己去寫(xiě)每一行。這是難以忍受的。

重用不僅僅是把以前項(xiàng)目中的一些代碼保存起來(lái),而是要回收利用超過(guò)20%的固件。百萬(wàn)行以上規(guī)模的系統(tǒng)需要最大限度的重用。

讓我們定義幾個(gè)專(zhuān)門(mén)用語(yǔ)來(lái)說(shuō)明什么是重用,什么不是。軟件回收是指利用并非為重用而設(shè)計(jì)的代碼。即在舊資源中取出一部分并放入新的應(yīng)用中。

代碼沿用是將固件從以前的項(xiàng)目移植到新項(xiàng)目中。和回收利用一樣,這通常是一種有些魯莽的源碼使用。

真正的重用是在建造系統(tǒng)的時(shí)候,一次建立一個(gè)組件,而不只是一行。這些塊已明確定義,這樣就不需要深入到內(nèi)部來(lái)進(jìn)行調(diào)整、調(diào)試或優(yōu)化。Richard Selby發(fā)現(xiàn),當(dāng)移植舊代碼到新項(xiàng)目時(shí),如果超過(guò)25%被修改,就不能有效縮短項(xiàng)目時(shí)間。重用只有在大塊作用時(shí)才最有效。

一個(gè)程序包必須至少重用3次,才可看作是真正可重用。換句話(huà)說(shuō),域分析會(huì)比較難。我們還沒(méi)有聰明到能真正理解應(yīng)用程序的范疇。每個(gè)域要有自己獨(dú)特的功能和特點(diǎn);當(dāng)我們?cè)趯?shí)際中,將代碼在足夠廣范圍的應(yīng)用上使用過(guò)多次以后,才能將其通用化到真正可重用的程度。

從這可以看出,重用是很昂貴的。我們花費(fèi)了大量金錢(qián)來(lái)生產(chǎn)非常好的代碼,但只有重用3次時(shí)才有所回報(bào)。我們中有多少人有足夠的耐心和紀(jì)律性——以及時(shí)間——去寫(xiě)為了以后使用的代碼?重用就像存折,如果你不向賬戶(hù)里存入足夠多的錢(qián),它就沒(méi)有價(jià)值。你投資得越多,回報(bào)增長(zhǎng)得越多。

何時(shí)我們能夠用購(gòu)買(mǎi)的方式得到應(yīng)用程序的大部分,而不是從零開(kāi)始去寫(xiě)?軟件IC是否真的可能?

未來(lái)屬于那些足夠勇敢和聰明的人們,他們丟棄舊的思維模式,創(chuàng)造新的想法。我們將會(huì)找到利用以前寫(xiě)就的代碼來(lái)設(shè)計(jì)產(chǎn)品的方法。這樣做的好處顯而易見(jiàn),一行一行搭建系統(tǒng)的做法應(yīng)該停止了。這也許意味著在低端應(yīng)用中增加資源、存儲(chǔ)和高端CPU;也許意味著新的工具。我們當(dāng)然會(huì)用不同的方式設(shè)計(jì)系統(tǒng)。雖然一些實(shí)施細(xì)節(jié)目前還不明朗,但結(jié)果是非常清楚的。

最大的改變將是我們的態(tài)度,以及我們開(kāi)發(fā)產(chǎn)品的方式??傆幸惶?,在管理部門(mén)的支持下,我們都會(huì)認(rèn)識(shí)到2件重要的事:固件是最昂貴的東西、傻瓜都可以寫(xiě)代碼。未來(lái)屬于那些尋找產(chǎn)品開(kāi)發(fā)更好方式的開(kāi)發(fā)者,而不是編程高手。

因此,我要對(duì)我的朋友Kirk和所有不是工程師的人說(shuō),我們的確在巨大的日程計(jì)劃壓力下工作。是你們的需求所致。你擁有的數(shù)字防抖雙目望遠(yuǎn)鏡、價(jià)值100美元的GPS、數(shù)字照相機(jī),以及構(gòu)成你的世界的所有其他電子產(chǎn)品,都來(lái)自這些在最后期限面前掙扎并開(kāi)發(fā)出驚人廉價(jià)、可靠系統(tǒng)的工程師們。

當(dāng)你使用這些系統(tǒng)之一的時(shí)候,偶爾也想想我們吧!我們正坐在實(shí)驗(yàn)室里,在為下一個(gè)版本而工作。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉