項目管理(一)任務分配

以前寫過一篇,不滿意,重寫以下:
程序員

 

管理通常說來,就三件事:管人,管事,還有管錢。而這三者其實又是聯繫起來的,好比,咱們能夠說:讓合適的人作合適的事,並給他合適的錢。那麼,問題就轉化爲:怎麼纔算「合適」呢?編碼

 

困境

 

有一些人的管理工做隨意散漫,但他們振振有詞,「管理是一門藝術」。我以爲,他們應該仔細區別一下,錯落有致和雜亂無章,簡約清爽和粗心大意……spa

 

或許他們還信奉權謀之道,用人嘛,「打個巴掌,給個棗吃」。你在用驢呢?稍微有點想法的就會不服,憑什麼打我一巴掌?稀罕你這顆棗子呢?把爺當傻子耍?去你媽的!.net

利益面前誰都不傻,靠陰謀算計當心思,只會形成管理者和被管理者之間的複雜博弈。簡單點說,就是勾心鬥角陽奉陰違。你覺得你在玩他,他其實悄悄在玩你,搞成了宮鬥權謀,一片烏煙瘴氣。項目管理

 

咱們從一個最簡單的例子提及。一件功能,交給張三去完成,給他三天時間。提早完成了有獎,超時罰錢扣工資。任務佈置得清晰明瞭,並且賞罰分明,是否是?管理就這麼簡單。開發

凡是這麼想的人,必定是沒有搞過管理工做的。文檔

中間可能出現的突發狀況太多了。三天事後,任務尚未完成。你火了,問爲何?一堆的理由:任務難度太大,工做量太多,李四不配合,理解錯了你的意思,中間出現了什麼突發狀況……反正都不是他的責任。他說得這麼有道理,你處罰試試看?沒過幾天你就孤家寡人光桿司令一個。因此,最可能的狀況是,問一下緣由,埋怨兩句,給他擦乾淨屁股,而後照樣稀裏糊塗的過日子吧!get

 

成竹在胸

 

上述管理者困境的一個重要緣由,就是管理者本身都不清楚:分配下去的任務,難度有多大,工做量有多少,可能出現的狀況有哪些……本身都是一本糊塗帳,怎麼可能管好別人?博客

咱們經常說管理人員要有威信。威信是怎麼創建起來的?工做起來要成竹在胸,而不是稀裏糊塗的把任務佈置下去以後,遇到問題一問三不知,瞎指揮窮折騰。這樣次數多了,下面的人天然不服,「聰明」點的就開始動心思糊弄了……自動化

 

話是這麼說,但具體到咱們軟件開發中的項目管理,成竹在胸就不那麼容易了。

 

以項目預算爲例,我歷來沒看到過一份清清爽爽的軟件項目預算表。

先看報價。都是作工程,好比建築工程,根據圖紙,材料人工,一項一項的清單報價,無論多大的工程,價格算出來都是精確到分的,好比1080732.76元;但軟件開發,合同能精確到百,都不錯了,通常都是20萬、 3500之類的,感受在價格就是隨口喊出來的同樣。

再說工期。建築工程,誤了工期,時間稍微長一點,違約金都賠不起。軟件開發,延期延期再延期,纔是常態,是吧?即便勉強交貨,那都是蒙人的,裏面bug一大堆,先交了貨,再慢慢「維護」吧!

 

想來主要有兩點緣由:
  1. 開發工做自己是一種創造性勞動。不像流水線上的工人擰螺絲釘,或者建築工地上的工人砌牆搬磚,都是重複性勞動。雖然咱們不少同窗自嘲其工做爲搬磚,但咱們搬磚過來以後仍是要砌成不一樣形狀花樣的,而不是千遍一概的一堵牆。因此,不少問題,只能在開發過程當中纔會暴露出來,解決的難度工做量都是一個未知數。
  2. 不斷的需求變動。這個就很少說了,你們都懂的。

