企業(yè)技術(shù)體系架構(gòu)建設(shè)
Posted on 2012-03-29 16:27 一酌散千憂 閱讀(1320) 評論(0) 編輯 收藏 所屬分類: 企業(yè)架構(gòu)軟件企業(yè)的技術(shù)體系架構(gòu)包括對軟件產(chǎn)品本身及生產(chǎn)過程、軟件生產(chǎn)環(huán)境及生產(chǎn)者的管理和支持,此架構(gòu)應(yīng)當(dāng)基于下列五項基礎(chǔ)建設(shè)之上:
l 開發(fā)技術(shù)架構(gòu)
l 開發(fā)環(huán)境架構(gòu)
l 過程管理架構(gòu)
l 企業(yè)產(chǎn)品架構(gòu)
l 企業(yè)人件架構(gòu)
下面詳細(xì)介紹各項架構(gòu)的內(nèi)容及特點。
開發(fā)技術(shù)架構(gòu)
開發(fā)技術(shù)架構(gòu)作為一個軟件企業(yè)的基石,包括可復(fù)用的架構(gòu)組件、公用的基礎(chǔ)代碼庫等。開發(fā)技術(shù)框架應(yīng)當(dāng)在一個良好的過程管理之下,嚴(yán)格的質(zhì)量管理與實用性檢查,并且鼓勵普通技術(shù)人員的參與。
1.建立技術(shù)架構(gòu)倉庫標(biāo)準(zhǔn)體系與維護(hù)模式。建議使用MAVEN作為所有開發(fā)技術(shù)(包括架構(gòu)預(yù)研與實際項目開發(fā))的基礎(chǔ)項目管理工具,實施嚴(yán)格的質(zhì)量管理和持續(xù)集成。
2.選拔組建高素質(zhì)的架構(gòu)師隊伍,并且鼓勵技術(shù)人員參與到技術(shù)架構(gòu)倉庫的構(gòu)建和維護(hù)。
3.加強技術(shù)架構(gòu)實用性與適用性的檢查與改造。
4.架構(gòu)運營模式的考察,技術(shù)架構(gòu)的改進(jìn)與預(yù)研。技術(shù)架構(gòu)的預(yù)研模式比較復(fù)雜,多個部門中多個項目可能都會要求進(jìn)行多個同類框架的考察、比較、環(huán)境搭建等工作,若集中在獨立架構(gòu)組可能壓力較大。可以考慮架構(gòu)組內(nèi)部劃分為多個技術(shù)領(lǐng)域,如企業(yè)基礎(chǔ)應(yīng)用架構(gòu)、消息中間件、動態(tài)化組件、分布式集群等。以技術(shù)部門的實施領(lǐng)域作為導(dǎo)向,進(jìn)行技術(shù)架構(gòu)的預(yù)研。
5.開放知識系統(tǒng)的構(gòu)建(內(nèi)部wiki,個人博客,視頻分享)
根據(jù)企業(yè)行業(yè)背景,需要關(guān)注的技術(shù)領(lǐng)域包括:企業(yè)應(yīng)用、ESB/SOA、大型分布式架構(gòu)(在線/離線),自然語言處理。
開發(fā)環(huán)境架構(gòu)
包含IDE,編譯環(huán)境,遠(yuǎn)程支持,通訊支持與其他大量功能性支持軟件,并可以根據(jù)不同的工作角色制定不同的環(huán)境,以便排除干擾,更加快速有效的進(jìn)入工作狀態(tài)。
項目的關(guān)鍵問題是溝通,個性化的工具妨礙——而不是促進(jìn)溝通。開發(fā)和維護(hù)公共的通用編程/項目管理工具有很多的好處。
1.建立具有鮮明特色與強大實用性的自有開發(fā)環(huán)境,展示一個軟件龍頭企業(yè)在企業(yè)技術(shù)沉淀中的深厚功力和規(guī)范性。
2.建立行政流程以規(guī)范和約束開發(fā)環(huán)境管理。
3.劃分相關(guān)職能以保持對開發(fā)環(huán)境的維護(hù)
4.建立多種培訓(xùn)機(jī)制以促進(jìn)新員工能夠迅速投入工作。如固定新員工開發(fā)環(huán)境熟悉培訓(xùn)機(jī)制,建立企業(yè)講解&培訓(xùn)視頻庫,小組內(nèi)互助&溝通。
過程管理架構(gòu)
1.過程方法
對多家企業(yè)軟件生命周期中使用的過程方法進(jìn)行調(diào)查了解到,大部分優(yōu)秀的軟件企業(yè)對于過程方法十分重視,且存在針對不同項目合理運用不同的過程方法。項目經(jīng)理對于過程方法的理解與運用常常關(guān)系到項目的成敗。
目前核心的管理模型/過程方法主要分為三大類:CMMI,RUP,敏捷。
CMMI作為軟件質(zhì)量體系的標(biāo)準(zhǔn),軟件企業(yè)必須具備的資質(zhì),具有文檔齊全,流程規(guī)范等優(yōu)勢,對于大型核心項目有較大優(yōu)勢,其劣勢在于靈活度不足,無法很好的滿足日益變化的需求。
RUP由Rational公司(被IBM收購,目前是IBM 軟件集團(tuán)旗下之第五大軟件品牌)提出,采用迭代開發(fā)模式,四個階段,九大核心工作流,明確的角色劃分與文檔規(guī)劃,可裁剪配置的開發(fā)過程。目前被大量的軟件廠商作為最核心的過程方法使用。
敏捷(Agile)為了滿足隊伍小型化和需求快速變化而產(chǎn)生的目前最流行的過程方法。XP(Extreme Programming)通過簡單的四個核心價值(溝通(Communication)、簡單(Simplicity)、反饋(Feedback)和勇氣(Courage))與十二條最佳實踐從研發(fā)的角度提出了最簡單直接的開發(fā)方式。XP的形態(tài)特殊,從編程的角度描述方法與原則,加入了SCRUM之后,加強了從行政體制方面的支持,從而形成了完整的敏捷開發(fā)的過程方法體系。
過程方法一定不是萬金油,針對不同的企業(yè)特點,甚至不同項目,都有必要對過程方法進(jìn)行合理的裁剪與整合。對于目前公司的情況,大型核心項目可以使用CMMI,這些往往決定了企業(yè)的戰(zhàn)略方向,穩(wěn)健的過程方法最為合適。大部分中小型項目均可采用 RUP+敏捷 的過程方法,即遵守RUP的核心階段和工作流,但是迭代周期和開發(fā)的基本原則根據(jù)敏捷,并挑戰(zhàn)整合部分敏捷方法中的最佳實踐。這樣的策略用于面對市場需求的快速變化,同時也能很好的保障企業(yè)在軟件生產(chǎn)中的產(chǎn)品價值保存和技術(shù)經(jīng)驗積累。
2.過程方法自動化支持
針對不同的過程方法,往往有若干的軟件產(chǎn)品用以快速自動化的實施。如實施CMMI時所使用到的DEVSUITE產(chǎn)品。完整體系的支持產(chǎn)品往往在應(yīng)用于某套固定方法有著良好的效果,但容易存在流程生硬,無法與開發(fā)環(huán)境更好結(jié)合形成了信息孤島,改進(jìn)困難等缺點。一套優(yōu)秀的過程方法支持軟件,需要和開發(fā)環(huán)境(如IDE等)良好結(jié)合,并且易于調(diào)整以應(yīng)對過程方法的變化,同時沒有復(fù)雜冗余的過多細(xì)節(jié)流程以便容易被開發(fā)人員學(xué)習(xí)和掌握。
產(chǎn)品涉及方面:項目計劃、項目需求管理、軟件配置管理、自動集成、自動產(chǎn)品發(fā)布、代碼審核、代碼質(zhì)量管理等。
企業(yè)產(chǎn)品架構(gòu)
1.產(chǎn)品/產(chǎn)品需求流程補充,產(chǎn)品立項時的立項報告中應(yīng)當(dāng)包含市場、競爭對手、對手產(chǎn)品、風(fēng)險等分析。
2.領(lǐng)域模型與概念,在特定的行業(yè)中可以即使關(guān)注領(lǐng)域?qū)<业膭討B(tài),以便構(gòu)建正確的領(lǐng)域模型,確定產(chǎn)品的發(fā)展方向和形態(tài)的正確性。
3.對于特定產(chǎn)品的領(lǐng)域概念及相關(guān)技術(shù)發(fā)展需要深入了解,如輿情分析系統(tǒng),需要進(jìn)行了一定的市場調(diào)查,跟進(jìn)了當(dāng)前領(lǐng)域?qū)<业膱蟾妫瑓⒖紘鴥?nèi)外多項相關(guān)項目的設(shè)計理念和原則。對于目前市場狀況、未來的方向、目前的技術(shù)實力等要有比較清晰的概念
4.堅持以市場為導(dǎo)向的原則,在商務(wù)部門與研發(fā)部門之間搭建積極的溝通橋梁,研發(fā)部門的計劃根據(jù)實際市場需求進(jìn)行調(diào)整。產(chǎn)品的發(fā)布配合市場的要求,達(dá)到利益最大化。
企業(yè)人件架構(gòu)
企業(yè)自身環(huán)境除了常見的軟件(Software),硬件(Hardware)以為,還應(yīng)當(dāng)加入人件(Peopleware)。之前的種種,如過程方法、技術(shù)架構(gòu)積累、知識分享等均是為了將整個企業(yè)構(gòu)建成為一部精密的機(jī)器,無論缺少什么重要零件均可以快速修復(fù),但是人員流失所造成的損失是巨大的。目前公司有著良好的軟硬件環(huán)境,技術(shù)部門作為發(fā)動機(jī),若在針對技術(shù)性員工有特別的規(guī)劃和關(guān)心,必然能夠增強在整個市場中的競爭力,對企業(yè)自身的發(fā)展也是有良好的推進(jìn)作用。
公司可以按照職位和員工自身的情況規(guī)劃發(fā)展路線,明確技術(shù)目標(biāo)。開發(fā)進(jìn)化角色基本按照軟考標(biāo)準(zhǔn),程序員-高級程序員-軟件設(shè)計師-系統(tǒng)分析師-系統(tǒng)架構(gòu)師,程序員-高級程序員-項目經(jīng)理。
在技術(shù)部門內(nèi)部,可以定期組織交流心得、新技術(shù)等。(在SCRUM中實際上有一些比較好的行政手段可以借鑒參考)
由于軟件技術(shù)部門的特殊性,一些應(yīng)用于生產(chǎn)線的行政制度可能能夠討論出更好的實施方案,避免員工單方面的錯誤認(rèn)識引發(fā)消極的工作態(tài)度。
由于有一定經(jīng)驗,而且公司技術(shù)架構(gòu)建設(shè)的需要,能夠很好的協(xié)助企業(yè)進(jìn)行技術(shù)架構(gòu)全方面的介紹和培訓(xùn)。而且我自身也很希望參與到企業(yè)文化的建設(shè)工作中去,鼓勵技術(shù)人員之間的技術(shù)交流與溝通。