隨筆-200  評論-148  文章-15  trackbacks-0
          這篇文章的來源我已經記不清楚了,請作者諒解,版權歸作者。 軟件開發工藝的改進是軟件業的突破 19世紀發生在制造業的各國的工業革命,通過標準化的生產形成社會化的分工,促使制造業從手工作坊走向了社會化大生產的時代;社會化大生產極大的豐富了商品的供應,降低了成本,由此帶來了人類文明的一次大飛躍! 近年來,在網絡經濟泡沫破滅之后,業界人士一直期盼著下一輪軟件革新。在分析下一輪軟件革新是什么之前,讓我們回顧一下傳統產業的發展規律和軟件產業的現狀。 產業階段性分析 一個產業,一般可以分為四個時期。每一時期都有其不同的特點與主要矛盾,誰有了解決主要矛盾的方法和產品,誰就掌握了本產業在這一階段發展的金鑰匙。 第一個產業階段為嬰兒期。在這個階段,事實上整個產業還沒有真正的形成,而僅是以某一形式與其母產業結合在一起,并且慢慢從母產業中分離出來。在這個階段的主要矛盾是“新概念”的有與無。一個企業如果有一個符合未來產業發展遠景的新概念,必定在媒體的炒作下而聞名。 第二個時期為青少年期。在這個階段,產業開始形成規模,技術日新月異,公司如雨后春筍般出現,產業經營處于“暴利”階段。這個產業階段的主要矛盾是有沒有“新技術”,誰掌握了新技術,誰就是“武林盟主”。 第 三個階段為壯年期。產業所需技術已基本成熟,分工越來越細,產業進入穩定持續發展期。產業鏈已經形成,公司經互相兼并,在產業鏈中都已找到自己的位置。因 為技術不再是某幾個公司的專利,在大家大打“價格戰”之后,也已無“暴利”可言;所以這個階段的主要矛盾是“新工藝”——只有工藝的不斷創新,降低成本, 提高質量,才能在“價格戰”中取勝,獲得長期穩定的發展。 第 四個產業階段是老年期,俗稱“夕陽工業”,就像某些制造業。在這個階段,技術已經非常成熟,工藝也已無太大的改進空間,于是“勞動力成本”上升成為主要矛 盾。“夕陽產業”總是向勞動力成本低的地區漂移。如今,我國已成了“世界制造中心”,就是因為我國的物美價廉的勞動力優勢。外包、代工是這個階段產業的典 型特征。當然了,新的更替產業在這個階段的后期已經開始慢慢的萌芽。 軟件產業所處階段 那軟件產業現在處于哪一階段呢?在北美,軟件作為產業出現于70年代末,80年代初(之前還不能叫產業),80年代末至今是新概念、新技術的爆發期,多種技術思想“各領風騷三五年”,逐漸形成了.Net和J2EE兩 大陣營,軟件技術已經越來越成熟,分工越來越細。而從外包的風行也可以看出軟件技術走向成熟。從商業角度來看,企業軟件的高價位上的“假性飽和”也是產業 走向成熟的標志。所以,從全球角度來看,現在的軟件產業處于青少年期轉入壯年期之間,但現在的軟件開發工藝還是“人海戰術”,軟件產業還是“高級勞動力密 集型”,工藝的創新余地極大,許多軟件公司已經在工藝創新與工具創新上下功夫。新的工藝與工具將會大大提高自動化程度,并降低對軟件人員的技術要求。并 且,隨著技術的成熟,硅谷產業低端技術開始外移,低端技術已經步入老年期,但軟件工業化在歷經風雨、變革之后,正在成為硅谷目前革命的方向。軟件產業正步 入壯年期,它正邁過勞動密集型手工作坊式生產,從工業化定制,走向工藝化精益求精和大規模定制生產。 軟件革命從傳統產業上的借鑒 在產業發展史上,有一個后來居上的先例,那就是日本的汽車產業。日本汽車制造業并不是靠外包、代工發展起來的。二戰后的日本經過十幾年的發展后,各行各業元氣恢復,但所有的工業還是受美國的支配,這時的日本急需建立自己的支柱產業。 當時的美國汽車業以汽車城底特律為代表,工業化程度也很高,完全打破了手工作坊的生產,汽車業的生產效率第一次得到大幅度的提高。但是,日本發明了敏捷制造(JIT,Just In Time Inventory),并以日本人特有的在細節上精益求精的精神對工藝的每一個操作參數進行優化、在零部件的質量上下功夫,實現了汽車制造工藝的第二次革命。日本就是憑借第二次的工藝革命取代了美國在汽車行業的壟斷,使美國汽車城底特律成了“鬼城”(Ghost Town)。時至今日,走在底特律老城區,你仍可感受到產業競爭的殘酷。日本不但在商場上贏得了汽車產業的競爭,而且改變了日本人在美國人心目中的形象。現在,美國人在贊嘆自然現象的精確時,會開玩笑說“God must be Japanese, a perfect engineer”(自然界那么精確,創造自然的上帝一定是日本人,一個完美的工程師)。可見,工藝化生產不僅是對工業化的革命,更是一種深度發揮和產業階段的更替,是一個自然規律。 國際廠商軟件工藝化行動 北美軟件業在將許多老產品的服務與二次開發轉向印度等海外市場的同時,正醞釀著一場以軟件開發自動化和業務組件靈活組裝為核心的軟件開發工藝革命。這次工藝革命可能在幾年內將應用軟件開發效率提高數倍甚至數十倍。 軟 件開發自動化這個多少年來無數人的夢想,多少人前赴后繼,但最多只能停留在理論層次,在實用性上幾乎都失敗了。主要原因之一是因為技術還不成熟,在技術不 成熟的時候談工藝是奢望;其次,大多數研究都是針對整個開發流程的某一點上的自動化,沒有成鏈的自動化,不能產生太大的實際效益;其三,工藝化改革必須是 對先進工藝技術、優秀工程師經驗的固化,而不是紙上談兵,所以,沒有豐富的軟件業從業經驗積累,工藝化也將僅僅是想法而不是現實。而如今,情況已發生變 化,技術逐步走向成熟,具備多年從業經驗的優秀工程師比比皆是,軟件工藝化這個夢想也就離我們越來越近。 SAP的做法 作為提出“管理軟件是先進的管理理念”的始作俑者——第一大企業軟件供應商SAP,并沒有沉醉在這個市場理念被世人所接受的狂喜中,而是非常明白傳統軟件開發的弱點,一直在潛心流程引擎和開發效率的研究,預計一至兩年內其新一代的開發平臺將面世。這顯然是SAP的“核心”技術,不會作為產品銷售,但其自身開發的產品成本與產品對不同企業、不同市場的適應性將大大改進。 PeopleSoft的應對 第二大企業軟件供應商PeopleSoft正在研制新一代People Tool,新一代的開發工具將流程技術與開發自動化相結合,雖然它有很大的歷史包袱,但其開發效率與對變化的適應性方面都將有質的飛躍。Oracle收購PeopleSoft后短短一、兩個月,就開始將People Tool在易用性上的好處與Oracle的純JAVA平臺相結合,開始Oracle的新平臺研發工作。 國際廠商已經在工藝方面醒過來了,做了很多工作,未來的企業及應用軟件將是基于業務組件來隨需組合的,其工藝革命所降低的成本將超越我們在勞動力成本方面的優勢。 中國軟件產業的現狀和出路 一 家著名的IT咨詢公司的調查表明,困擾我國軟件企業的主要問題表現在以下幾個方面:企業經營者缺乏有效的管理手段以準確掌握并控制產品及項目的開發成本; 研發部門苦于人員流動造成的開發文檔、源代碼及其他知識資源流失;項目經理苦于開發過程失控,使得產品的質量和交付期得不到保障;開發人員陷入修改黑洞, 深入的技術研究和創新能力受損,員工滿意度下降;項目計劃和財務預算缺乏科學依據及可靠的模型支持。 對于國內軟件產業的發展和出路,已經有過一些探討和研究。 比如說,學習印度模式,走外包之路。從企業發展的角度來看,外包是可行的、可參考的,但對于國家軟件產業來說,外包除可以作為過渡性的行為之外,不值得學習,也不值得提倡! 首先,通過外包,代工的方式可以學習,但不可能實現超越,印度的BOMBAY永遠不可能取代美國的硅谷。日本汽車制造業并不是靠外包、代工發展起來的。其次,從競爭優勢的角度分析,對于外包和代工,和印度比起來,中國已經沒有太大的價格優勢。我最近從美國公司給印度的單子,1小時17美元,約合人民幣140元,差不多是一個月人民幣22400元,這與當今國內軟件企業接單價的2萬元人民幣/月已相差無幾。加上印度工程師在語言上的優勢,其實我們在外包代工方面的優勢一點都不明顯。再者,隨著人民生活水平的提高,勞動力價格就會提高,憑一時的低廉勞力,不可能支撐國家一個重要產業的發展。而羅馬尼亞等東歐國家在美國打出低于15美元一小時的報價,使得外包的價格戰越演越烈。 印 度的軟件產業外包模式是建立在“軟件產業是高級勞動力密集型”這一假設之上的,而新工藝所帶來的這種游戲規則的變化,可以將印度的模式在一夕之間變得無關 緊要。這種打擊將可能是毀滅性的。畢竟軟件產業才剛進入壯年期,外包、代工作為“夕陽工業”的典型特征,在這一階段還不是主要矛盾,所以,隨時都有“出 局”的可能。既然我們在產業發展上已經是后來者,那么想要居上,就不能一味緊跟別人的腳步,一定要有新的突破! 另 外的一些探討,比如業務平臺、業務基礎件的提出。從技術上講,相當于在已有的應用服務器、中間件等業內格局上加入有中國特色的一層,從而限制某些應用項目 上國外技術的進入,或者至少要求多加入一層,另辟一塊市場出來。在國外,沒有這樣一個“層”的概念,大家更多地說“業務解決方案”,或“解決方案服務器” 這樣的思路,在一個世界公認的開放平臺上,針對不同的業務提供和共享解決方案,以開放的態度解決問題,共同推進產業的發展和壯大,而不是人為設置某些技術 壁壘。所以,業務平臺從一定意義上說,限制了中國軟件企業國際化進程,是值得商榷的。 中國軟件業要走自己的路 我 們從產業的分析中發現,要想打贏軟件產業的國際攻堅戰,必須跨越式發展——從工藝化角度出發,甩掉軟件產業手工作坊式生產的帽子,打破軟件工業化的技術、 人才限制,從工藝化上進行突破。所以,我們應該以先進的行業經驗重新規劃軟件產業理論和技術布局,掌握話語權,引領國際潮流,只有如此,才能實現中國軟件 產業真正的崛起! 當技術逐步成熟,而新經濟泡沫破滅的今天,軟件的開發與擁有成本及質量問題越來越受到重視。和傳統產業一樣,解決成本和質量的問題,就得靠工藝的改進。工藝革命可能帶來的是產業游戲規則的改變,而游戲規則的改變將會為后發企業提供一個超越前人的歷史機遇。 國 家應該扶持新工藝的研究,形成自己企業的生產規模。學習日本汽車業的發展模式,而不是印度當前的外包代工模式。我們想要后來居上,跨越強國,我們必須抓住 當前軟件產業發展階段的主要矛盾,在工藝上下功夫,在質量上下功夫,建立起自己的軟件產業。希望有一天,中國能將硅谷變成象當年底特律一樣的Ghost Town!在未來虛擬世界里跑的都是“MADE IN CHINA”軟件。讓世人講起軟件,就會想起中國,就象講起汽車,就會想起日本的豐田、本田一樣。 先進的軟件開發工藝 傳統產業曾經依賴先進的生產工藝來解決產品成本與質量的問題。在傳統產業的過程系統工程理論中,工藝的范疇包括生產過程、原料/零件配送流程、操作參數優化、公用工程等四個主要方面。傳統產業對這幾個方面進行改造革新,從而降低產品的成本和提高產品質量。 生產過程主要是指原料和零組件進入生產廠房,到產品包裝入庫成為可出售的成品的過程。在這個過程中,流水線式的生產過程是現代先進生產過程的代表。而工廠化的培訓,清晰崗位設置,知識傳遞方法等現代管理方法是從管理的角度保證生產過程的順利進行。 一個產品的成本其實不僅是生產過程的成本,它還涉及到零組件/原材料的成本及它們的配送成本。組成產品的零組件/原材料時將是產品成本的一大組成部分。并且,零組件/原材料的質量在很大程度上影響著整個產品的品質。工藝是為了解決成本和質量的問題而進行的革新,其目的是降低產品的成本,提高產品的質量,它覆蓋了產品生產的整個過程。零組件/原材料作為產品成本的重要組成部分和產品高質量的重要決定因素,其生產的自動化和配送的自動化就顯得尤為重要了。所以,在工藝里,必須要實現零組件/原材料的自動化生產和配送。 工 藝解決的已經不是產品能否生產的問題。而是如何生產更為優質的產品,也就是說,工藝處理的已經不是在產品生產過程中的“能與不能”的問題,而是產品的優化 問題。所以,我們說,在工藝的實施過程中,產品必須是可優化。對于產品的優化,一般表現為兩大方面,一方面,生產過程的優化外,另一方面為產品零組件/原材料的優化。大家一定都非常清楚寶馬車要比國產的夏利好,那它為什么好?好在哪里呢?我們想,它好在做工,好在零件上。做工是什么?事實上它就是寶馬車的生產過程 ,并且寶馬的零組件都是千里挑一。事實上,寶馬是什么,是優化的生產過程加上優質的零組件生產出來優質產品。所以,在工藝里,有了操作參數優化的概念,它代表了整個產品生產周期的優化。 當然了,我們的生產還與一部分東西有息息相關的聯系,比如說能源。設想下,如果沒有能源,那么我們如何達到自動化生產?記得在20世紀中葉 , 所有的煉鋼廠都設有自己的發電廠。那時候生產的鋼材成本非常的高。在那時候,煉鋼廠一樣采用的是自動化的生產線,有很好的生產管理,有很好的原料配送,那 為什么那時候的生產成本要遠遠高于現在的企業呢?因為那時候的能源基本是自給自足,能源的生產成本非常昂貴,而現在的能源,由于有專門的生產企業進行生 產,其成本已經非常的低,作為產品總成本的組成部分之一,它也影響了產品總成本。所以,在工藝革新里,類似于能源這樣的一些行業公用的資源將被細分為單獨 的、專業的企業來生產,這樣大大的降低了產品的總成本。而在工藝里,將這部分資源稱為公用工程。 我們現在軟件業所需要解決的是如何降低產品生產成本、提高產品質量的問題,那么軟件產業也需要工藝革新。軟件產業的工藝是什么?它其實和傳統產業的工藝其實沒有本質的區別,它同樣由生產過程、原料/零件配送流程、操作參數優化、公用工程等四個主要方面組成。 我們現在仍然采用非常落后的手工作坊的方式生產應用軟件。勞動密集型產業中:產能的落后,成本的居高不下,質量低下等等問題讓所謂的“高新”產業變得有點尷尬。所以,我們必須要工藝革新。 軟件業需要工藝革新,首要的任務就是改變我們現有的軟件的生產方式。我們要采用流水線自動化的生產方式,并且,要如同傳統產業一樣工廠化的管理。現在,我們有很多的組織一直在做著這方面的研究,也取得了一定的成果,比如CMM,ISO9001等等 我們的客戶關心的我們的應用軟件如何更好的滿足他們的業務需求。那么 我們必須優化我們所生產的應用軟件的質量。而應用軟件的優化,將體現在兩方面:一是作為應用軟件業務組成的唯一原材料業務對象與業務對象間關系的優化。另一方面是優化客戶需求中的業務流程。 我們要工藝革新,我們就必須解決我們原材料的來源問題。應用軟件的唯一原材料就是業務組件。所以,我們必須能夠完成業務組件的動生成,自動配送。 同 理,在應用軟件里,有非常多的資源是可以公用的!比如處理操作系統間關系的支撐體系、比如處理和數據庫間高效交互的技術體系都是可公用的資源,這些資源, 也就構成我們今天所提的“中間件”的概念。應用軟件是企業管理活動的映射,在一定意義上說,它就是虛擬的企業。企業的管理活動一直在變,但是,隨著它成熟 度的增高,已經有一部分管理活動已經變得規范,比如企業組織架構等,這些資源,在任何一個應用軟件中基本都是同質的,也就是說,可以形式化成為我們的作業 務支撐體系,即業務通用平臺進行公用。以上種種資源,它都不應該由我們的應用軟件集成商去完成其生產,必須要專業的產商來完成,這樣才能夠真正降低我們應 用軟件生產的成本。 以 上的四大部分,就構成了我們今天所提的軟件工藝!今天的軟件產業還非常的年輕;概念已經成熟,技術不斷發展。對于整個產業的發展方向上的探討,已經有了非 常多的論證,而最為統一的觀點就是軟件需要工業化。當然了,我們都知道,任何一個產業的工業化都是一個漫長而痛苦的過程。從成熟的產業來看,工業化真正完 成的時間的標志點就是工藝的成熟。軟件需要工業化,那么,我們不能單純的僅僅做出一條自動化的生產線,或者僅僅能夠自動化的生產業務組件;這些,都僅僅是 工業化過程中的一個點,而我們追求的應該是整個工業化的面的總體層次的上升,那我們說,我們要實現軟件工藝。 然而,軟件工藝的實現需要一個過程。過程的正確往往是保證結果符合我們期望值得關鍵點。所以,在如何順利實現軟件工藝的問題上,我們提出了軟件“軟件四化”的解決方案。 所 謂“軟件四化”就是構架平臺化、組件業務化、編碼自動化和管理工廠化。這四大部分即是獨立的,又是相輔相成的,它們共同協作,完成軟件工藝化的整體功能。 其中,構架平臺化解決的是公用工程的問題;組件業務化解決了產品優化策略的問題;編碼自動化解決了產品原材料的自動化生產與配送的問題;管理工廠化解決了 生產過程中的管理問題。
          posted on 2006-06-13 08:52 無聲 閱讀(328) 評論(0)  編輯  收藏 所屬分類: 職場生活
          主站蜘蛛池模板: 高陵县| 深圳市| 嘉鱼县| 谷城县| 额济纳旗| 镇赉县| 靖西县| 武强县| 伊川县| 临湘市| 梅州市| 灵丘县| 塔城市| 宜阳县| 顺昌县| 海城市| 温泉县| 双桥区| 永泰县| 英超| 昭苏县| 临湘市| 北宁市| 阿拉善盟| 伊通| 许昌县| 临西县| 十堰市| 新平| 德安县| 崇州市| 司法| 庆安县| 上犹县| 河池市| 乐昌市| 临澧县| 沂水县| 平远县| 荆门市| 五莲县|