跳出任務管理的泥沼,擁抱甘特圖的懷抱

跳出任務管理的泥沼,擁抱甘特圖的懷抱

跳出任務管理的泥沼,擁抱甘特圖的懷抱

寫這篇文章,我不是要黑任何一個任務管理類的App或者方法論。相反,我是一個工具控,在試用各種任務管理類App上總是不遺餘力。常見的Things 3,Todoist,Teambition,Trello,Any.do,Doit.im我都試用過。最後,我選擇了Todoist,在Todoist上,我已經完成了1292個任務。如下圖所示。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

任務管理類App有什麼問題

Things3,Todoist爲首的任務管理App,核心功能就是記錄未完成的任務,勾掉已完成的任務。至於分類,標籤,自然語言識別之類的功能算是錦上添花。

他們有一個缺點,那就是你只知道一個任務沒有做,或者已經做完了。但是你不知道在一羣沒有完成的任務中,哪些是正在做的。(當然,你可以創建一個分類,叫做“正在做”,然後把正在做的任務放進這個分類中。)

而Teambition與Trello稍微進步一點,引入了看板的概念,於是能夠顯示任務在各個階段的狀態,如下圖所示。這張圖是少數派的Trello看板,用來讓作者選題。
跳出任務管理的泥沼,擁抱甘特圖的懷抱

在看板中,你可以知道哪些任務是計劃中,哪些任務是準備做,哪些是正在做,哪些是已經完成。然而這樣就夠了嗎?

看板比單純的To do list類應用進了一步,能夠關注任務的狀態了。但它們的侷限也在於次,因爲他們關注的,只是每一個任務。

做一個比喻,修汽車需要擰螺絲,組裝宜家的傢俱也需要擰螺絲。你如果只關注擰螺絲這個動作,那麼修汽車和組裝傢俱對你來說沒有區別。組裝宜家的傢俱,看一下說明書,一般人半個小時就搞定,但是你半個小時能學會修汽車嗎?

如果只使用任務管理類的工具,你就會陷入一個怪圈:你做了很多任務,但是你不知道你做這些任務是爲了什麼。任務管理類App適合用來記錄和追蹤各種瑣碎的任務和相關性不強的任務。就像是少數派的每一篇文章,文章與文章之間不是一個系列的關係,他們各自獨立,誰都可以領選題寫文章,哪個選題先寫哪個選題後寫,關係不大。

一旦要規劃一個項目,對於規劃項目的人和做項目的人,用任務管理類App都會讓人覺得使不上勁。對於做任務的人,看到每一個獨立的任務,對項目沒有整體的概念;對於規劃項目的人,不知道任務是不是已經切分得足夠細,是否有遺漏。

假設你把一個項目拆分成了100個子任務,兩週以後,你做完了其中的八十個子任務,請問你真的完成了這個項目80%的工作嗎?項目的完成度能夠單純用子任務的數量來衡量嗎?

如果你回答,項目的完成度,不能單純用子任務的數量來衡量。那麼繼續思考下一個問題,是不是有一些子任務,就是比別的任務重要呢?

如果你回答,確實有一些子任務比別的任務都重要。那麼繼續思考下一個問題,是不是最重要的子任務必需優先完成呢?

如果你回答,確實最重要的子任務必需優先完成。那麼繼續思考下一個問題,最重要的子任務要優先多少呢?能單純把最重要的子任務作爲第一個完成的任務嗎?它有前置任務嗎?如果必需先把前置任務做完,才能做這個最重要的子任務,那麼,是不是其實這個前置任務纔是最重要的子任務呢?如此說來,能夠單純用時間先後順序來標明任務的重要性嗎?先做的總是比後做的重要嗎?那如果這個先做的任務,它做完以後完全看不到產出,必需等後面的任務做完了才能看到效果,那麼到底是先做的任務重要還是後做的任務重要?

上面還只是一個人做多個任務的情況,現在如果把一個項目拆分成100個任務,分給ABCDE5個人做同時做。每個人都有一些任務可以單獨完成不依賴其他人。但是也有一些任務A依賴B的成果,B依賴C的成果,D可以幫B做一些工作,還有一些工作需要C和D要一起同時完成,還有一些工作,B和C可以先做一部分,剩下的一部分再一起完成……

好了,現在給你一個任務管理類的App,上面列了100個任務,其中有20個任務優先級最高,50個優先級一般,30個優先級低。你們五個人自己看着選任務做吧。兩週以後項目上線。

13天后:

B:C你的後臺接口怎麼還沒有寫好,我等着跟你聯合調試都等了三天了! D:糟糕,有一個任務忘記做了,現在這個代碼不能運行,等我把那邊的服務搭建好才能測試。 A:嘿嘿我完成了30個任務,獎金我拿定了。 C:D你早應該搭建服務的,你忘了我也要用嗎! ……

所以,單純用優先級來排任務,你覺得靠譜嗎?你不加班,誰來加班?

