最近很多人都在體驗vs2010,我忙著很多事,沒有去體驗。但我了解到其中一點,vs2010為敏捷開發提供了更多的支援。以前我所認為的敏捷開發,只有在理想公司,理想團隊才可能開展,現在微軟通過ide,將敏捷的思想進行大範圍的普及,讓敏捷更加的深入人心。
敏捷宣言中只有簡短的幾句話,但是能真正做到不是那麼容易。
individuals and interactions over processes and tools
working software over comprehensive documentation
customer collaboration over contract negotiation
responding to change over following a plan
practices of an agile developer一書中,對敏捷開發做了乙個精闢的概括:
敏捷開發就是在乙個高度協作的環境中,不斷地使用反饋進行自我調整和完善。
今天我就談談「反饋」。
最近我在做乙個專案,單槍匹馬,只有我乙個人,看上去一點都不敏捷對嗎?敏捷團隊通常是一些小型團隊,但是小到乙個人,也不好。理想的團隊應該是10人左右。每天早上的站立式會議上,我都是自報進度,對於遇到的困難,別人也很難給出意見,因為他們都沒有參與進來。但是有一點,他們是這個專案未來的客戶,站立式會議上,我可以聽到作為客戶的反饋。
這個專案是乙個基於vmware esx的虛擬化管理平台,我有乙個大客戶,就是伺服器管理員c。和c討論過系統的需求和基本實現後,我開始將任務分成了以下幾個部分:
1. vmware esx api的封裝。
2. 分布式controller, agent控制系統。
3. 資料庫設計
4. web介面
整個過程計畫在一周的時間完成,並且能夠上線,提供乙個基本可用的版本。看上去幾乎是不可完成的任務,於是我開始了高效的coding。過程中,我不斷的收到了來自「使用者」的反饋:
1. 「可以暫時使用原有系統的資料庫系統,使用者才不關心他的資料存在**。」
於是,「資料庫設計」暫時砍掉。2. 「我最關心的是系統最基本的申請和釋放功能,至於其他的細節問題,我可以暫時不關心。」
於是,「分布式controller, agent控制系統。」也暫時被砍掉了。不過,這個反饋來的太晚,我已經花費了一天的時間實現和除錯。3. 「這個資料列表我希望是橫著排的。」
在我把資料列表做好,自我感覺很好給c演示時,他表示希望列表是橫著排列的。而這時我已經在這個豎的列表花費了不少時間。4. 「也許,我們可以考慮使用另外一種方式實現。」
聽到這句崩潰的話時,已經周五了。這是我將系統實現的差不多的時候,找c聊天,c蹦出來的一句話。經過分析,確實可行,亡羊補牢,為時未晚。新的方案一定程度上還是對之前方案的簡化,並且更加可行。在不斷的使用者反饋中,不斷的糾正了我的方向,才使得我能夠在一周的時間內完成。
有時,我們關注的,使用者不一定關注。
我們認為重要的,使用者不一定覺得重要。
我們認為很酷的,使用者不一定想要。
我們認為沒所謂的,使用者反而覺得非常重要!
所以,做使用者最想要的軟體,關注使用者的反饋,如果可能,讓使用者也加入到團隊的開發中來。這就是敏捷宣言中所說的:
customer collaboration over contract negotiation(客戶協作勝過合同談判)
三言兩語話敏捷 1 反饋
最近很多人都在體驗vs2010,我忙著很多事,沒有去體驗。但我了解到其中一點,vs2010為敏捷開發提供了更多的支援。以前我所認為的敏捷開發,只有在理想公司,理想團隊才可能開展,現在微軟通過ide,將敏捷的思想進行大範圍的普及,讓敏捷更加的深入人心。敏捷宣言中只有簡短的幾句話,但是能真正做到不是那麼...
三言兩語 數學與哲學
起這個話題,是因為看到 中國哲學狂人挑戰世界頂級數學難題四色猜想 為此sohu還作了專題爭鳴。哲學和數學都是人類的基礎科學,古代的大數學家同時也是哲學家,比如 柏拉圖和亞里斯多德。亞里斯多德很早就認為 數學研究的物件是從物理實體上面所引出來的抽象觀念。所以我們可以從接受不存在的負數,到更難理解的虛數...
三言兩語說說程序排程
時間片是乙個數值,它表明程序在被搶占之前可以持續執行的時間。排程程式總是選擇時間片未用盡而且優先順序最高的程序執行。程序不一定一次就用完所有的時間片,可以分幾次通過多次排程用完。程序時間片用盡後在本論排程中不會再被執行,直到等待其他所有程序的時間片耗盡,在那個時候,所以程序的時間片將被重新計算。乙個...