當(dāng)前位置:工程項目OA系統(tǒng) > 泛普服務(wù)體系 > 泛普博客
軟件項目管理中所暴露的最大問題
很多朋友都有過或者正在管理一個或者多個軟件項目,那么我的文章就從這個問題開始:如果單純從表象來說,軟件項目管理過程中暴露的最大問題是什么?
不同的人的會有不同的答案,但是大致這樣的答案我想大部分人都是會認(rèn)可的,那就是“進(jìn)度拖延”。進(jìn)度拖延當(dāng)然是表象之一了,其他諸如質(zhì)量不過關(guān)、功能不完整等等,我覺得都是和進(jìn)度拖延密切相關(guān)的。很多項目經(jīng)理都想去做那些認(rèn)為是十分必要的事情,比如計劃、測試等,但是“沒有時間”。為什么會沒有時間?等到項目總結(jié)的時候,我們總會羅列出一大堆的理由試圖來說服自己,說服公司甚至說服客戶。但是如果限定項目經(jīng)理只從自己身上找原因的話,我想問題就不難找了。
這里,我用“豐田”的“五次為什么”方法來問這個問題,以及我覺得可能的回答:
一、為什么項目進(jìn)度會拖延?因為沒有按照項目計劃進(jìn)行!
二、為什么不按照項目計劃執(zhí)行?因為進(jìn)度總會有拖延,緩沖時間總會被用光。
三、為什么在計劃時候不規(guī)劃得更細(xì)更貼近現(xiàn)實一些呢?再細(xì)也總有額外的工作出現(xiàn)。
四、為什么不充分評估每一個工作,讓預(yù)料之外的工作盡可能少呢?因為確實無法評估下去了,很多認(rèn)為是原子級的工作都會產(chǎn)生出各種問題。
五、沒有可以參考的其他項目的項目計劃嗎?因為兩個項目的不同點太多,很難重用。
問到這里,我想一般項目的核心問題也就顯露在我們的面前。現(xiàn)在先不去談?wù)撨@個問題,我們用幾個簡單的例子讓他更生動一些。
我們用一個非軟件的事情舉例,讓大家為這個例子作一個詳細(xì)的項目計劃并評估出最精確的時間。
例子1:請大家評估各自把我的這篇文章重新打一遍的時間。
這個例子最簡單了,拿我自己來說,我打字速度為每分鐘30個漢字,所以這篇文章重新打一遍的時間就是文章的總字?jǐn)?shù)3000/30=100分鐘。加上中間休息的時間,最多就是120分鐘。
答案相當(dāng)準(zhǔn)確,我想也不會有太多人有異議,但是下一個例子可能就有些不一樣了。
例子2:請大家解開下列的方程式:x2+px+q=0, p=2, q=1
初中的方程式阿,但是很多人可能忘記它的通用求解公式了,不過我們假設(shè)大家都知道這個求解公式:-p/2±sqrt(p2/4-q)。評估時間的時候我們首先要知道我們打開計算器的時間,輸入數(shù)據(jù)的時間,抄錄結(jié)果,并且為了保證計算準(zhǔn)確,我們需要進(jìn)行驗算。嗯,這樣估算時間的權(quán)威性恐怕不如例子1那樣令人信服了,而且我們經(jīng)常需要因為算錯而重新計算,超時恐怕很難會避免。
例子3:請大家按照我的引言,結(jié)合自己的項目實踐,重新寫一篇吧。
嚯!如果誰能準(zhǔn)確估算這個時間,就應(yīng)該是高手了??纯次覀?yōu)榱送瓿衫?需要我們作多少事情吧:制定寫作提綱,勾畫寫作內(nèi)容,評估打字速度和每一個內(nèi)容的量…依我看,不用計算了,計算再多,這個工作的進(jìn)度依然會被拖延。
這三個例子有區(qū)別嗎?當(dāng)然有!例子1的估算方法大家都掌握,而且執(zhí)行過程中的變數(shù)最少,因為并不需要我們?nèi)プ鋈魏蔚奶剿鬟^程(猜某個字的五筆字型不算,至少我用微軟拼音)。例子2的不同點是解題的方法需要外部因素的介入,而且這個技術(shù)并不是每個人都掌握(或者記得),最重要的特點是每一個步驟我們都需要去估算它完成所需要的時間,如果我們已經(jīng)計算過一次了,當(dāng)然第二次就會估算的更準(zhǔn)確一些??墒乾F(xiàn)實生活中的項目很少會給你機會重新做一遍。
當(dāng)你完成項目之后,跟這個特定項目相關(guān)的各種方法也就失去了它的作用,它唯一的價值就是潛入你的記憶中,成為所謂的“項目經(jīng)驗”,而這個“經(jīng)驗”也常常會在下一個項目水土不服。相比而言,例子2好歹是一些看得見摸得著的動作,評估起來也會有一點依據(jù),而例子3則幾乎是一個純粹的大腦運動,要讓大家憑空組裝成一篇好看的文章,我看這個進(jìn)度要估算也太難了,誰知道為了一個內(nèi)容,我們要反復(fù)推敲甚至發(fā)呆多少時間呢?!
我們把話題拉回到篇首的五次為什么上來。軟件項目甚至其他項目能夠按時完成的最主要一點就是要做好“計劃”,能否規(guī)劃一個符合實際的項目計劃,是項目成敗最大的晴雨表。
要讓項目計劃貼近現(xiàn)實,首先我們需要把項目中所有的工作都羅列出來,然后把每一個步驟地工作進(jìn)行細(xì)分,以致細(xì)分到“原子級”,也就是不能再分的程度,從軟件項目來看,就是分到“文件”,分到“類”甚至分到“函數(shù)”級別。然后對這些“原子級別”的工作進(jìn)行評估時間,累計綜合,最后乘上一個系數(shù)(一般是2),就是最終項目所要花費的時間了
說起來容易,做起來難!光是要求把工作細(xì)分到原子級,就已經(jīng)足以讓一大批項目經(jīng)理當(dāng)場暈倒了。
我們再回來看例子2,如果解題的人忘記了這個求解的公式的話,前面估算的進(jìn)度是否需要調(diào)整呢?回答是肯定的。這樣的時間計算就需要考慮尋找資料的時間,只要找到公式,計算出結(jié)果就不是問題了,而找公式所花費的時間,在有通暢的網(wǎng)絡(luò)連接情況下,包括網(wǎng)絡(luò)搜索、詢問同事等等方法,一個小時足矣!
如果說光是找一個公式就需要額外的一個小時的話,把例子2的題目修改成計算“傅立葉”
變換(非編程計算)又需要多少時間呢?顯然跟解二元一次方程又不是一個數(shù)量級的工作了,我們除了尋找資料之外,大部分人還需要學(xué)習(xí),沒有高等數(shù)學(xué)基礎(chǔ)的人恐怕更需要加入“研究”了。
從例子2就可以總結(jié)出如下幾個現(xiàn)象:工作與工作之間可以有層次關(guān)系的,一個看似很簡單的工作,很可能會隱含著巨大的工作量,在某些先決條件沒有或者準(zhǔn)備不足的情況下尤其如此。要準(zhǔn)確估算一個工作所用的時間,首先我們就要把“折疊”起來的“工作樹”盡可能完全“展開”,其次就必須要遏制工作中的“學(xué)習(xí)”、“研究”甚至“查詢搜索”的工作量??傊?,在實際項目開展的時候,就要盡可能讓所有的工作都是單純的,可以預(yù)測的,并且盡可能排除那些不可控、不可靠的因素。
換句話說,項目的每一個工作與時間的關(guān)系都必須是“線性”的。如果實在不能排除“非線性”的工作,也必須在“可控”的范圍內(nèi),項目內(nèi)部不允許有“不可控”的“非線性”因素存在。
一句話: 腦筋動得越多,事情做得越慢!
到底項目中究竟有多少因素是屬于“不可控”呢?哪些又是屬于“可控”的?哪些屬于“線性”因素?要回答這個問題,我們首先來看一下我們目前的軟件開發(fā)方式和流程吧:
(一)接單簽訂合同
(二)需求調(diào)研、分析
(三)架構(gòu)設(shè)計、概要設(shè)計
(四)詳細(xì)設(shè)計
(五)編碼、測試
(六)交付、維護(hù)
大致六個步驟,其中三四五是和我們談得開發(fā)過程相關(guān)聯(lián)(其他部分我會在以后的系列文章中討論)。首先我們看第三點和第四點,他們統(tǒng)稱為“設(shè)計”,參考文獻(xiàn)2中給出的“設(shè)計”階段的目標(biāo)是解決四方面的問題:數(shù)據(jù)結(jié)構(gòu),軟件體系結(jié)構(gòu),過程細(xì)節(jié),接口性質(zhì)。
有經(jīng)驗的讀者我想已經(jīng)看出來了,傳統(tǒng)的“設(shè)計”所解決的問題,有相當(dāng)一部分應(yīng)該歸納為現(xiàn)在的“架構(gòu)”范圍內(nèi)。軟件架構(gòu)涉及的范圍主要包括如下:
(一)應(yīng)用程序的層次劃分(比如界面層,存儲層等),
(二)部分應(yīng)用程序模塊的劃分(比如初始化模塊,配置模塊,權(quán)限模塊等),
(三)部分應(yīng)用程序模塊的實現(xiàn)(權(quán)限、用戶、組織機構(gòu)管理等),
(四)函數(shù)庫的實現(xiàn),
(五)各模塊、層之間的相互關(guān)系和通訊機制,
(六)相關(guān)的部分?jǐn)?shù)據(jù)結(jié)構(gòu)定義。
如此可見,上文中的第三和第四點最重要和最基礎(chǔ)的工作基本就在“架構(gòu)”范圍內(nèi),剩下的工作,基本就是跟具體業(yè)務(wù)相關(guān)的了。
在上文的三個“xx設(shè)計”中,架構(gòu)設(shè)計的時間最難控制和估算,概要設(shè)計和詳細(xì)設(shè)計因為就是直接從需求條目演化而來,而且容易細(xì)化(以后我會有文章專門討論),所以雖然也是屬于“設(shè)計”這種“非線性”工作,但是“可控性”要比“架構(gòu)”強很多。從個人的項目維護(hù)經(jīng)驗來看,維護(hù)過程中產(chǎn)生的問題,有相當(dāng)一部分是因為用戶需求突破了原先架構(gòu)的能力所致,而正是這種問題,才是拖延時間最長,引起客戶反映最強烈,也是維護(hù)人員最痛苦最頭痛的問題。因此,“架構(gòu)設(shè)計”我把它歸類到“非線性”工作中,而且是“難點”工作。
我看到很多的公司軟件部門都叫做“研發(fā)部”,用英文說就是research and development的部門,但是我很少看到有公司把research和development分開做兩個部門的。這有什么關(guān)系呢?從上文我們可以看到,研究是一種非常耗費資源的工作,而且風(fēng)險(尤其是技術(shù)風(fēng)險)很大,很可能因為一個小技術(shù)難題不能突破而導(dǎo)致整個架構(gòu)推翻重來,而開發(fā)的風(fēng)險則要小得多,可控得多;另外一個大的區(qū)別就是研究并不直接創(chuàng)造價值,而開發(fā)則跟公司的收入密切相關(guān)。基于這兩個理由,就足夠把“研究”和“開發(fā)”完全分開成兩個部門了。其他當(dāng)然還有許多的區(qū)別,比如考核方式等。
分開之后的工作如何分配?很簡單,就是把“軟件架構(gòu)”和其他有難度的“非線性”工作統(tǒng)統(tǒng)交給高手云集的“研究”部門去做;具體項目相關(guān)的業(yè)務(wù)和實現(xiàn)(“線性”的工作)交由“開發(fā)”部門去做,因為他們對技術(shù)要求不高,而且成本較低。說到這里,我是不是在主張每一個公司都需要專人去“研究”技術(shù)呢?恰恰相反,我主張大部分公司都不需要設(shè)立“研究”部門,至少大部分公司不要去研制甚至試圖研制所謂“自己的”軟件架構(gòu)。因為軟件架構(gòu)相比具體業(yè)務(wù)有一定的獨立性,并沒有一種“特別適合”于某類業(yè)務(wù)的“軟件架構(gòu)”存在,即使有,它也是應(yīng)該經(jīng)過N個項目的M年考驗之后才會出現(xiàn)(N*M>10年)。我相信SAP會有這樣的架構(gòu),但是國內(nèi)公司基本不會有(也許有,但是請大家理解我的懷疑)。現(xiàn)在市面上有很多開源的架構(gòu)存在,選一個吧,然后去培訓(xùn)你的員工,不斷地培訓(xùn),指導(dǎo)他們能夠熟練地將這個架構(gòu)應(yīng)用到項目中去為止,即使這樣,你的總花費也還遠(yuǎn)遠(yuǎn)小于請一個“高手”開發(fā)一個失敗架構(gòu)的投入。
如何來選擇一個現(xiàn)成的架構(gòu)已經(jīng)不在文章討論范圍之內(nèi)了,因為我接下來要談的是“如何開發(fā)一個自己的架構(gòu)”,不過也不用慌,如果你的開發(fā)語言是java的話,那么恭喜你,很多好用的開源架構(gòu)都是java的,比如spring MVC,struts/webwork,tapestry;如果你用的是.net平臺,那么微軟已經(jīng)幫你做了一個淺層的封裝,或者干脆用.net的petshop或者Duwamish的架構(gòu)就可以了。(IT專家網(wǎng))
- 1局域網(wǎng)網(wǎng)絡(luò)管理技巧:如何控制局域網(wǎng)網(wǎng)絡(luò)流量
- 2吉林大學(xué)藝術(shù)生文化課輔導(dǎo)培訓(xùn)
- 3大陸民航參與調(diào)查臺灣墜機 22名大陸旅客遇難
- 4共享給了所有人去看報表數(shù)據(jù)為空 ,怎么回事呢?
- 5OA系統(tǒng)在辦公平臺上,工作流就好比是我們自己修筑于的一條條軌道
- 6如何人性化的管理企業(yè)員工?
- 7商家VS店家:誰是制度的破壞者
- 8影響服裝專賣店發(fā)展的因素有哪些?
- 9OA的終極目標(biāo)是什么呢?
- 10深圳2014年18局座被立案調(diào)查 立案數(shù)幾乎翻倍
- 11說到OA辦公系統(tǒng)的實用性,企業(yè)都是很重視這一點的
- 12 好的技術(shù)不一定能構(gòu)建好的OA產(chǎn)品
- 13統(tǒng)計局:進(jìn)一步改革完善勞動力調(diào)查
- 14多說一句,業(yè)績翻倍!你會嗎?
- 15史上最強的企業(yè)合理避稅秘籍:老板必須知道的稅務(wù)真相!​
- 16三星LG手機大戰(zhàn)全面升級
- 17【行業(yè)新聞】連鎖物流能力與服務(wù)質(zhì)量構(gòu)成要素及關(guān)系研究
- 18酒企玩經(jīng)銷商就是耍猴戲
- 19OA在企業(yè)應(yīng)用松耦合集成方面具有獨有的優(yōu)越性和先進(jìn)性
- 20CRM項目實施目標(biāo)及成功要素
- 21基于SFA(銷售自動化的)CRM如何成功
- 22被西方引入CRM概念傳至中國跨越了半個世紀(jì)的時間
- 23OA軟件必須由中文分別翻譯成各種語言來滿足部分企業(yè)需求
- 24【行業(yè)新聞】2013:SaaS持續(xù)火熱 在線CRM勢不可擋
- 25OA辦公系統(tǒng)有效跟蹤管理每臺汽車的使用狀況
- 26小米式營銷:“米粉經(jīng)濟(jì)學(xué)”揭秘
- 27龍華清湖學(xué)美容最好 龍華觀瀾尚美培訓(xùn)美容
- 28開啟洋河時代的七種武器
- 29IT角度解讀《企業(yè)內(nèi)部控制規(guī)范》
- 30調(diào)查顯示首次置業(yè)者購房活動依然活躍
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