尋找解決辦法

使用腦圖拆分任務

有項目經驗的人,看到我上面舉得例子,肯定會不屑一顧——難道在規劃項目的時候就拿一張白紙,拍着腦袋想,這個項目需要做哪些工作,想到一個寫一個?這樣憑腦袋空想肯定會漏掉任務的。

用腦圖來規劃任務是一個不錯的主意,首先把項目拆分成幾個主要的組成模塊。然後首先看第一個模塊,又把它拆分成幾個子模塊。然後看第一個模塊的第一個子模塊,又拆分……第一個模塊拆分好了,再來看第二個模塊,把它又拆分成幾個子模塊……通過這樣深度優先的方式把所有任務都拆分到可以完成的程度。如下圖所示。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

腦圖解決了任務拆分的問題,使用腦圖來拆分任務,理論上確實不容易漏掉任務。那麼問題是,腦圖如何確定任務的依賴關係?如何確定每個任務的完成時間?項目進行了若干天以後,如何知道當前項目進度怎麼樣了?在某一天,如何讓所有人都一眼就知道,哪些任務沒有按時完成,哪些任務已經提前完成了?

使用時間軸確定進度

現在回到任務管理的App中。如果把所有待完成的任務全部都用一個Excel寫在第一列,然後在右側用不同的色塊標記任務從開始到結束的時間。那麼可以得到下面這一張圖。
跳出任務管理的泥沼,擁抱甘特圖的懷抱

其中,不同的顏色表示不同的人。每一行表示一個任務。從第二列開始,每一列表示一天。如果一個任務一天可以做完,就塗一個格子,如果需要三天才能做完,就塗三個格子。

這樣一來,通過這些色塊,就可以清楚地看到每個人需要做多少事情。例如B列,紫色這個人一天同時要做5個任務。但是這5個任務中有4個任務都是聯繫別的部門讓他們提供接口。那麼這四個任務應該可以很容易做完,於是可以放在一天完成。

又比如,紅色這個人,他做的任務很困難,所以兩個任務各要做三天。

又比如,綠色這個人,他先搭建ES系統。然後再搭建Kafka。任務的先後順序也就有了。

如果在某一天,想知道按計劃今天哪些人需要做哪些事,那麼直接看這一天對應的這一列就可以了。

壓縮,組合

用時間軸來表示任務的進度,可以更加直觀地讓人看到任務的進度。但前提是先把所有子任務確定好。也就是要先做一個腦圖,然後根據腦圖再做這個Excel。看任務的時候,要同時看兩張圖。

那有沒有辦法把這兩張圖合在一起呢?

實際上,腦圖本質上就是一個層次結構,層次結構也可以寫成大綱的形式,如下圖所示。
跳出任務管理的泥沼,擁抱甘特圖的懷抱

這個結構就可以放到Excel中了。如下圖所示。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

到目前爲止,你已經實現了一個簡化版的甘特圖了。

什麼是甘特圖

甘特圖是一張二維的圖表,它的橫軸是時間,縱軸是任務。從甘特圖上可以一目瞭然看到一個任務從什麼時候開始什麼時候結束,不同任務之間是否有時間重疊,以及哪些任務可以同時做哪些任務必需有先後順序。

我個人認爲,在項目管理中,任務週期是非常重要的,任務的開始時間和結束時間一定要把控好。使用甘特圖就可以實現這樣一個目的。

對於規劃任務的人,在用甘特圖規劃任務的時候,如果你發現一個任務時間太長,無論怎麼調整都會和後面的任務有重疊,那麼你就會發現這個任務可能需要拆分爲更小的任務。而且由於甘特圖立足於項目的整體,你也可以更容易發現是否有任務漏掉了。

對於做任務的人,甘特圖也可以幫他們瞭解到他們所做的任務在整個項目中處於一個什麼樣的位置,從而讓他們知道自己正在做的任務是不是非常重要必需按時完成。

如果你是要開發一個App,或者是要寫一本書,或者是要做一個其他什麼項目,只要它是由一系列不同的任務構成的,那麼你就可以考慮使用甘特圖來幫你提高效率。

下面這張圖就是甘特圖。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

  • 不同的顏色表示不同的人
  • 每一行表示一個任務
  • 紅色豎線表示今天應該完成的任務
  • 任務與任務之間的黑色箭頭表示任務之間的依賴關係,必需完成前面的才能完成後面的
  • 帶中心黑線的任務表示已經完成的任務
    通過這一張甘特圖,我能一眼看出以下信息:

今天誰應該做什麼任務
這個任務從什麼時候開始,到什麼時候結束
一個人在一段時間有哪些任務
應該先做哪些任務再做哪些任務
哪些任務可以同時做
這個任務是否被其他任務依賴,如果是,那麼這個任務就不能推遲,必需按時完成或者提前完成,否則會影響後面的任務
每個任務已經完成多少還剩多少
大任務下面有哪些子任務
任務的里程碑是什麼時候







