天天看點

讓老媽告訴你如何程式設計

讓老媽告訴你如何程式設計

在今天開發人員的周例會上,大家吵的不可開交,我們在讨論在靈活開發中是否應該将“故事點(story point——靈活開發中的一種工作量機關)”配置設定給修改bug和代碼整理工作——将它們跟軟體功能需求一樣對待。我們使用的story類型都是 pivotal tracker系統裡預設指定的。概括起來,通常認為軟體功能機關是一種能夠給使用者帶來價值的“story”(所有你可以對它們使用這樣的套話“做為一個使用者,我想要的是…”),但bug和代碼整理工作不屬于這類(盡管它們有些是必須處理的,例如償還技術債務)。

根據pivotal tracker系統裡的設定,隻有軟體功能特征才配配置設定給”故事點“。團隊的“成績”依仗于在過去的3-4個疊代開發周期裡完成的“故事點”的多少,所 以,如果你将大量的時間浪費在重構代碼和修改bug上,你的“成績”就會下滑。于是,經理會極力反對将“故事點”配置設定給代碼整理和修改bug,因為“隻有 把時間用在開發功能上,客戶才會認可我們的努力工作”。

遇到這種情況,勾起了我對往事的一段回憶,那是我在童年時整理房屋的事情。如果你跟我小時候一樣邋遢懶惰,你會像我一樣将髒襪子、糖紙丢的滿地都 是,幾乎看不到地闆。媽媽會反複唠叨說“每天記住把襪子丢進洗衣機,把糖紙丢進垃圾桶,這樣你就永遠不需要打掃房間。”但有時候,這些事情看起來需要太多 的努力,于是垃圾總是越積越多,直到無法忍受。

問題是,正确的保持室内整潔的方法給人太大的壓力。于是,大家最終還是選擇了将髒衣服不斷的塞到衣櫥裡,用力的推衣櫥門關上(用力,不然會塌落出來),這樣屋裡似乎整潔了。但事實上,髒亂依舊存在,盡管你看不見(不想看見)它。

修改bug和整理代碼的努力對于軟體開發來說是同樣的道理。靈活開發中使用“故事點”的最大好處是,用給使用者創造了多少價值來衡量一個程式員的生産 效率,這樣正确的激勵程式員的工作積極性。将“故事點”配置設定給bug修改?花一個月時間裡重構代碼中的資料庫層?你的“成績”的下降是指警告你某些事情有 問題。你需要思考,需要明白這是為什麼,以及如何糾正。

也許是你的需求不完整,或根本就是錯誤的,你并沒有開發客戶真正想要的東西。也許你沒有寫出足夠的單元測試和內建測試,是以在開發疊代中bug越來越多。也許你們的編碼速度太快,沒有充分的規劃,是以你的架構設計無法接入新來的需求,需要頻繁、大量的重構。

不管是哪種情況,如果必須把“故事點”配置設定給bug和代碼整理,這是存在底層問題的一種反映,就像是整理房間一樣。讓“故事點”充分發揮它的作用,讓它提示你在你們的開發過程中存在潛在的問題。但不要隻了解我的話的表面意思,就像你媽媽如何告訴你整理房間的話一樣。

繼續閱讀