Ruddy Lee 分享空間

Emergent Design 演化設計

了解你的開發團隊

leave a comment »

.

「估算是在浪費時間!別再做了!」

「採用故事點或理想工作日來做估算才是王道,不要再用小時了!」

 

.

要了解你的開發團隊,從他們的表現去了解他們,無疑是最好的一種方式,但要避免以偏概全,所以要從頭開始,從專案的估算開始。

.

敏捷開發的團隊應不應該做估算呢?

基本上,我認為只要需要做計劃時就應該要估算。計劃,是一種考慮未來該怎麼做事的行為準則,而估算則是它的依據。尤其是團隊的行為,一個人的時候,我們可以不用經過精確的計畫就搭上火車到處去旅行,因為鐵道是固定的,哪一站下哪一站上我們始終不難掌握它。但如果給你帶領一個團隊的時候,則計畫就免不了了,我們開始要考慮何時該吃飯或放他們自由行動。因此;我們真的需要估算嗎?答案當然是肯定的。因為估算是計劃的基本條件,而你不可能在沒用做任何估算之前就開始做計劃的。只是估算到底該做到多準確呢?

一個準則是;如果進一步的估算能讓計劃變得更合理,能讓我們更容易做出決策,能讓團隊對交付日期更有信心,或者能夠讓我們看清楚需求的優先順序的話,那麼就應該做進一步的估算及計劃。(如果沒法弄清楚呢? 就試一次看看,因為敏捷式的迭代開發,機會很多的,不嘗試看看又怎麼會知道 — 這種做法是敏捷的價值觀:勇氣,可以培養出勇於創新跟承擔失敗的開發團隊)。

.

讓適當的人,在適當的情境下,完成適當的事。便是;合理的計畫(估算)

前提是,了解你的開發團隊。

 

.

故事點是針對工作量,而不是複雜度

太多人都誤解了。Mike Cohn認為,使用故事點來描述特性的開發複雜度是不對的,應該使用工作量。他發現太多的團隊認為,故事點應該基於用戶故事或特性的複雜度,而不是開發所需的工作量。這些團隊通常將"故事點"定義為"複雜度點",這看起來不錯,可能還更精確,但卻是錯誤的。故事點與特性的複雜度無關,而與開發特性所花費的工作量有關。例如:你可以花三個小時抄寫10份三字經,而同樣的時間外科醫師正好可以作完縫合的手術,他們的複雜程度絕然不同,但卻有著同樣的工作時間。

當你需要維持抽象度的時候,請採用故事點/理想工作日,但一旦將使用者故事Breakdown成任務 tasks以後,抽象度就應該逐漸消失了,工程師開始運用各自的技能去完成任務,這個時候的估算能夠縮減到一日以內,是再好不過的事情了,此時用小時做估算都不為過(最大的好處是可以配合番茄工做法,更高效的進行開發的工作)。

.

前提是了解你的團隊

作家長的都愛護自己的孩子,也都知道愛護不是放縱。因此培養她(他)擁有正確的觀念,讓他(她)懂得自治才是王道。一樣的道理,也可以用在團隊管理上。讓團隊懂得自我管理,可以讓團隊擁有最好的效能。所以前提是培養團隊擁有正確的觀念,作法呢?就是給她約束。制定一些基本的規範給她去遵循,但只要她表現得優秀(符合或超越預期),就逐漸把約束放掉。一旦可以預知她對事情的看法了,便是開始了解她的行為模式了,當然就可以放心地讓她自己做決策了。

.

從估算的過程中可以看出一個團隊的成熟度及他們個別的價值觀。

.

 

你可能更想知道有關估算:

引用 Magne Jorgensen 的一篇短關於工作量估算,你知道的和你不知道的一切》,歸納一下重點:

  1. 不存在“最佳”的工作量估算模型或方法。

  2. 客戶著眼於降低價格,是工作量氾濫的主要原因。

  3. 最大工作量和最小工作量區間過於接近。

  4. 工作量估算易於走偏,一旦走偏,難以恢復。

  5. 相關歷史資料和檢查清單可以改善估算準確度。

  6. 結合多個獨立估算可以提升估算準確度。

  7. 估算有其害處。

估算不僅預測未來,而且會頻繁影響未來。過低的估算會導致過低的品質,以後可能要返工;過高的估算可能降低工作效率,遵從“帕金森定律”——工作會自動占滿所有可用的時間。

 

『因此,必須考慮是否的確需要工作量估算。如果可有可無,或是以後才有必要,可能不做更好,或是延遲估算,直到可以得到更多的資訊。敏捷軟體發展——只估算下一個 sprint 或者發佈版本的工作量,而且必須使用此前 sprint 或者版本發佈的回饋資訊——可能是避免過早估算帶來的潛在危害的良好方法。』

.

註: 如何正確的估算,請參考: Joey Chen的一系列文章

.

Written by ruddyllee

2016 年 09 月 06 日 於 11:23:28

張貼於未分類

Tagged with ,

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: