1. 每天有24小時。所謂的「今天之內」,是指到明天早上為止。
! R1 O. J/ C7 d5 @2. 程式不會照自己所想的跑。只會照所寫的跑。
- g! b0 C! |2 e6 T2 a0 e3 l3. 需求規格在程式寫完後才會敲定。基本規格要客戶看到成品後才會決定。詳細規格要使用者用過後才會確定。
& N3 v* z0 ^* f. ^' v4. 我對軟體設計的方式導出的結論,有兩種方式。 一是把軟體設計得單純到很明顯不會有缺陷,不然就是把軟體設計得複雜到沒有明顯的缺陷。
, f3 G% {; M$ g' L; |5. 程式碼不要在開發現場寫! 去客戶那寫!除錯不要在期限前做! 上線後再做!8 |6 e. d3 S" I N0 u, s: A
6. 先說「沒辦法」的人贏。6 X2 v ]2 y9 K5 f& s
7. 有意見的話你寫
/ t2 v }$ z: S" `" q8. 要殺一個程式設計師不需要刀,改三次規格就好8 B; i4 p1 B5 x3 w
9. 首先要先懷疑別人,被懷疑的人或許會把問題解決掉。(註:通常會「先懷疑自己」)
6 x* _2 e P/ c9 v/ \+ G10. 開發沒有終點。只有釋出(release)。
- P& N( T3 v# e11. 無論規格多晚才能確定,結案期限永遠不會變。這是所謂的「期限守恆定理」。
/ O% Q7 m$ |3 z6 R% }12. 客戶總是覺得水跟追加需求是不用錢的。
) ^8 _0 c* X0 C9 I13. 付錢愈計較的客人愈囉唆。+ `) U$ {# G6 o& R3 S2 Z
14. 在排定開發行程時,總是視而不見一些連小學生都會的算數。業務部門總是一堆不知道1+1=2的人。
; F% u0 A# H$ i1 d15. 一個人掛了大家都掛了。, `/ a k+ l) ]8 a4 m3 u% o
16. bug過了一晚可能就變成規格了。" U8 N1 _: f" ]2 ~
17. 好的規格找一個天才不如找三個凡人。爛的規格找一百個凡人不如找一個天才。
. Y w* O2 D2 x$ C) P9 H7 D0 L18. 客製軟體中30%的價格用在確認規格上。30%用在修改規格上。30%用在找bug。結果初期規格反映在價格上占的比例只有10%。
# I! D1 C" f2 f& i: W0 g) r: T: _19. 對客戶來說程式設計師的頭子是部下,程式設計師是家畜。對頭子來說客人是錢,對程式設計師來說顧客是看不見的病毒。除了弄完程式以外,沒有其他驅除的辦法。6 ~/ u1 ]. l1 U J; v: t
20. 顧客想受程式設計師的頭子喜歡,要自己了解到系統開發需要時間與金錢,早點確定規格。頭子想受顧客喜歡,則要讓程式設計師討厭自己。
4 ]5 ~5 N( a! s+ N0 o5 ]21. 很多頭子跟程式設計師都暗自想著有錢有閒的話什麼系統都想自己動手做,不過都沒這種機會。
7 G) ], n4 W! l1 f# h$ [22. 品質的劣化程度依規格改變的次數與規模而定。
; Z1 L0 b: G# Y0 Z. m; V23. 業務是認為空想能夠實現的夢想家。頭子則是深信任何障礙都能突破的冒險家。程式設計師則是被夢想家和冒險家拋到漆黑海裡的漂流者。; J Q, i, K* ^+ Z( d7 h
24. 畫面是藍色的!(國際太空站太空人重新安裝 Windows NT,日誌中的名句) ! Y4 T. y& i5 f" u
25. 有才能的程式設計師第一次看到設計細節時,要先理解程式的目的。接下來要設法讓頭子了解到以指定的方法、工時並無法完成這個工作。
$ r! Q3 B1 b& R26. 程式是運氣與直覺堆砌而成的奇蹟。若不具備這兩者,不可能以這樣的工時實現這樣的規格。修改規格是對奇蹟吐槽的褻瀆行為。而追加修改則是相信奇蹟還會重現的無謀行動。: I( {7 i6 M0 L2 p2 z/ U3 h3 ^
27. 程式設計師聽了「把自己當作顧客去著想!」而開始思考。啊,像夢一樣。
* S7 ^) j0 Z# A/ t& X% f( z' J28. 對於因為興趣而寫程式的人來說,所謂的技術是程式語言能力。對於因為工作而寫程式的人來說,所謂的技術是邏輯思考能力與人際溝通能力。 程式語言可以看著手冊溝通,客戶不行。* `6 d" U$ ^$ o
29. 程式系統在交貨之前會不斷縮小。先用元件定義取悅老闆。再拿經費概算要部長妥協現實的方案。在運用會議中,課長會嘗識減少自己責任範圍。在細節會議中,負責人會把範圍縮到自己記得的部分。- {4 }7 p4 r1 Z4 q
30. 頭子需要持久力,程式設計師需要爆發力。
2 y" C- ]8 b/ }: F Z( ?6 j" c31. 準時離開公司,工作會變多。
, R2 O# ~- Q, P, a S+ P32. 完美的程式需要完美的時間與金錢。聽說揮霍著美國的國家預算的NASA,也覺得時間跟錢不夠。8 W7 }/ B0 J) E& ~: x1 n
33. 詳細設計要在程式碼的註解裡做完。註解是唯一的自衛手段,至少要讓自己看懂。$ x' ?. i0 x- {1 z, G. s# W
34. 還有時間看程式碼的話就執行他。CPU跑得比腦細胞快。至少這時候可以休息。
- C( @0 t. w. M35. 程式的異常該稱為「bug」還是「規格上的限制」是看期限還剩多久決定的。
* m9 V- D& e2 Z1 L7 t+ l36. 所謂便服日,好像社會上把他叫做假日(註) 日本有些公司會有所謂便服日(不用穿西裝的日子),通常是星期五,但…* e- e/ e$ E$ d' |- q
37. 地獄持續一段時間後,充滿殺氣的怒吼會變多。再持續一段時間,說話會變少但牢騷會變多,壟罩在凝重的氣氛裡。再持續下去,反而會海闊天空,四周洋溢充滿活力的聲音。這種狀態稱為「Programmer’s High」,也是倒下來的人開始出現的時候。
7 Q8 Z& h- J' \9 Q38. 遠處的火災一定燒到這裡。
0 ]9 ~) D: N% e. ~39. 禱告,然後 “工作” 吧。(修道院的標語)
( e- M& [$ u0 H: B- `/ c! m* u6 x40. 程式不是用腦記的,要用身體記住。
( w. }4 _+ T: V& \+ L41. 明天能放假的話死了也罷。
- ?! P( I1 r) I$ _+ U42. 外面有下雨耶,昨天開始下的嗎?
4 k( m8 n: m1 N$ k1 `; i43. 心若不廢掉(消極),身體會廢掉。若不讓自己殘忍,自己會被殺。0 [+ U9 F- ?0 T9 ?4 \
44. 客戶會說謊,業務會作夢,頭子會做白日夢。程式設計師則惦惦。(愈來愈自言自語)3 l9 p# D O. W# k! L; n
45. 頭子總是不講理的(unreasonable)說「沒有辦不到(impossible)」,業務總是沒辦法(impossible)說「沒道理(unreasonable)」。
h8 Z3 T$ i. t h2 X, Y* L46. 規格書就像航海圖,客戶則是洋流。洋流陰晴不定,航海圖就變垃圾。程式設計師必須在沒有航海圖的海上憑自己的力量找到大陸。
! C3 ~7 e& j! \47. 再嘮嘮叨叨下去也是要付錢的。; K& N% I9 }+ Y* c2 u% J. m
48. 多想個10秒鐘,你可以不說「嗯,這個做得到」。$ u- Q9 V) g* K
49. 人是無法從別人失敗記取教訓的動物。砍成本、改規格、加需求、趕上線,從來沒有人從眾多失敗中記取教訓。
. f: a0 X* t' [: ?6 s1 I50. 老手用來提振精神的魔法格言:「不過比起以前來說算是…」 新人用來提起幹勁的魔法格言:「把這件工作做完的話…」他們還不知道工作是沒有終點的。 |