Pages

Sunday, August 12, 2012

Called the Shot 談每日工作生產力

圖片為 Edward in Action 所有
每當談到軟體預估,我就想到《人月神話》第八章〈預估〉[Calling the Shot] 的貝比魯斯。在 1932 年美國職棒世界大賽,全壘打王貝比魯斯在打擊前伸手指向中外野,接著隨即打出了一支全壘打。打擊前他做了預估,憑藉著自己的實力與精準度打擊出去,這就是著名的貝比魯斯的全壘打預告 (Babe Ruth's Called Shot)

每當上司、主管、業務任何非技術背景同仁會來跟我商討功能的複雜度,以及大約需要多久,這個時間就要根據自己的經驗與了解度來做分析了,這沒有標準的答案,因為中間牽扯到執行寫程式的人技術、用心程度、負責程度,再到軟體測試是否能符合功能的需求來作開發,更不用再提任何變動的因素,而被迫要做調整。這些事情只要是軟體開發,就一定會碰到。前輩以及書上經驗跟我們說,只有不斷的練習,了解自己、了解團隊才能越來越掌控所需要的時間。

Called the Shot 的精神我會將它融入到每天的工作。早上進入公司,開發團隊會做個簡單的溝通同步了解彼此在哪一個戰線上,而對於自己,就會訂下一個本日可以完成的大項目,或者本日可以完成的兩個以上小項目。以現在 iOS App 開發為例:
  • 某主題的 UITableViewController 開發,因為它是負責資訊列表的提供,所以會在本日將它所需要的資料串接,放入 UITableViewDataSource,最後再讓資料呈現在畫面上。而有兩個基本原則會一起伴隨開發的,重新整理與載入更多。一個是使用者會需要將現在畫面上的資料更新到最新,另外一個是使用者會一直瀏覽瀏覽需要更多後面的資料,而將這些資料載入畫面中。
  • 使用者登入 UIViewController 設計,它是負責讓使用者可以來登入,所以這部分要將它規劃出輸入欄位,例如 Email, password,而當使用者輸入過程可以做些輸入上驗證,送出到伺服器上作密碼驗證,再回來跟使用者表達是否登入成功與否。最後再將畫面收掉,並且讓整體的使用體驗是給使用者有登入後的感覺。
  • 整個 App 會共用的照片拍照上傳程式,這邊設計上會以方便給予照片物件集合,讓使用者在拍完照片或者挑選完照片,即可透過這隻程式來上傳,過程中表現出目前進度。最後處理上傳成功與失敗的狀況。

這些是作為每天開始工作前,去思索一遍,動筆前先動腦,敲鍵盤前先想過,在自己展開工作一天,要來完成每日小目標。

1. 有明確目標

透過這樣的思索,讓自己在一開始即可想完整體面貌,而當面貌越完整,即可知道自己手邊資料材料是否足夠,在接下來一天設定這樣目標達成的可行性提升。

2. 排除萬難

因為設定了這樣目標,所以在接下來的工作時段,就是要全心全意的來實作,任何的阻礙都會視為仇敵的方式來看待。任何的干擾包含:無關緊要的電話、無管緊要的 Email 、無關緊要的人過來你身旁找你講不相干的事情、任何突然會讓你被迫離開座位阻斷你前進的因素,這些能免就要免。

最後每天傍晚跟團隊夥伴做一天回顧,如果有順利的執行以上項目,在自己一天內能完成的目標,並且順利地達成,最後還可以展示給夥伴們看,因為預估而實踐做了哪些功能、哪些昨天沒有今天才出來,今天因為我的用心而完成的小任務。

當完成了當初自己的預估,除了可以讓夥伴們眼睛一亮之外,自己在每個重要的一天,又完成了一個小成就。

No comments:

Post a Comment