當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 山西OA系統(tǒng) > 太原OA系統(tǒng) > 太原OA快博
行業(yè)軟件開發(fā)要靠“抄”
當(dāng)軟件企業(yè)快速地從幾百人發(fā)展到幾千人時,技術(shù)和組織的管理問題必然成為一個新的課題。樣本程序的開發(fā)和交流也引發(fā)了軟件企業(yè)深層的管理問題,即如何研發(fā)或開發(fā)眾多的行業(yè)應(yīng)用軟件。
在以從事“行業(yè)應(yīng)用軟件”開發(fā)為主的軟件企業(yè)中,大部分工程師做的是一種定制化“腳本”性的工作。雖然這種編程上手并不困難,因為它的本質(zhì)是一種“集成”性的工作,但由于“集成”的對象和涉及的內(nèi)容非常之多,決定了它不只是一個技術(shù)性的問題,而且涉及管理、工程化、行業(yè)知識、個人表達(dá)能力等一系列問題,所以“做好”并不容易,而一個設(shè)計良好的“樣本程序”可起到事半功倍的效果。這就好比初學(xué)做古詩,古詩學(xué)的約束要素有很多,我們可以學(xué)習(xí)各種格律的約束規(guī)則,也可以直接學(xué)習(xí)古人的“經(jīng)典作品”,以這個“經(jīng)典作品”為“樣本”,試著完成自己的詩作。當(dāng)然,樣本程序的學(xué)習(xí)與做古詩還是有區(qū)別的,后面我們還會介紹。那么在軟件企業(yè)中推廣樣本程序究竟是為了什么呢?它的意義何在?筆者試著提出幾個切合實際的理由。
組裝軟件
就像我們制造一個桌子,組裝和組件我們是可以分得清的。從理解和學(xué)習(xí)角度上看,我們可以分類組件,也可以按流程劃分組裝的特性和特點,但是更直接的方式是選擇其中一種經(jīng)典的組裝方法,從頭到尾組裝一遍,給學(xué)習(xí)者有更直觀的印象,這種“從頭到尾的組裝”就是樣本程序。
結(jié)合樣本我們可以介紹組裝的約定和約束、組裝的風(fēng)格選擇、組裝中的注意事項、組裝中的分情形變化……以往我們太注重組件的構(gòu)成原理,而忽視組裝中的各種獨特性,這實質(zhì)上是“面向?qū)ο蟆焙汀懊嫦蜻^程”之爭的延續(xù)。其實軟件“重用”一直在兩個大的層面發(fā)展,即“相似”和“共享”?!跋嗨啤币赃^程體的組裝相仿特性為主,“共享”則是以組件或函數(shù)的方式存在。相比之下,“相似”反映概念層面的“重用”更多,它以一種概念結(jié)構(gòu)、框架、模式等的相似、相仿為主要特征,它確實不是“相同”,這也是為什么這部分內(nèi)容給知識產(chǎn)權(quán)的確定也帶來一定挑戰(zhàn)的原因。
在我們的生活中,也有類似的直觀實例。如: “宜家”的購物方式,買房子的“樣本間”(奇怪的是買回家去,好像總是沒有當(dāng)時看到的效果好)。相對于目前流行的“框架”和“模式”,我們以樣本程序為基礎(chǔ)討論行業(yè)應(yīng)用軟件的“結(jié)構(gòu)”,顯得更為直觀。因此,以“面向過程”思想為主體的“精心制作”的樣本程序在行業(yè)應(yīng)用軟件開發(fā)中的標(biāo)桿作用是顯而易見的。這里我們主要針對企業(yè)開發(fā)中常用的J2EE平臺進行討論,我們只是通過樣本程序討論了“面向過程”的思路,而沒有就腳本語言的使用展開更多的討論,實際上這部分內(nèi)容也在被人們逐漸地重視,將其與現(xiàn)有流行的開發(fā)工具相結(jié)合,又將是一個新的技術(shù)熱點。一個好的樣本程序經(jīng)過分段分析可形成一定的標(biāo)準(zhǔn)化,進而通過工具完成自動生成能力,目前流行的“領(lǐng)域驅(qū)動”的軟件開發(fā)實質(zhì)上就是對這部分內(nèi)容的一種嘗試,而過程化支持的工具平臺,也成就了另一個新的技術(shù)熱點,即BPM(業(yè)務(wù)過程管理)工具平臺。總之,好的樣本程序反映一種自然的規(guī)律,它既是“寫”出來的,又好像是“發(fā)現(xiàn)”出來的。
讓“山大王”做技術(shù)決策
把樣本程序拿出來進行討論就是在更大的空間內(nèi)制造一個平臺,加強更大層面的溝通和交流,甚至是爭辯,以提高“山大王”們的水平,這是一種組織結(jié)構(gòu)形式的“放權(quán)”,避免了CTO由于脫離一線的實踐,而引起的技術(shù)決策問題。
以行業(yè)應(yīng)用軟件開發(fā)為主體的軟件企業(yè),面臨著嚴(yán)重的技術(shù)組織困難。由于服務(wù)對象分散,它的管理有點像醫(yī)生給病人看病,當(dāng)病種快速變化,患者背景日趨復(fù)雜時,看病的流程和使用技術(shù)方法雖然類似但并不相同,其可能存在的最大問題是交流太少、各自為政。在軟件企業(yè)內(nèi)部,我們通常有一定的組織體系,典型組織結(jié)構(gòu)是部門和項目組,樣本程序的技術(shù)形成于這種組織之內(nèi)。雖然很多企業(yè)也有CTO和研發(fā)中心之類的角色和機構(gòu),但是由于服務(wù)性質(zhì)和專業(yè)分類的差異,很難統(tǒng)一控制這種分散的特征,無論從組織權(quán)力義務(wù)劃分上看,還是從業(yè)務(wù)決策角度來看,總裁、部門經(jīng)理、項目經(jīng)理都是權(quán)力的主軸。在技術(shù)決策方面,我們面臨著權(quán)力義務(wù)關(guān)系相互平衡的困難,這就造成CTO的執(zhí)行力度是有限的。當(dāng)部門經(jīng)理和項目經(jīng)理業(yè)務(wù)壓力變大時,他們往往會降低對技術(shù)決策的重視程度,技術(shù)問題的決定權(quán)就分散落在了企業(yè)內(nèi)部部門和項目組中的技術(shù)“山大王”中了,這些“山大王”在組內(nèi)是技術(shù)上的權(quán)威,基礎(chǔ)的技術(shù)文檔一般也是他們的杰作,其格式也是百花齊放。這樣做的好處是可以統(tǒng)一局部的方案,壞處是沒人與其討論推敲,甚至組織內(nèi)部有些工程師覺得多一事不如少一事,懶得與他們討論,這就使他們自己和各級單位的技術(shù)發(fā)展遇到了挑戰(zhàn)。到底是以CTO們做的決策為主,還是以“山大王”們的決策為主,變成了這類軟件企業(yè)的一個困境。
從表面上看,CTO和各級技術(shù)領(lǐng)導(dǎo)從決策者變成了一個“平臺”的維修工,但是協(xié)調(diào)和引導(dǎo)本身就是他們的主要工作,這其實并不簡單!在保證約定一致的基礎(chǔ)上,用競爭的方式形成技術(shù)決策是此類軟件企業(yè)技術(shù)管理的重要創(chuàng)新,從而帶動整體行業(yè)應(yīng)用軟件技術(shù)水平和管理水平的提高。
更好地利用框架
目前的B/S結(jié)構(gòu)編程有其固有缺點。以J2EE基礎(chǔ)開發(fā)為例,樣本程序要使用各種各樣的框架,如Ajax、Struts、Spring、Hibernate等。每一個框架介紹起來都有厚厚的一本書,都需要使用者熟悉它們的每一個使用細(xì)節(jié),而且新的框架還在不斷涌現(xiàn)和升級,搞得“山大王”們也頗具困惑。他們不禁要問: 不用這些框架行不行?有了它們到底有什么好處和不足? 即使用了它們解決了目前工具的一些不足,但又會帶來什么樣的副作用?
在缺少溝通的環(huán)境下,樣本的制定者顯得十分孤立??蚣苓@部分內(nèi)容有時看起來也是最具技術(shù)的一部分,很多新的術(shù)語和概念往往會使許多初學(xué)者似懂非懂,甚至感到十分神秘,部分“山大王”也因為似乎能說一些新的術(shù)語而自鳴得意??蓪嶋H上,這部分內(nèi)容介紹的時候恰恰需要的就是通俗易懂,很多所謂的“深奧”,只能是自己沒想明白,或者表達(dá)不好,因為最好的印證是同樣的功能在過去C/S結(jié)構(gòu)和4GL編程時都沒有這么復(fù)雜。
抄樣本程序是我們做樣本程序的真正目的。統(tǒng)一的編碼與做古詩不同,我們要最大限度地減少編程人(作者)的差異,只反映業(yè)務(wù)內(nèi)容本身的差異。抄樣本程序也是對傳統(tǒng)軟件開發(fā)方法的一種改良。
框架的應(yīng)用很多來源于分層概念的使用,典型的說法是MVC和三層結(jié)構(gòu)。一段時間以來,分層的趨勢越來越流行,分層的確帶來了很多規(guī)劃上的好處。如結(jié)構(gòu)清楚、發(fā)現(xiàn)局部問題或測試容易、“事務(wù)”加入規(guī)劃點明確等,特別是還有層間的協(xié)調(diào)。但分層也有它的不足,最主要的是數(shù)據(jù)傳遞量增大。因為層與層之間要不斷交換數(shù)據(jù),特別是當(dāng)這種數(shù)據(jù)是一個“數(shù)據(jù)塊”時,矛盾就變得更加突出。實際上,這種“數(shù)據(jù)塊”有兩個變化方向。縱向是列,涉及領(lǐng)域內(nèi)容,我們將在下文討論如何應(yīng)對它的變化; 橫向是行,涉及“數(shù)據(jù)塊”的記錄行集合。簡單地說就是記錄行集合類似“游標(biāo)”的管理,或是類似動態(tài)數(shù)組的功能的管理,這就引出了所謂虛擬“數(shù)據(jù)塊”操作問題,它的更復(fù)雜形式是涉及整體的領(lǐng)域概念所引出的主/從結(jié)構(gòu)、或更復(fù)雜的“數(shù)據(jù)塊”之間的關(guān)聯(lián),這就要求我們在基礎(chǔ)技術(shù)層面先解決“數(shù)據(jù)塊”的虛擬操作問題(當(dāng)這類問題反映在表示層面的時候,也引出了我們稱為Portal框架的一部分重要問題)。很多時候使用框架就是為了解決這類問題,因此我們要能在樣本程序中看到它的實現(xiàn)機制。而在現(xiàn)實中,我們很多樣本程序?qū)蚣艿氖褂茫挥昧似渲械淖詈唵蔚牟糠?。就像拿菜刀?dāng)錘子用,一樣能釘釘子,但沒有充分發(fā)揮出菜刀的優(yōu)勢。由于“數(shù)據(jù)塊”問題涉及領(lǐng)域?qū)ο蠛图夹g(shù)支撐的交匯,它應(yīng)該引起我們足夠的重視,特別是“數(shù)據(jù)塊”的傳遞,全局性存取是樣本程序中必須討論的問題。另一個使用框架的重要原因不是由于分層,而是在于編程的通用性。在我們的應(yīng)用程序中要大量使用這種特性,即“配置文件”方法。這好比“開著車換輪胎”,也就是說,程序的修改只改配置文件,而不用修改源程序,也不用重新編譯、連接和部署。當(dāng)然這也會引起一系列問題,如配置文件編輯方法及它的有效性和完備性檢查,數(shù)據(jù)類型檢查和“反射機制”的支持以及運行效率等??傊?,樣本程序即使不使用框架,也要看它對這方面內(nèi)容的處理。
沉淀、傳遞行業(yè)知識
應(yīng)用軟件很大一部分是行業(yè)應(yīng)用軟件,而行業(yè)應(yīng)用軟件涉及不同的行業(yè),具有很強的領(lǐng)域特點。領(lǐng)域模型是行業(yè)應(yīng)用軟件的重要基礎(chǔ),這類應(yīng)用軟件在編寫上是以領(lǐng)域模型為“龍骨”的,也就是說當(dāng)技術(shù)平臺升級或革命了,以領(lǐng)域模型為基礎(chǔ)的行業(yè)應(yīng)用軟件應(yīng)當(dāng)變化最小,這樣才能最大限度地保護我們行業(yè)應(yīng)用軟件的核心價值。
我們認(rèn)為領(lǐng)域模型是更高層面、更持久的行業(yè)應(yīng)用軟件模型,也是我們更要引起重視的部分。在這里筆者簡單說明一下領(lǐng)域模型影響樣本程序的要點,簡單地看,領(lǐng)域模型影響樣本程序的結(jié)構(gòu)(命名)和行為(邏輯)。在行業(yè)應(yīng)用軟件中,我們要為操作對象和函數(shù)命名,為了便于在概念變化時更好地把握它們,我們以領(lǐng)域模型中的定義和通行術(shù)語為基礎(chǔ),形成概念體,去命名相應(yīng)的對象。從對象的特點上看,“領(lǐng)域”的對象和系統(tǒng)軟件中的對象有不同特性。領(lǐng)域中的對象有經(jīng)常變化的傾向,如: 存貨、存款等,它們有可能隨時間的變化而在內(nèi)容和結(jié)構(gòu)上變化,而系統(tǒng)軟件中的對象,如內(nèi)存、進程、文件等,則相對是穩(wěn)定的。如果我們同樣地做樣本程序,在行業(yè)應(yīng)用軟件中,我們就要考慮樣本程序中如何表達(dá)這些領(lǐng)域?qū)ο螅绾慰刂扑鼈兊淖兓?,如何在相似的情況下替換另一個相似的概念對象。
由于領(lǐng)域?qū)ο蟮囊鬃冃?,我們在樣本程序中?yīng)該能夠看到這種變化的應(yīng)對策略。從結(jié)構(gòu)上看,如果領(lǐng)域?qū)ο蟮慕Y(jié)構(gòu)變化了,我們?nèi)绾问褂靡环N可變的Schema(它也對應(yīng)表示層的結(jié)構(gòu)及界面結(jié)構(gòu))來解決,應(yīng)用程序是基于Schema編制的,當(dāng)結(jié)構(gòu)變化時,我們修改Schema,使整個程序變化最小。同樣針對領(lǐng)域概念形成領(lǐng)域行為范圍來對應(yīng)不同分類的組件體,當(dāng)行為變化時,只控制修改相應(yīng)的部分。這部分內(nèi)容實質(zhì)上是行業(yè)應(yīng)用軟件的熱點技術(shù)“業(yè)務(wù)產(chǎn)品化”的重要基礎(chǔ)。
現(xiàn)階段的很多樣本程序大多抄襲了框架書中的范例,對這部分內(nèi)容的考慮是比較欠缺的。同樣道理在我們以領(lǐng)域模型為基礎(chǔ)的樣本程序中,也很少討論程序的行為邏輯與領(lǐng)域的“業(yè)務(wù)邏輯”的相符度,提出一整套對這種邏輯的標(biāo)識(命名)分類、變化控制、替換原則等,一個好的樣本程序應(yīng)當(dāng)可以看到這種涉及領(lǐng)域背景的“龍骨”。
組件要有良好規(guī)劃
樣本程序由于它的“集成”特征,除了具體使用的開發(fā)工具外,就是人們已經(jīng)編好的、準(zhǔn)備被今后大量重復(fù)使用的相對通用的程序,這就是所謂的組件。樣本程序是組裝,組件與它的關(guān)系是顯而易見的,而且當(dāng)前的組裝結(jié)果可能成為新的組件,以便下一步的組裝使用。這就好像你中有我,我中有你。但是這也產(chǎn)生了所謂的組件規(guī)劃問題。
左春
中科院軟件研究所研究員,中科軟科技股份有限公司總裁。長期從事計算機管理信息系統(tǒng)和計算機輔助軟件工程的研究和開發(fā)。主持開發(fā)了《保險業(yè)務(wù)綜合管理信息系統(tǒng)》系列軟件產(chǎn)品,這些軟件目前已經(jīng)推廣到全國一半以上的保險公司,并成功進入香港市場。
在樣本程序中,我們反映的是具體行業(yè)應(yīng)用軟件的編制,我們首先關(guān)心“大粒度”的通用組件甚至是通用系統(tǒng)。它們當(dāng)中有代表性的是: 代碼管理、顯示和打印組件、權(quán)限管理、工作流引擎、計算引擎、異常處理組件、接口平臺組件等。樣本程序是以“調(diào)用”或使用這些基本功能為基礎(chǔ)的,在我們的樣本程序中應(yīng)該對這部分內(nèi)容有良好的描述。樣本程序在集成這些組件的過程中,可以更多地關(guān)注集成中的“全局”特性和組件使用的范例說明。進一步說,組件的規(guī)劃是以“面向?qū)ο蟆钡乃枷脒M行指導(dǎo)的,在“小粒度”的時候我們更注重對象的封裝,接口的說明,它一般是非過程性的。但是到了“大粒度”,我們除了繼承“小粒度”的要求外,還要加入組件使用時的步驟和環(huán)境的說明,它一般是以過程性為主的。
用“手冊”規(guī)范開發(fā)
寫任何程序離不開平臺和環(huán)境,樣本程序應(yīng)該對“通用”開發(fā)和運行環(huán)境有所描述。對開發(fā)程序所使用的“語言平臺”歸納成具體的“使用手冊”和“參考手冊”。
“參考手冊”是該語言的語法結(jié)構(gòu)及使用說明,它是以“面向?qū)ο蟆睘橹鞯姆绞奖磉_(dá)的?!笆褂檬謨浴笔侨绾问褂迷撜Z言的說明,它是以“面向過程”為主的方式表達(dá)的。從學(xué)習(xí)的技巧角度來看,我們一般是先看“使用手冊”,發(fā)現(xiàn)細(xì)節(jié)不清楚時,再查看“參考手冊”。在做樣本程序的時候,為了使關(guān)鍵的文檔量下降,往往直接說明引用的參考文獻和網(wǎng)站,這樣相當(dāng)于我們用引文的方式介紹了“參考手冊”,以此減少我們的文檔量。
樣本程序?qū)嵸|(zhì)上是以“參考手冊”為基礎(chǔ),把單純面向編程語言的“使用手冊”中所舉的“范例”,變成我們開發(fā)組結(jié)合具體應(yīng)用背景的范例,即樣本。由于我們使用的編程語言考慮更多的是“通用”特征,所以我們應(yīng)該針對我們的具體情況編出一些新的樣本程序的“語句”,即基本組件。在一些局部條件已知或缺省的條件下,也可能使用一定的生成代碼工具,去生成組件或組裝腳本。對這些整體環(huán)境的討論我們又可以結(jié)合一個IDE(集成開發(fā)環(huán)境工具)工具進行,在樣本程序的介紹中,我們應(yīng)該可以感到Eclipse、Jbuilder之類工具的使用并說明引用它們的具體版本及文檔出處??傊谧鰳颖境绦驎r我們應(yīng)當(dāng)看到對IDE工具、開發(fā)語言、基礎(chǔ)通用函數(shù)等方面的介紹,從而使大家感到這樣的樣本程序是可以實際運行的。
文檔也要“抄”
樣本程序本身也是程序文檔的一部分,這就考驗我們行業(yè)應(yīng)用軟件的文檔能力。它包括文體的構(gòu)成、框架思路、文字的準(zhǔn)確。由于工程師們對文檔的困惑,樣本程序可以給文檔工作提供一個“范本”,促進整體文檔的質(zhì)量水平。
樣本程序的交流,考驗技術(shù)人員的思路、態(tài)度、語言等一系列情商能力。一段時間以來,技術(shù)經(jīng)理們在爭辯時往往顯得比較“單純”,不太經(jīng)得起不同意見或批評,在急于爭辯的時候容易走極端,這在技術(shù)交流中顯然是要克服的。通過交流可使他們明白: 理解他人思路和說服他人方式的重要性,把心里明白和表達(dá)清楚結(jié)合起來,把聽的明白與自己的觀點結(jié)合起來,把動機和效果結(jié)合起來。由于一個應(yīng)用程序的內(nèi)容龐大復(fù)雜,各種角色的溝通能力和說服能力顯得尤為重要。
“抄”出質(zhì)量和效率
應(yīng)用軟件開發(fā)除了組織管理創(chuàng)新外,也要考慮過程管理要求。樣本程序是過程管理的重要工具,其核心目標(biāo)是保證整個行業(yè)應(yīng)用軟件的質(zhì)量和效率。也就是說,我們要在樣本程序出來后,用管理的手段保證我們的程序員所編的其他程序與樣本程序的符合度,俗稱“抄”。
抄樣本程序是我們做樣本程序的真正的目的。統(tǒng)一的編碼與做古詩不同,我們要最大限度地減少編程人(作者)的差異,只反映業(yè)務(wù)內(nèi)容本身的差異。抄樣本程序也是對傳統(tǒng)軟件開發(fā)方法的一種改良。
傳統(tǒng)的軟件開發(fā)一般的過程是: 需求分析→概念設(shè)計→詳細(xì)設(shè)計→編碼→修改循環(huán)。使用抄樣本程序的思路是: 需求分析→找相似樣本程序→抄(加替換修改)→反生成設(shè)計文檔。
它的優(yōu)點是抄在先,替換修改在后。并且是“以源程序為核心”形成文檔。這是近年來相對占上風(fēng)的一種觀點的反映,源程序與文檔的關(guān)系有時像明細(xì)表與匯總表族的關(guān)系一樣,明細(xì)表是矛盾的主要一方。這種方法的不足是,得有這么多的相似樣本程序,還要人工地識別出來,這就是我們說要“抄”的重點。由于“抄”的樣本并不總是合適,所以“抄”的方法也同樣有局限性。一旦沒有可“抄”的樣本,我們還是回到了傳統(tǒng)的道路,從詳細(xì)設(shè)計、編程到代碼走查,無非是想成為新的“樣本”,我們的樣本也是想讓更多的人參與討論程序所涉及的問題,參與程序各階段的糾錯。所以項目管理者要嚴(yán)格掌控“走新路”的程序,盡量讓熟手上馬,形成新的樣本程序雛形。再退一步說,即使不能直接的“抄”,也還存在間接“抄”的作用,因為各種編程約定、關(guān)鍵點的考慮,也構(gòu)成“仿”的基礎(chǔ)。所以我們今后的樣本程序也像“模式”的運用一樣,分成不同的類型分別討論。從工程管理上看,“抄”的必要性真是太大了,很多的應(yīng)用軟件(腳本),體現(xiàn)了一種已有成果的積淀,是重要的知識沉淀。應(yīng)用軟件開發(fā)時往往會動一處而涉及全局,而“抄”是最安全的選擇。“抄”也是可以使我們的軟件更快、更早地與用戶見面的方法。我們不能去反復(fù)試驗,這也是為什么近年來流行Migration(遷移)項目。關(guān)于“抄”的執(zhí)行管理從責(zé)任上應(yīng)從“山大王”們返回企業(yè)權(quán)力的主軸,即部門經(jīng)理和項目經(jīng)理是主要的責(zé)任人,只有這樣才能平穩(wěn)推進這項工作。在有力地完成了這項工作之后,各級主管會發(fā)現(xiàn)一個喜出望外的成果,那就是有了相同的樣本程序,有了相同的“抄”的管理經(jīng)驗,這就使各級主管擁有了集中兵力打殲滅戰(zhàn)的能力,進而可以創(chuàng)造出以一個小組團隊加上其他小組群的支持與一個競爭對手(大公司)相對抗的能力。對于一個涉及多個不同行業(yè)應(yīng)用的軟件開發(fā)企業(yè),太需要這樣的能力了!
軟件過程管理的核心,是先定規(guī)則再進行符合度檢查和有效性評估。企業(yè)過程管理中核心的要求有兩點: 一是內(nèi)控機制的建立; 二是執(zhí)行有效性評估。樣本程序的有效性評估也恰恰反映說明樣本程序不是一勞永逸的,而是要在實踐中不斷豐富和完善的。開始的時候樣本程序可能是相對單一的,但隨著應(yīng)用的深入和管理的要求,它們變成樣本程序“族”并附加了很多的使用說明。對所有參與“抄”的編程者,我們都要有“精益求精”的態(tài)度。當(dāng)我們在“抄”的過程中,發(fā)現(xiàn)不方便、不合理的地方,應(yīng)該大膽地提出來、修改完善樣本程序,最終也減少“抄”的工作量。對監(jiān)督“抄”的管理者,今后也要形成更多的管理規(guī)范,并使用一些自制工具去自動化的檢查“抄”和“仿”的符合度。在交流中,我們要看到它的工程化實用的痕跡,換句話說,你真的在使用嗎?你使用的效果如何?這種交流也可以使那些“說得好,做得弱”的“兩層皮”狀況得到改進,我們可以從一個新的程序員角度去盤問樣本程序的使用狀況,如果它用得好,大家會很容易地感覺到。 (ccw)
- 1企業(yè)信息管理的秘密訣竅
- 2如何幫助遠(yuǎn)程用戶解答疑難問題
- 3視頻會議調(diào)試更為重要
- 4泛普OA系統(tǒng)還實現(xiàn)了工作流和考勤功能的整合
- 5企業(yè)決策效率怎樣提升
- 6動態(tài)成本法 玩轉(zhuǎn)企業(yè)盈虧蹺蹺板
- 7RFID應(yīng)用何時“井噴”?
- 8中國ERP如何自救
- 9怎樣用BI衡量你的客戶
- 10現(xiàn)代項目管理的問題分析法
- 11ERP標(biāo)準(zhǔn)成本體系與現(xiàn)代企業(yè)成本管理研究
- 12ERP市場進入"替換"期
- 13中小IT公司信息化建設(shè)可行性
- 14網(wǎng)管軟件應(yīng)該怎么做
- 15實施一體化戰(zhàn)略的5大秘訣
- 16SOA過多的Web服務(wù)等于麻煩
- 17九問首席知識官CKO
- 18證券行業(yè)從數(shù)據(jù)倉庫"挖"到財務(wù)預(yù)警
- 19ERP登陸中國以后的“入市”與“造市”
- 20人事管理平臺提高日企協(xié)同效益
- 21中國將建立《薩班斯法案》類似體系
- 22OA軟件發(fā)展至今已經(jīng)成為企事業(yè)單位全員應(yīng)用的基礎(chǔ)管理軟件
- 23BI助樂百氏把握營銷脈動
- 24企業(yè)需要什么樣的網(wǎng)管軟件
- 25突破軟件營銷"最后一公里"
- 26中小企業(yè)網(wǎng)上“招親” 仍需人工服務(wù)做媒
- 27撥開迷霧選網(wǎng)管
- 28怎樣評估知識管理系統(tǒng)所產(chǎn)生的效益
- 29OA支撐財務(wù)管控型管理模式的信息化規(guī)劃
- 30如何進行業(yè)務(wù)流程優(yōu)化管理
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