軟件工程實(shí)踐者的思想[2]
5.工程
最狹義的工程,是描述"做什么"和"做到什么".
也就是說(shuō),是對目標的描述和成果的檢測。至于這個(gè)工程目標的實(shí)現,是"過(guò)程"和"方法"的事;而有效、快速地實(shí)現"過(guò)程"和"方法"所需的,就是"工具".
這種軟件工程體系層次(SoftwareEngineeringArchitecturalLayers)被描述成一張圖。
過(guò)程伴隨工程而出現,解決的是工程中"步調一致"的協(xié)作問(wèn)題。那么工程是因為什么而出現的?
很顯然,軟件規模的不斷增大是導致軟件工程出現的根本原因。所以你會(huì )看到在幾年前,開(kāi)發(fā)一個(gè)小工具可以不講工程;或者現在在你的Word中,為了將半角替換成全角字符而寫(xiě)的那個(gè)宏,也不需要工程。
接下來(lái),即使軟件規模增大,如果有一個(gè)牛人中的超牛人,愿意用20年來(lái)寫(xiě)一個(gè)任意龐大和復雜的操作系統,他也是能做到的。然而現實(shí)中不會(huì )有軟件公司給他這樣的機會(huì )。
項目的"復雜"可能要求不同知識領(lǐng)域的角色參與,而"龐大"則要求更多(人力、技術(shù)與管理)資源。"團隊"作為開(kāi)發(fā)行為的模式,是軟件規模和復雜度漸次累積的.結果。
團隊必將越來(lái)越龐大,因為(與工程對應的)軟件規模必將越來(lái)越復雜。沒(méi)有團隊意識的軟件公司將在高度過(guò)程化、通曉方法理論、擁有大量工具的集團軍面前一觸即潰。
6.組織
工程理論其實(shí)是包含組織學(xué)的。然而我在上面的那張圖中,將組織與工程分離開(kāi)來(lái),并在二者之間畫(huà)下了一道縱向的線(xiàn)。
如果說(shuō)工程關(guān)心的是"需求"、"配置"和"文檔"等等這些要素,那么這樣的工程還是停留在技術(shù)層面:關(guān)注的仍是工程實(shí)現細節,而非目標。從角色角度來(lái)看,這是項目經(jīng)理和技術(shù)經(jīng)理共同關(guān)注的那一部分。
然而項目經(jīng)理還必須關(guān)注于人力資源、項目資金以及多個(gè)項目之間的協(xié)調等問(wèn)題。這些問(wèn)題與工程本身并沒(méi)有直接關(guān)系,而是"組織"方面的內容。
所以在工程環(huán)節里,"文檔管理"和"配置管理"等詞匯中的那個(gè)"管理",是管理的具體技術(shù)和方法;而在"組織"這個(gè)環(huán)節中的"管理",才是真正的管理學(xué)上的用詞。
在這張圖上,我試圖從這個(gè)角度上來(lái)說(shuō)明:作為項目經(jīng)理,你必須有一部分的工作是非技術(shù)性的。甚至,你可能絕大部分的工作是非技術(shù)性的。因為與技術(shù)相關(guān)的管理技能(需求、配置、過(guò)程管理等)可以由開(kāi)發(fā)經(jīng)理來(lái)做,或者公司對于這一方面有較統一且成熟的規范,因而無(wú)需投入過(guò)多的精力。
你必須更關(guān)注于對這個(gè)(或這些)工程的組織與計劃。站在"組織者"這個(gè)角色上,你現在要考慮的內容可能會(huì )是:
為項目的各個(gè)階段建立計劃,并逐漸地細化計劃內容,以及確立項目過(guò)程中每一個(gè)環(huán)節、每一個(gè)計劃階段的優(yōu)先級和復雜度;
確立項目或者產(chǎn)品階段目標,成果的準確描述、定位,以及整個(gè)項目的質(zhì)量目標及其考核辦法;
對團隊中的不同角色展開(kāi)培訓,以指導并協(xié)調角色間的工作,從而消除因為工作習慣的差異帶來(lái)的影響;
為每一個(gè)人準備他所需要的資源,這不單單是把一套shareware變成正式版或者把512M內存變成2G,還包括準確地評估他的工作量,以及決定是否為他增加一個(gè)(能協(xié)同工作的)副手;
【軟件工程實(shí)踐者的思想[2]】相關(guān)文章:
《軟件工程思想》讀后感11-21
【熱門(mén)】軟件工程師崗位工作簡(jiǎn)歷模板2篇12-27
軟件工程論文的提綱12-02
試論軟件工程的應用10-05
軟件工程思想在應用型高校畢業(yè)設計中應用研究11-02
軟件工程碩士的論文09-25
軟件工程應用淺析10-05
軟件工程碩士的開(kāi)題報告10-24