爲什麼要用甘特圖

因爲爲了繪製出甘特圖,你必需強迫自己完成以下幾件事情:

確定每一個任務的開始時間和結束時間
確定任務的依賴關係
分離可以同時運行的任務
確定不同人的任務間的時間關係
當你根據以上的規則繪製好第一版甘特圖以後,你會發現有些地方是可以繼續調整的,但是這種調整,在你沒有畫圖之前是不能發現的。於是你會在調整甘特圖的過程中,讓項目的規劃越來越清晰。



怎麼做甘特圖

甘特圖是一種項目管理工具,你可以在紙上畫甘特圖,也可以在Excel中畫甘特圖,也可以使用專門的甘特圖軟件來做甘特圖。下面這張基於Excel的甘特圖來自網絡。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

這是使用Excel做出來的效果,但是做起來稍顯麻煩。

Omniplan和MS Project都是非常專業的甘特圖製作軟件,但是價格非常高。畢竟這是生產力軟件,使用這個軟件你是可以賺大錢的,自然軟件本身就會比較貴。

開源的甘特圖軟件也有不少,不過不是功能不全就是界面醜陋。這裏介紹一個相對比較完整的開源甘特圖製作軟件:GanttProject

GanttProject的官方網站爲http://www.ganttproject.biz/,在這裏你可以下載到macOS,Windows或者Linux版本的軟件。

GanttProject運行以後的界面如下圖所示。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

在左側任務面板右鍵或者按下鍵盤 Command + T就可以添加任務,Windows和Linux對應的快捷鍵爲 Ctrl + T。如下圖所示。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

創建好了一個任務,它默認的開始時間和結束時間都是今天。在任務上面右鍵,選擇 任務屬性,可以打開任務屬性設置界面,在這裏可以設置任務的開始時間和任務時長。但是你不能設置任務結束時間。因爲任務結束時間會根據開始時間和任務時長自動計算。如下圖所示。
跳出任務管理的泥沼,擁抱甘特圖的懷抱

在這個界面,還可以設置任務的顏色,實現不同人不同顏色,或者不同項目不同顏色。也可以在這裏更新任務進度。

創建多個任務,如果後面的任務依賴前面的任務,那麼在右側被依賴的任務色條上單擊鼠標左鍵,按住並拖動到依賴它的任務上。依賴它的任務的起始時間自動就會變爲被依賴任務的結束時間,如下圖所示。此時,後一個任務只能設置任務的時長,不能修改任務的起始時間。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

如果依賴關係設置錯誤,打開依賴任務的任務屬性,定位到 前置任務選項卡,在這裏可以刪除被依賴的任務或者修改被依賴任務。如下圖所示。

跳出任務管理的泥沼,擁抱甘特圖的懷抱

如果你需要移動任務的順序,鼠標單擊選中它,按下鍵盤上的 Alt + 方向鍵上或下即可移動任務。

我認爲甘特圖有一個非常重要的元素,就是豎直紅線,它指向了今天的任務。要打開這跟紅線,需要單擊菜單欄的 編輯- 設置,定位到 甘特圖設定,在 將今天顯示爲紅色點選爲 是,如下圖所示。
跳出任務管理的泥沼,擁抱甘特圖的懷抱

單擊確定回到甘特圖的界面,可以看到圖中出現了一條紅色豎線。這條豎線指向了今天應該做的事情。如下圖所示。
跳出任務管理的泥沼,擁抱甘特圖的懷抱
每天打開甘特圖,這根紅線都會指向當天。

GanttProject可以把做好的甘特圖導出爲圖片,CSV,HTML或者PDF文件。單擊 項目- 導出,點選 Raster圖像文件,並單擊 下一步,如下圖所示。
跳出任務管理的泥沼,擁抱甘特圖的懷抱

設置保存路徑和甘特圖的日期範圍即可導出爲PNG文件,以方便分享。

後記

我非常喜歡使用甘特圖來規劃我的工作。我的第一本書 《Python爬蟲開發 從入門到實戰》已經在京東、噹噹、亞馬遜上線。這本書的寫作過程就是我用甘特圖的最好實踐。因爲有了甘特圖,我才能控制好寫作過程中的每一個重要的時間節點,確保每一章都能夠按時交付,讓我能夠兼顧工作,寫書和自我成長。

甘特圖並不是爲了取代任務管理工具而存在的。甘特圖的目的是爲了規劃項目,並且讓你在項目的進行過程中知道自己處於什麼位置。

你需要時刻記得,低頭看任務管理工具,讓你知道自己正在做什麼。擡頭看甘特圖,讓你知道你將能夠做成什麼。

我創建了一個微信羣,用來交流各種效率工具和提高生產力的方法。有興趣的同學可以進來和大家一起探討。掃碼關注公衆號 未聞Code(或搜索ID:itskingname)回覆: 生產力即可獲得入羣方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章