2011年8月21日 星期日

《約耳續談軟體 探究軟體經營的根本實學》筆記


一.給電腦科系學生的建議

1.在畢業前學會寫作:試著多寫日誌或網誌

2.在畢業前學會C語言:C語言比起其他「現代」語言更貼近機器

3.在畢業前學會個體經濟學:讓你對商業的運作模式有些概念

4.不要因為非CS(Computer Science)的課無聊就放棄

5.修習要寫大量程式的課程

6.不管你做什麼,去找個好的暑期實習工作:你應該找的是與你想從事的行業相關的經歷


二.逐吋的競賽

1.想要創造一份有用的軟體,你必須爭取每一個修正、每一個功能,還有每個小小的妥協,努力幫助多一個人跨越學習曲線。沒有任何捷徑。只有一吋一吋地爭取才會取得勝利


三.選擇=頭痛

1.你提供越多的選項,人們就越難選擇


四.證據式時程安排

1.把時程細分:你必須把時程拆得很細,拆成能用小時來計算的任務,最多不能超過16個小時。這會迫使你真正弄清楚該做些什麼

2.追蹤已使用時間:保留工時記錄。要記錄每項任務花了多久的時間。事後就可以回去查看,每件事實際工作時間和估計值的關係。只要記錄每個任務所用的時間即可

3.模擬未來:不要直接把估計值累加起來算出上市日期,而是畫出一張圖表,表達在任何給定日期出貨的機率。此時要把時數轉換成天數,意思是必須考慮到每位開發人員的工作安排、休假和公定假日等。另外,每一輪模擬都要去看最後才完成的開發者,因為那個人完成的日期,也就是整個團隊完成的時間

4.積極管理你的專案

5.你必須在原本的時程中加入緩衝時間,以因應新功能的想法、競爭、整合、除錯時間、可用性測試、beta測試等

6.只有實際做事的程式員才能估計時程:任何由管理階層寫下時程,再交給程式員執行的系統,註定都會失敗

7.在找到錯誤時立即修正,而且修正的時間要算在原本的任務上

8.不要讓經理糾纏開發者讓估計時間縮短


五.讓錯的程式看得出錯

1.要讓對得東西在螢幕上緊靠在一起

2.保持簡短的函數名稱

3.變數宣告的地方離使用的位置越進越好

4.不要用巨集來建立個人專屬的程式語言

5.不要使用goto

6.不要讓右括弧離左括弧超過一個畫面


六.開創軟體事業

1.如果無法解釋以下的事情,就不要創立新事業:
(1)它能消除什麼痛苦?
(2)能替哪些人解決?
(3)為什麼你的產品能消除這個痛苦?
(4)客戶怎麼會付錢解除這個問題?

2.不要自己一個人創業

3.一開始不要期望太高


七.飆出高音

1.在落後的軟體專案裡增加人力,只會讓它更落後

2.無論使用多少個平庸程式員工作多久,做出來的東西永遠比不上一個優秀的程式員


八.巧婦難為無米之炊

1.你最重要、最關鍵的東西所依靠的工具,必須比想像中再低一個抽象層次。例如你想寫個3D遊戲,你不會使用外頭找得到的3D程式庫,而是自己寫一個出來,因為這對你來說太重要了


九.實施beta測試的提示

1.開放式的beta測試行不通,因為你會得到太多的測試資料,而無從處理

2.要讓beta測試者把意見送回來,你必須讓他們表明會提供意見,如填寫申請書,並勾選了「我同意把意見和問題報告立即送回」的選項

3.不要認為能在八到十週之內,能完成一輪完整的beta測試循環

4.不要妄想發布新測試版本的頻率,能夠高於每兩週一次

5.在一輪完整的beta測試中,發布的測試版本不可以少於四次

6.若在beta測試的過程中增加新功能,即使該功能多麼的微不足道,整個過程還是得重來

7.把所有beta測試者分為四組,有新測試版時,以輪替方式發布給其中一組,如此一來,每個重要的階段都能有新的beta測試者參與

8.不要把技術beta測試與行銷beta測試混為一談


十.邁向卓越客戶服務的八個步驟

1.每件事都用兩種方法修正:其中有兩種含意:
(1)技術支援人員必須能直接接觸開發團隊。這表示你不能把這件事外包出去
(2)執行到最後,會把所有常見和簡單的問題都解決掉,剩下的都是些罕見的怪問題

2.建議吹掉灰塵:不要請客戶去檢查某個設定,而是告訴他們改變那個設定,然後再改回來,「只是為了確保軟體會把設定存起來」

3.讓客戶成為狂熱支持者

4.承擔指責

5.背誦緩頰短句:用來平緩客戶的憤怒

6.練習表演木偶戲:假裝自己是一具木偶,你的工作是要弄清楚:「我該讓這具木偶說些什麼,才能讓這個人成為快樂的客戶呢」

7.貪婪讓你一無所獲:訂定90天內不滿意的退款保證

8.為克服人員規劃職業前景


十一.選擇交貨日期

1.設定出貨日期的三種作法:
(1)頻繁地發行小改版:最適合客戶數量不多的小團體專案
(2)每12至18個越發行一版:適合用在需要規模較大的開發團隊,客戶人數也夠多的時候
(3)每三至五年發行一版:龐大軟體系統及平台的典型作法

2.列出所有功能,並依照優先順序排列

3.每次時程延誤時,就把不重要的功能砍掉,以確保出貨日期不變

沒有留言:

張貼留言