[一.奠定基礎(chǔ)]
1. 任何不能改善產(chǎn)品的工作,都是浪費(fèi)時(shí)間或是偏離方向。
2. 領(lǐng)導(dǎo)者的任務(wù)是努力消除程序設(shè)計(jì)師工作上的一切障礙,讓程序設(shè)計(jì)師全力專注在真正重要的工作─改善產(chǎn)品。
3. 千萬(wàn)不要把程序設(shè)計(jì)師的時(shí)間浪費(fèi)在改善產(chǎn)品以外的工作上。
4. 永遠(yuǎn)記得自己真正的目標(biāo),然后讓團(tuán)隊(duì)用最有效又最愉快的方法把它完成。
5. 理清詳細(xì)的項(xiàng)目目標(biāo),可以避免在不必要的工作上浪費(fèi)時(shí)間。
6. 不要因?yàn)橹贫繕?biāo)需要花很多時(shí)間,或是別人都沒有做,就省略了目標(biāo)的制定。制定明確詳盡的目標(biāo)所花的時(shí)間,絕對(duì)會(huì)讓團(tuán)隊(duì)得到更大的好處。
7. 事前決定最合適的優(yōu)先考慮順序,以及各考慮點(diǎn)的質(zhì)量規(guī)范,能夠指引開發(fā)團(tuán)隊(duì)的工作。
[二.策略性的作業(yè)方式]
8. 錯(cuò)蟲愈晚清除,時(shí)間花得愈多。畢竟,您得知道程序是怎么寫的,才能判斷那里出了錯(cuò)蟲;剛寫完的程序記憶猶新,一年前寫的程序可能早就忘了。
9. 在開發(fā)的過(guò)程就立即除蟲,可以讓您早些學(xué)到經(jīng)驗(yàn),然后就不會(huì)再犯同樣的錯(cuò)誤;相反地,如果到了項(xiàng)目后期才發(fā)現(xiàn),您可能已經(jīng)犯過(guò)多次同樣的錯(cuò)誤而不自知。
10. 發(fā)現(xiàn)錯(cuò)蟲而立即除錯(cuò)是一種緩沖器,提醒那些講求快速而不夠謹(jǐn)慎的程序設(shè)計(jì)師,以后多加小心。如果您堅(jiān)持錯(cuò)蟲全都清除了才能開發(fā)新的功能,就可以防止所有的程序處于半完成狀態(tài),因?yàn)殄e(cuò)蟲太多而使項(xiàng)目延誤乃至無(wú)法推出;相反地,如果您允許錯(cuò)蟲的存在,等于是埋下了項(xiàng)目失控的地雷,最后看似完成的項(xiàng)目,其實(shí)已經(jīng)失控。
11. 若能保持沒有任何錯(cuò)蟲,您就能比較準(zhǔn)確估出項(xiàng)目的完成時(shí)間。不必猜測(cè)3 2項(xiàng)功能和1 742個(gè)錯(cuò)蟲共要花費(fèi)多少時(shí)間,只要估算3 2項(xiàng)功能的工作時(shí)間就行了。更重要的時(shí),萬(wàn)一到時(shí)候有些功能做不完,您可以做多少算多少,因?yàn)檐浖恢北3衷跓o(wú)錯(cuò)誤狀態(tài)。
12. 不要把策略性工作方式當(dāng)作訓(xùn)練的教條,應(yīng)該向組員解釋這些工作方式的內(nèi)涵與用意。
13. 提出精確詳盡的問題,可以引導(dǎo)出真正有效的策略性工作方式,幫助項(xiàng)目目標(biāo)順利完成。
14. 策略不是死的定律,要把它當(dāng)作指導(dǎo)原則來(lái)活用。大部分的時(shí)候都應(yīng)該遵循,但也有例外的時(shí)候。
[三.保持進(jìn)度]
15. 定期暫停手邊的工作,然后往前思考,隨時(shí)做必要的修正,以避免未來(lái)的大障礙。
16. 有什么事情是我今天能做,而且可以幫助項(xiàng)目在未來(lái)幾個(gè)月內(nèi)順利進(jìn)行的?
17. 不要浪費(fèi)時(shí)間在錯(cuò)誤的問題上,一定要先確定真正的問題在哪里,然后才去改正它。
18. 人們開口要求的東西未必是他真正想要的。處理他的要求之前,請(qǐng)務(wù)必確定他究竟想要做什么。
19. 絕對(duì)不要答應(yīng)別人自己做不到的事情,這樣對(duì)雙方都有益無(wú)害。
20. 不要為了討好別人而傷害雙方的工作進(jìn)程,您永遠(yuǎn)要根據(jù)自己的目標(biāo),做適當(dāng)?shù)臎Q策。
21. 是您在為項(xiàng)目負(fù)責(zé)。不要讓任何人的建議阻礙項(xiàng)目的進(jìn)行,包括上級(jí)的建議。
22. 天下沒有真正免費(fèi)的軟件
23. 應(yīng)該開發(fā)策略上具有重要性的功能,而不是把媒體的評(píng)比項(xiàng)目都做齊全。
24. 軟件產(chǎn)品的開發(fā),不能只為了有趣、挑戰(zhàn)性,或是夠有個(gè)性夠令人眩目。
25. 不要把時(shí)間浪費(fèi)在無(wú)法改善產(chǎn)品的工作上,即使這么做在將來(lái)會(huì)有潛在的利益,也要與現(xiàn)在投入的時(shí)間成本做個(gè)衡量。
[四.走向極端的狂熱]
26. 確定您所要求的報(bào)告真的值得屬下暫停工作,花那么多時(shí)間去寫。
27. 利用項(xiàng)目檢查報(bào)告來(lái)改進(jìn)軟件開發(fā)的工作程序。為了使報(bào)告發(fā)生作用,報(bào)告中必須確實(shí)描述我們這次解決問題的每一個(gè)詳細(xì)步驟,以及將來(lái)應(yīng)該如何運(yùn)用這項(xiàng)新發(fā)現(xiàn)。
28. 請(qǐng)注意定期會(huì)議的價(jià)值,確定它值得每個(gè)人放下手上的工作。
29. 召開任何會(huì)議之前,請(qǐng)確定本次會(huì)議的目的是什么,達(dá)成這個(gè)目的的條件是什么,然后,務(wù)必達(dá)到開會(huì)的目的。
30. 試著排除不必要的后續(xù)工作。
[五.進(jìn)度狂]
31. 不要利用進(jìn)程表來(lái)驅(qū)使項(xiàng)目的進(jìn)行,這對(duì)小組的士氣傷害太大了。
32. 讓日程表維持適度的緊迫,但又是可以做到的,好讓組員振奮、不松懈,專心致力于項(xiàng)目的推進(jìn)。
33. 絕對(duì)不要草率定出不可能的期限,導(dǎo)致組員為了趕進(jìn)度而損害產(chǎn)品的質(zhì)量。
34. 把長(zhǎng)期的大項(xiàng)目,分成幾個(gè)完整而獨(dú)立的小項(xiàng)目,各小項(xiàng)目必須有一個(gè)主題。
35. 為了保持創(chuàng)意的活力和團(tuán)隊(duì)士氣,必須讓每一個(gè)小項(xiàng)目都有令人興奮的結(jié)果。
36. 產(chǎn)品的質(zhì)量遠(yuǎn)比遵守期限重要.
[六.學(xué)無(wú)止境]
37. 不要讓程序設(shè)計(jì)師的學(xué)習(xí)停滯不前,要讓程序設(shè)計(jì)師有機(jī)會(huì)磨練不同領(lǐng)域的技術(shù),培養(yǎng)十八般武藝樣樣精通的組員。
38. 訓(xùn)練新進(jìn)程序設(shè)計(jì)師時(shí),先培養(yǎng)他對(duì)整個(gè)公司所有項(xiàng)目都有價(jià)值的技術(shù),然后才培養(yǎng)本項(xiàng)目獨(dú)有的技術(shù)。
39. 不要舍不得放您最優(yōu)秀的程序設(shè)計(jì)師到別的項(xiàng)目去。如果他在您的項(xiàng)目已經(jīng)沒有新的東西可學(xué),為了公司和他個(gè)人的前途,您應(yīng)該把他推薦到別的項(xiàng)目,讓他的成長(zhǎng)永不間斷。
40. 確定每位組員、每?jī)蓚€(gè)月都有一項(xiàng)技術(shù)上進(jìn)步。
41. 一發(fā)現(xiàn)某處需要改進(jìn),就立即采取更正的行動(dòng)。
42.不要用年終考評(píng)來(lái)訂立學(xué)習(xí)目標(biāo),要利用年終考評(píng)來(lái)記錄個(gè)人的成長(zhǎng)。
43. 絕對(duì)不要讓組員一直做同樣的工作,這樣是限制了他的學(xué)習(xí),使他停滯在原來(lái)的領(lǐng)
域。一旦程序設(shè)計(jì)師精通了某一個(gè)領(lǐng)域,就讓他換別的領(lǐng)域做做看,永遠(yuǎn)讓他們學(xué)習(xí)新的技術(shù)。
44. 各種技術(shù)的用途范圍有所不同,有的技術(shù)在一般的項(xiàng)目都用得上,有的技術(shù)只有在特定性質(zhì)的項(xiàng)目才用得上。當(dāng)您訓(xùn)練您的組員時(shí),必須讓他們的技術(shù)能在公司發(fā)揮最大的用處,最好的辦法就是,把應(yīng)用范圍最廣的技術(shù)放在訓(xùn)練的最前期,應(yīng)用范圍最小的技術(shù)放在最后訓(xùn)練。
45. 優(yōu)秀的程序設(shè)計(jì)師是項(xiàng)目經(jīng)理最需要的,所以經(jīng)理們通常舍不得讓自己手下功力最強(qiáng)的人到別組去,但是如果這位第一高手在本組內(nèi)再也沒有新東西可學(xué)時(shí),經(jīng)理就應(yīng)該讓他到別的項(xiàng)目去,一方面他個(gè)人可以重新開始另一次的成長(zhǎng),一方面讓接替他的人學(xué)著承擔(dān)重要的工作,最后公司的平均程序技術(shù)水準(zhǔn)因而提升,對(duì)大家都很有好處。
46. 為了確保每位程序設(shè)計(jì)師的技術(shù)都在穩(wěn)定地進(jìn)步,一定要讓每個(gè)人有個(gè)努力的目標(biāo),最好的方法是把個(gè)人的成長(zhǎng)和項(xiàng)目每?jī)蓚€(gè)月的階段性目標(biāo)相結(jié)合,這樣一年就有至少六次的進(jìn)步了。假定一位組員在公司待了五年,那么他就學(xué)了3 0種新技術(shù)、或是讀了3 0本好書、或是1 5項(xiàng)技術(shù)加1 5本書,對(duì)他的工作能力影響多大啊。
47. 最好的成長(zhǎng)目標(biāo)是出于當(dāng)時(shí)的需要。如果您發(fā)現(xiàn)有位組員工作缺乏效率,或總是在犯同樣的錯(cuò)誤,最好抓住機(jī)會(huì)立即為他立一個(gè)目標(biāo),并且要求他立刻開始改進(jìn)。這種當(dāng)時(shí)設(shè)立的目標(biāo)讓人印象深刻,又是馬上尋求改善,效果通常會(huì)非常好。比起年終考評(píng)那種模模糊糊的建議,更能引起程序設(shè)計(jì)師的重視。
[七.態(tài)度問題]
48. 要讓每一位程序設(shè)計(jì)師都明白,寫出零錯(cuò)誤程序是很不容易的,所以應(yīng)該多花功夫用各種方法做最徹底的測(cè)試。
49. 糾正程序設(shè)計(jì)師以為加除錯(cuò)碼會(huì)花太多時(shí)間的觀念,應(yīng)該訓(xùn)練程序設(shè)計(jì)師第一個(gè)反應(yīng)是考慮加上除錯(cuò)碼是否有道理,第二是考慮加除錯(cuò)碼是否符合項(xiàng)目的目標(biāo)與工作的優(yōu)先級(jí)。
50. 當(dāng)某人說(shuō)“某件事不可能做到”時(shí),他往往是錯(cuò)的。
51. 不要讓凡事不能的態(tài)度阻礙了創(chuàng)新。
52. 使用者和程序的撰寫者一樣關(guān)心速度和品質(zhì)的問題。
53. 不要讓程序設(shè)計(jì)師以為使用者并不在乎軟件的質(zhì)量。
54. 不要給使用者次品,寧愿延期交貨,務(wù)必追求質(zhì)量完美。
55. 程序設(shè)計(jì)師必須經(jīng)常以使用者的觀點(diǎn)來(lái)看自己寫的程序,程序設(shè)計(jì)師必須能體會(huì)使用者的感受。
56. 在包裝盒里的每一件東西,都是產(chǎn)品的一部分。
57. 將程序的重用性當(dāng)作優(yōu)先考慮的目標(biāo)之一,否則程序設(shè)計(jì)師將經(jīng)常做重復(fù)的工作。
58. 充分利用現(xiàn)有資源或創(chuàng)造新資源,以便從每一項(xiàng)工作中獲得更大的價(jià)值。程序代碼的再利用,就是很好的例子,當(dāng)然,還有其他的地方可以運(yùn)用“杠桿原理”。
59. 如果您創(chuàng)造了一項(xiàng)資源,并且讓別人知道,那么總有一天會(huì)派上用場(chǎng)。
60. 從您的每件工作中創(chuàng)造最大的資源,不管是利用現(xiàn)有的杠桿,或是創(chuàng)造新的杠桿。
61. 小心那種“太難了”、“太花時(shí)間”或是“太麻煩”的反射性反應(yīng)。當(dāng)您遇到別人有這種反應(yīng),請(qǐng)先問自己他有沒有認(rèn)真思考過(guò)這件事的重要性、以及是否符合項(xiàng)目目標(biāo),如果您認(rèn)為他其實(shí)未經(jīng)深思熟慮,只是直覺的反應(yīng),那您就應(yīng)該把您的想法告訴他,請(qǐng)他重新評(píng)估,也許就會(huì)有公平的答案。
62. 人們遇到經(jīng)驗(yàn)范圍之外的事情,多少有恐懼感,就會(huì)認(rèn)為“這完全不可能”而強(qiáng)烈反對(duì)。試著消除這種習(xí)慣性的反應(yīng),設(shè)法給組員灌輸“只要花時(shí)間想想看,大部分的事情都做得到”的觀念。您不妨以這個(gè)問題來(lái)對(duì)付那種“凡事不能”的態(tài)度:“我了解這是做不到的,但是‘如果’做得到,那你會(huì)怎么做?”然后您就會(huì)發(fā)現(xiàn)驚人的轉(zhuǎn)變,您馬上就會(huì)聽到組員七嘴八舌地說(shuō)應(yīng)該這樣做、那樣做,說(shuō)的是他們剛剛堅(jiān)持做不到的事情。這個(gè)“如果”把他們帶離直覺的反應(yīng),帶到全新的思考模式,這才是他們應(yīng)該做的。
63. 把使用者當(dāng)作什么都不懂的外行人,是非常不好的觀念。每當(dāng)您發(fā)現(xiàn)有人表露出這種心理,一定要立即糾正,提醒他們使用者才是真正受產(chǎn)品好壞影響最深的人,他們和程序設(shè)計(jì)師一樣關(guān)心軟件的執(zhí)行速度和質(zhì)量。
64. 杠桿原理是您最有用的觀念,找到您工作中的杠桿,您可以為小組、項(xiàng)目、公司、甚至軟件業(yè)創(chuàng)造無(wú)可限量的價(jià)值。無(wú)論如何,盡量利用資源并創(chuàng)造資源,這個(gè)原則是絕對(duì)錯(cuò)不了的。在您寫程序的時(shí)候注意程序代碼的共享性、訓(xùn)練組員的時(shí)候注意到他對(duì)公司的價(jià)值,即使是像函數(shù)命名這種小事,都有杠桿的存在。不管做任何事,都要想到“善用資源”,為未來(lái)做好準(zhǔn)備。
[八.沉船的感覺]
65. 如果進(jìn)度發(fā)生落后,那表示有個(gè)地方出錯(cuò)了。您應(yīng)該找出問題,并加以解決,不要一味要求組員加班,在問題沒有解決之前,加班是沒有用的。
66. 別誤信加班等于增加生產(chǎn)能力,長(zhǎng)期的加班只會(huì)傷害生產(chǎn)能力,對(duì)項(xiàng)目沒有幫助。
67. 周末是屬于組員私人的時(shí)間,不是公司的。公司不應(yīng)該以打敗競(jìng)爭(zhēng)對(duì)手為理由,要求員工周末加班。
68. 強(qiáng)調(diào)思考的重要性,而不是長(zhǎng)時(shí)間工作。
69. 訓(xùn)練開發(fā)小組懂得在正常工作時(shí)間內(nèi)掌握好工作的效率,不要讓他們超時(shí)工作,因?yàn)槌瑫r(shí)工作只是浪費(fèi)時(shí)間的假面具。
70. 與程序設(shè)計(jì)師共同研擬出一份每日活動(dòng)的時(shí)間表,把無(wú)法預(yù)期的臨時(shí)公務(wù)變成固定時(shí)間處理的事情,并且把程序開發(fā)的工作放在最優(yōu)先的地位,不要讓其他次要的事情干擾到寫程序。
71. 經(jīng)常加班就是項(xiàng)目出問題的明顯信號(hào),也許是因?yàn)橹鞴艿挠^念錯(cuò)誤或是目標(biāo)不夠清楚,不論是什么原因,項(xiàng)目經(jīng)理絕對(duì)不能忽視這種現(xiàn)象,要對(duì)這個(gè)問題正確處理,項(xiàng)目經(jīng)理必須協(xié)助組員在每周4 0小時(shí)的工作時(shí)間里,把事情做得更有效率。
72. 我經(jīng)常聽到高層主管稱贊組員每天為公司工作很長(zhǎng)的時(shí)間:“您對(duì)公司的貢獻(xiàn)值得嘉獎(jiǎng),做得很好!”這絕對(duì)是錯(cuò)誤的信息,員工應(yīng)該是因?yàn)楣ぷ髯龅煤枚艿椒Q贊,而不是因?yàn)樵谵k公室待得久,管理者不該把“生產(chǎn)效率”和“工作時(shí)間”混為一談,有的人也許可以用更少的時(shí)間,完成兩倍的工作呢。
73. 為了讓組員把辦公時(shí)間用在正確的地方,并提高部門的工作效率,項(xiàng)目經(jīng)理不但要為他們排除任何不必要的會(huì)議、報(bào)告和雜事,還要協(xié)助他們好好運(yùn)用寶貴的上班時(shí)間。您應(yīng)該協(xié)助組員安排適當(dāng)?shù)拿咳栈顒?dòng)表,用一些小技巧,讓組員有長(zhǎng)段又不受干擾的時(shí)間,適合進(jìn)行開發(fā)工作。
74. 如果您關(guān)心組員的生活,就不要讓他們把全部的時(shí)間都投入在工作。每天只要確定他們賣力工作了八小時(shí),就可以把他們趕出辦公室了,當(dāng)然這樣做也許會(huì)有老板看不順眼,但是如果您像我一樣相信均衡、健康的生活是一切創(chuàng)意的原動(dòng)力,就堅(jiān)持這份理念吧!
75. 每周工作4 0小時(shí)并不是金科玉律,只不過(guò)是美國(guó)的傳統(tǒng),而軟件開發(fā)項(xiàng)目大都以此為前提編定日程表。所以如果一個(gè)項(xiàng)目需要程序設(shè)計(jì)師每周工作40 小時(shí)以上才能趕上進(jìn)度,就表示有問題,也許是日程表定得太樂觀,也許是程序設(shè)計(jì)師需要再訓(xùn)練。不管怎么說(shuō),這個(gè)問題一定要認(rèn)真解決,絕對(duì)不應(yīng)該讓程序設(shè)計(jì)師加班來(lái)彌補(bǔ)這個(gè)漏洞。