淺談如何建立實用的專案管理流程

我是程式設計師出身,除了軟體行業別的行業不太瞭解,其實軟體行業很多的做法和實踐都是從別的行業——例如建築業借鑑而來的。我們時常羨慕蓋茨爸爸,馬雲爸爸,馬化騰爸爸,甚至王欣大哥那個時代,一個人可以成就一個公司,可以成就一個經久不衰的軟體產品。但是隨著行業規模的不斷壯大,軟體行業再也不是英雄遍地的年代了,工種越來越細,組織結構越來越複雜。專案管理就受到了越來越多的重視。

但是,軟體行業中也走一些爭論。爭論的關鍵點是,人治還是法制。其實對於我的團隊與來說,從專案層面上我更偏向於用個人魅力和人性來管理團隊,但是從組織層面上來說,我還是偏向於使用制度和流程,一板一眼去組織管理流程,但是對於專案級的管理,可能專案負責人的軟技能就會起到關鍵的作用了,豐田公司有句話是這麼說的“Be hard on the process,but soft on the operators。”也是表達了這麼個道理。

其實對於我來說,這個觀點還有另外一種表述,意思就是過程和制度是必要的,但是從執行層面和體系的制定層面要儘量做到足夠的靈活,由人去控制流程,而不能讓流程去制約人。

每個組織的專案管理體系都是逐步建立起來的,回望我所在的公司,專案管理體系建立發展至今,大致上分為了三個階段:

在公司成立初期,因為會依託於集團的業務資訊化需求和一些客戶的資訊化需求,業務相對比較簡單,團隊規模還沒有超過10個人,基本上每個人都集專案經理、開發、測試、前端等多工種為一身。在專案過程中,大多數情況是1-2個人在一個專案上,也無所謂協作,有句話說的好“just do it”。在這個階段,不得不說,我們將每個人的能量發揮到了最大限度,也都很努力,每個人都很忙,最短時間交付,注重的是實現的結果,用最靈活的方法把業務實現。但是,由於是初創團隊,以及業務延展不穩定的特點,造成在軟體實現的過程中,有大量的不穩定需求的出現,造成的重複勞動,不斷推翻重做(注意,不是重構,就是重做),軟體質量也得不到保證。在我們看來,如果要要給這個階段命名一下的話,我認為相當於CMMI裡面定義的初始級的那個狀態。也就是說軟體過程是無序的,有時甚至是混亂的,對過程幾乎沒有定義,成功取決於個人努力。管理是反應式的。(引用自CMMI)。但是隨著業務規模和人員規模的不斷壯大,這種情況愈發的不可控制,所以,需要一定的規範、方法去保證軟體團隊的生產過程。

於是,我們主動走進了我們專案發展的第二個階段。我們首先規定了工程中的編碼規則和架構的規則,並且在人力行政的幫助下,進一步的劃分出各自負責的範圍。我們覺得我們需要一套相互配合的方法和原則,不然我們各工種之間的銜接會消耗很多成本和資源,並且越是分的清楚越是個很大的麻煩。但是另外一個問題又來了,沒有人能在短時間內,拍腦門制定出一套類似的規則出來。於是乎,我們就把手頭上的能獲取到的現有流程規範揉碎了重新組合了一下,就形成了公司研發體系及流程規範(一套)v0。1。看版本號大家就知道,一版非常非常不成熟的東西。在實際運作的過程中,在這個體系下,我們感受到了前所未有的糾結,因為是照搬的別人的已有過程,我們開始了漫長而痛苦的試錯——改造——再試錯——再改造的過程。在這個過程中,整個團隊的工作效率急轉直下,團隊士氣受到了沉重的打擊。這個時候,團隊中的幾個老傢伙起到的關鍵性的作用,於是我們堅持下來了。就像我前文表達的,在法制的過程中,在推進的最關鍵,或者說最困難的階段,人治的作用就凸顯了出來,並起到了穩定團隊、保障生產的關鍵作用。當我們的研發體系規範版本號到了v0。17的時候。我們發現,曾經出現的需求、質量、配合等等一系列問題,都不是那麼的突出了,或者說,都得到了不同程度的解決,我們意識到,是該給這個痛苦的過程畫上一個句號的時候了。於是我們做了最好一輪的調整,將版本號正式改為V1。0。至此,我們的專案管理體系流程算是初步建立了起來。雖然看起來和施起來沒有那麼的完美,但至少我們走出了這一步。這個狀態從CMMI的角度來說應該叫可管理級。也就是建立了基本的專案管理過程來跟蹤費用、進度和功能特性。制定了必要的過程紀律,能重複早先類似應用專案取得的成功經驗。(引用自CMMI)。但是隨著業務的發展,隊伍越來越大,人員越來越多,更多更復雜的問題又顯現出來了。

有句話這麼說的:專業的人幹專業的事,專業的工具幹專業的事,專業的職能幹專業的事。公司發展到了這個程度,在業務流轉和研發體系中出現了很多問題,於是,我們對職能進行了劃分。研發中心、使用者體驗、質量保證、產品規劃、技術運維、PMO。確立了以專案為中心的研發體系。從PMBOK的角度來說,形成了一個強矩陣的組織體系。那下面的工作就是基於專案體系下怎樣讓專案生產執行得更順暢,讓各個職能部門的人融入到專案體系中去。在人力發展部門的幫助下,基於原有的專案管理過程和體系,各職能部門編制了基於部門的執掌手冊,這個手冊的內容包含部門崗位成員的職責範圍、基本的工作流程和規範。首先在職能體系下對人有個一定的規範和梳理,剩下的就是在專案層面上了。我們將專案劃分了幾個基本的階段——立項、分析、研發、測試、上線、運維。對每個階段的參與者和相應職責做了詳細的規定。至此我們基本形成了研發體系建設v2。0的基本建設。

其實在建立專案管理流程和研發體系的整個過程中,我們也跟大多數的公司一樣,走了很多彎路,也遇到了許多的阻礙,甚至人員的流失。整個建立的過程其實就是發現問題-解決問題的過程,只不過有的問題在一些發展的階段中不是想象中的那麼好解決。 但是如果你的出發點都是本著組織優先的這麼個原則,我倒是不認為有什麼問題是解決不了的。在訂立這樣一套流程的初期,人的作用是起到關鍵因素的,相應的組織運轉效率也可能會大幅下降,但是經過一段時間的執行,相信會提升你組織的各項關鍵指標。