## 任務列表法
我們做任何事情都應該劃出任務列表,按照列表一項項去完成,這不是什么特別稀奇的工作方式。然而,很多人的問題在于,列出的問題列表不能達到完全窮盡,各自獨立。

### 完全窮盡是什么意思呢?
當我開始做事情的時候,如果不能把所有的事情窮盡,我列出的列表跟我做的事情是不完全等價的,這說明我們的工作行為非常混沌且不可視,哪怕是對自己。
有時,事情看起來在大面上窮盡了,但是做的時候,又會發現新的任務。那說明每一項任務的輸入和輸出沒有想清楚,因此每當發現有所欠缺,就需要輸入新的任務作為補充。于是任務列表就增加了,這也是一種沒有窮盡。
### 各自獨立是什么意思呢?
意味著,每一項任務都可以單獨做完,而不需要先做完其中一項任務,才能做另一項。 假如我有三項任務:任務1、任務2、任務3。
我做的時候,必須把任務2做完,任務1才能做完;任務3做完,任務2才能做完。結果我就從任務1開始一路做到任務3,最后再逐步回到任務1,整個過程非常混亂,那就不是各自獨立的。
在現實生活中想做到各項任務都獨立,挑戰還是比較大的,但是在編程的世界里就輕松多了。優秀的設計都是要求解耦的,如果做不到,基本等于活兒比較爛。

當我們做到“任務的完全窮盡與各自獨立”之后,我們的任務列表法才算達標,這之后才能高效的工作,然而達到這一點并不是一蹴而就的,沒有誰可以一上來就做到任務劃分的完全窮盡、各自獨立,需要不停的刻意練習。所以我們稱之為編程的精進之法。