因此項目負責人對項目的細節沒有切實的把控,只能憑着「經驗」或者「想象」來大體的「估算」項目的工做量。而事實證實,這種估算是至關不靠譜的。


切分

 

處理一個複雜的事物,最經常使用的手段,就是把他切分紅一個一個簡單的部分。針對項目管理而言,咱們推薦的,就是作任務切分。

 

這實際上是一個必須得作的工做!區別只在於你是主動仍是被動,是認認真真仍是敷衍了事的在作。別說是一個團隊,必須得分工配合;就算是你一個開發,先作什麼再作什麼,你內心也得有個數吧?

只是不多有人專門花時間和精力,有意識的來作這件事。由於咱們對於項目管理中「計劃安排」的理解還不夠深入。

 

根據個人項目實踐經驗,深刻細緻的任務切分,可以幫助咱們:

  1. 真正的釐清需求。在「切」任務的過程當中,之前朦朦朧朧的概念,纔會一點點的清晰起來。
  2. 可以「糾錯」。清晰事後,一些疏漏錯誤也就天然而然的暴露出來了。就應該相應的調整進度計劃等。
  3. 合理的安排人手。團隊中每一個人的水平都是良莠不齊的。任務切分以後,簡單的重複性工做分配給新手,複雜的有挑戰性的給大神,你們都滿意,開發成本也能隨之下降。但若是沒有有效切分,難的和簡單的混在一塊兒,是區分不出來的。
  4. 對開發人員有指導做用。我用的都不是高手大牛,但他們新人也能夠順着這個路子一步一步的作下去,至少其中一些簡單的部分能夠作起來,複雜的幫幫忙就好了。

總之,切分完任務,對這個項目,基本上就心中有數啦。若是說「管理藝術」,遊刃有餘的分配安排任務,像庖丁解牛同樣,「以無厚入有間」遊刃有餘,這才能給人一種愉快的藝術享受!

 

精細化

 

我極力主張:把任務要切分到儘可能小的的粒度,好比一個任務20分鐘左右,最多不超過60分鐘。固然,不少同窗擔憂這樣作的成本過高,是否是項目經理一天到晚就切任務去了,不用幹別的了?

這是一個值得討論的問題。粒度越細,可控性越高;可是也要考慮成本,過猶不及。這個應該是根據項目具體狀況,靈活掌握。

 

這裏我只分享一下個人一個變通處理實踐:你也可讓開發人員本身進行任務切分,你在任務驗收時同時覈查任務的難度、工做量等。(若是你須要考覈的話,由於這時候代碼都已經提交review了,算是水落石出,作複覈工做量其實不多了,因此開發人員通常也不會亂來

但這裏有一個小問題,就是開發人員開始可能會抵觸這種作法。他們會認爲切 分任務和寫文檔、寫註釋、寫日報週報同樣,是無用的工做。

道理固然要講,但最好仍是事實說話。

我隨你的便,但只有一個要求, 你先把你要花多少時間告訴我。他說行,好比一個功能點,他信心滿滿的說,「2小時夠了」。結果夠個屁!哈哈,他兩天都搞不出來。我就要找他說爲何了呀?東一榔頭西一棒,他怎麼說得清楚?焦頭爛額以後,他本身去體會。多嘗試幾回以後,外加他技術水平的逐步提升(切任務不是個簡單活,很考功力的),最後他也養成了習慣:敲代碼以前,先切任務。其實這就是一個理思路的過程,哪怕是純coding,作以前思路清晰了,也能事半功倍。「磨刀不誤砍柴工」,說的就是這個道理。


應對變化

 

有人以爲這樣作不值得。你辛辛苦苦的分任務,作計劃,需求變了呢?或者出現了其餘狀況呢?計劃是否是就白費了?越完善詳盡的計劃越不可能實現……

 

這些倒都是經驗之談。現實確實如此,「計劃永遠沒有變化快」!可是不是就能夠證實,咱們不須要計劃了呢?讓咱們靜下心來仔細分析一下。

 

首先,不管如何,首先確定要有一個計劃。公司要籤合同要有金額工期,項目經理要報項目安排,程序員也要在deadline以前完成手頭的工做……不管你願不肯意,這是一個客觀要求,很難逃避的東西,是否是?

 

那麼,爲何咱們不少人提起計劃就頭痛,特別反感計劃呢?我以爲,很大一個緣由是由於:計劃被濫用。

好比被要求寫這些日計劃周計劃月計劃,寫的時候就不情願,感受畫蛇添足;更況且要是沒能按計劃完成,還要被要求說爲何!太多爲何了,怎麼說得完?真要說呢,又會被批評「爲失敗找藉口」,煩死啦!因此就作個假計劃大計劃空計劃之類的東西敷衍一下完事……

這種作法有幾個問題:

  1. 僵化的看待計劃。管理者認爲計劃一旦指定,就一成不變的、必須絲絲入扣的完成;甚至把計劃當成了監督鞭策員工努力工做的東西。這確定是行不通的,其實,既然是計劃,就意味着它尚未被實現;須要制定計劃,就說明實現是有不肯定性的。很肯定性的東西,好比明天早上8點鐘我要到公司上班,這種事情根本不須要計劃;下週我要去海南島環島遊,歷來沒去過,可能有不少突發狀況,這才須要計劃!這個計劃就可能受天氣、本身的身體情況等一系列的因素影響而沒法百分百實現;但不管有無突發狀況,我有機會確定比沒計劃強。爲何就你們本身想想吧?
  2. 計劃制定者指定不當。讓能力通常的底層工做者指定計劃,實在是有 些強人所難。計劃不是那麼好制定的,讓你制定一個攀登珠穆朗瑪峯的計劃靠譜麼?雖說coding是程序員的工做,但他們不少時候,編碼仍是在摸着石頭過 河,走一步看一步而已。因此,制定計劃這種走一步看三步的工做,仍是項目經理,或者經驗豐富的程序員來作更貼切一些。

 

因此,咱們必須明白:計劃制定出來,就是被破壞的。計劃沒能按預期執行,並不說明他們沒有用。實際狀況發生了變化,計劃就應該相應的調整;但這種調整應該是有序的可控的,而不是胡亂的調整。有序的調整可以最終保證大任務的順利完成;而無序的調整,只會把事情搞得一團糟。怎麼樣纔可以有序?仍是要有計劃!一份計劃,就像一張圖紙同樣,出了狀況,鋪開圖紙,圈出出相應的部分,結合周圍的狀況,考慮一個妥善的解決的辦法……而不是一堆人你一句我一句,天馬行空,公說公有理婆說婆有理,亂哄哄的不可開交。

 

任務管理系統就可以幫助咱們及時迅速的應對各類變化。除了能夠提供自動化的統計分析之外,更由於項目已經被有效的切分

若是你的計劃是一個不可分割的總體,犬牙交錯,牽一髮而動全身的那種,那麼固然,每一次改動必然都是一次傷筋動骨的大折騰。

但經過良好組織的任務切分,改動就能夠被有效的對應到相應的計劃部分。這時候,每一次的改動就是一個局部的改動, 是很是容易被從新計量評估的。好比,某次改動,會影響原任務3098-4012,原任務3876-3879,任務量共計480分鐘;改動新增任務 5678-5894,任務量共計300分鐘;因此任務總量減小180分鐘,很是清晰。

 

結論

 

總之,任務的切分/分配能幫助項目管理人員深刻的瞭解項目,並在此基礎上合理的計劃安排開發工做,應對項目實施中的各類變化,是任務管理系統的基石。

 

++++++++++++++++++++

哇塞,寫得好苦啊!最難產的一篇博客!

相關文章
相關標籤/搜索