文章

Scrumcn_scrum

Scrum vs æŒç»­éƒ¨ç½²

产å“å¼€å‘éœ€è¦æŒç»­æ€§

Scrumçš„åŸºæœ¬æ€æƒ³å°±æ˜¯ç»™å›¢é˜Ÿä¸€ä¸ªå®‰å…¨çš„å’Œæ²¡æœ‰å˜æ›´çš„环境,让团队å¯ä»¥é›†ä¸­åœ¨è®¡åˆ’好的开å‘任务上。一般æ¥è¯´ï¼Œå›¢é˜Ÿä¸ºä¸¤å‘¨å·¦å³çš„一个Sprintåšå¥½è®¡åˆ’,然åŽåœ¨Sprint当中ä¸åº”该被打断,直到当å‰Sprint结æŸã€‚这样的æµç¨‹èƒ½å¤Ÿé¿å…了“新的==é‡è¦çš„â€çš„æƒ…况å‘生,能够ä¿è¯å½“å‰çš„事情能够完æˆï¼Œä¹Ÿèƒ½å¤Ÿé¿å…å¤§å®¶è®¤ä¸ºæ–°çš„æƒ³æ³•å°±ä¸€å®šæ¯”ä¸€ä¸ªæœˆå‰æå‡ºçš„æƒ³æ³•è¦é‡è¦å¾—多的问题。è¦åœ¨äº§å“特性开å‘上获得æˆåŠŸï¼Œå°±éœ€è¦ç¨³å®šçš„特性优先级。 Read more

é¡¹ç›®ç®¡ç†æ— åŠ› æ•æ·å¼€å‘出招

在实际的项目实施中,尽管æ—边常常站ç€è§£å†³é¡¹ç›®é—®é¢˜çš„专家,但当项目ç»ç†è¢«ä¸è‡ªè§‰åœ°å·å…¥åˆ°é¡¹ç›®çš„å„ç§é—®é¢˜ä¸­æ—¶ï¼Œé¡¹ç›®ç®¡ç†çš„å„ç§æ–¹æ³•也å˜å¾—è‹ç™½æ— åŠ›ã€‚æ­¤æ—¶ï¼Œæ•æ·å¼€å‘往往æˆä¸ºé¡¹ç›®ç»ç†çš„制胜法å®ã€‚ Read more

æˆåŠŸç»„å»ºè§„èŒƒæ•æ·äº¤ä»˜å›¢é˜Ÿçš„ 5 大技巧

简介

æ•æ·å®£è¨€ï¼ˆAgile Manifesto)自 2001 å¹´å‘布以æ¥å°±å®šä¹‰äº†æ•æ·æ–¹æ³•的核心精髓。最近,IBM 以 â€œè§„èŒƒæ•æ·äº¤ä»˜â€ 之åæå‡ºäº†ä¸€ç»„最佳实践,帮助较大型软件开å‘团队å–得与较å°åž‹å›¢é˜Ÿåœ¨è¿‡åŽ» 10 å¹´ä½¿ç”¨æ•æ·æŠ€æœ¯æ‰€å–å¾—çš„ç›¸åŒæˆå°±ã€‚è¿™ä¸æ˜¯è¯´çŽ°æœ‰çš„å¸¸ç”¨æ•æ·æ–¹æ³•是æ‚ä¹±æ— ç« çš„ï¼›äº‹å®žä¸Šï¼Œå¤§éƒ¨åˆ†æ•æ·æ–¹æ³•éƒ½éœ€è¦æ¯”ä¼ ç»Ÿæˆ–ä¸´æ—¶çš„æ–¹æ³•æ›´åŠ è§„èŒƒå’Œä¸¥æ ¼ã€‚ä½†æ˜¯ï¼Œå¹¶ä¸æ€»æ˜¯æœ‰å¤„ç†å¤æ‚ä¼ä¸šçŽ¯å¢ƒä¸­çš„å¤§åž‹æ•æ·é¡¹ç›®çš„æŒ‡å—。

DADï¼ˆè§„èŒƒæ•æ·äº¤ä»˜- Disciplined Agile Delivery,是 IBM æå‡ºçš„一组实践,旨在帮助较大型软件开å‘团队åƒè¾ƒå°åž‹å›¢é˜Ÿä¸€æ ·æˆåŠŸå®žçŽ°æ•æ·å¼€å‘) æä¾›äº†ä¸€ä¸ªæ··åˆæ¡†æž¶ï¼Œå°†æ¥è‡ªå„ç§çŽ°æœ‰çš„æˆç†Ÿæ•æ·æ–¹æ³•(比如 Scrumã€XPã€Crystalã€FDD å’Œ DSDM)的最佳指å—结åˆåœ¨ä¸€èµ·ã€‚尽管这些方法中的æ¯ä¸€ç§éƒ½æœ‰ä»·å€¼ï¼Œä½†æ¯ç§æ–¹æ³•在å„个方é¢éƒ½æ˜¯ä¸å®Œæ•´çš„,因为从业者通常会将æ¥è‡ªä¸åŒæ–¹æ³•的技术堆å èµ·æ¥ï¼ŒèŽ·å¾—æŸç§ç›¸å¯¹é›†ä¸­çš„产物。æ¥è‡ª IBM çš„æ•æ·/精益 IT 首席方法学者 Scott Ambler 收集了æ¥è‡ªå¤šç§æ–¹æ³•的最佳指å—,并得到了 DAD 框架。我éžå¸¸å¹¸è¿èƒ½å¤Ÿä¸Ž Scott åˆä½œï¼Œå¹¶èƒ½å¤Ÿåœ¨æˆ‘自己的项目中使用这些实践。

DAD 还为常è§çš„æ•æ·æ–¹æ³•补充了ä¼ä¸šæŒ‡å—。例如,DAD 会å‘团队展示如何将 â€œç§¯åŽ‹â€ ç­‰ä¸»æµæ¦‚å¿µå¸¦åˆ°ä¸‹ä¸€ä¸ªå±‚æ¬¡ï¼Œè®©å®ƒä»¬æ›´é€‚åˆæ›´å¤§è§„模的ä¼ä¸šçŽ¯å¢ƒã€‚å®ƒå¯å¸®åŠ©æ‚¨ä¸Žç›´æŽ¥å¼€å‘团队以外的ä¼ä¸šæƒå¨åˆä½œï¼Œæ¯”如ä¼ä¸šæž¶æž„师或数æ®åº“管ç†å‘˜ã€‚一些开å‘äººå‘˜é”™è¯¯åœ°è®¤ä¸ºï¼Œé‡‡ç”¨æ•æ·æ–¹æ³•åŽï¼Œæ‚¨å°±ä¸å†éœ€è¦å¤„ç†è¿™äº›ä¸ªæ€§ç‰¹å¾å’Œå‡†åˆ™ã€‚äº‹å®žä¸æ˜¯è¿™æ ·çš„ã€‚å¤§éƒ¨åˆ†æ•æ·å›¢é˜Ÿéƒ½å¿…须放眼于团队外部,尤其是在å‚与其他项目和与组织中的其他æƒå¨äººå‘˜åˆä½œæ—¶ã€‚

åŸºäºŽæˆ‘ä¸ªäººä½œä¸ºå¤§é‡æ•æ·é¡¹ç›®çš„å¼€å‘人员和团队领导的ç»éªŒï¼Œæˆ‘æå‡ºäº†ä»¥ä¸‹å»ºè®®ï¼Œå¸®åŠ©æ‚¨æ€è€ƒä¸Žæ•æ·å¼€å‘原则指导下的项目相关的大型团队管ç†é—®é¢˜ã€‚è¿™äº›åªæ˜¯åœ¨ç»„建拥有 20 或更多ä½å¼€å‘äººå‘˜çš„æ•æ·é¡¹ç›®å›¢é˜Ÿæ—¶è¦è€ƒè™‘的部分因素,但它们å¯å¸®åŠ©æ‚¨æœæ­£ç¡®çš„æ–¹å‘å‘展。

技巧 1:欢迎通æ‰ä¸“å®¶

传统方法倾å‘于å‡è®¾ä¸€ä¸ªæ‹¥æœ‰éžå¸¸ä¸“ä¸šäººå‘˜çš„å›¢é˜Ÿä¼šä¸ºå®¢æˆ·å¸¦æ¥æ›´å‡ºè‰²çš„产å“。事实上,我们å‘现事实正好相å。在许多情况下,å‚与项目的人员越专业,他们会越想å°è¯•生æˆå®Œç¾Žçš„æ–‡æ¡£ã€å®Œç¾Žçš„代ç å’Œå®Œç¾Žçš„æ¨¡åž‹ã€‚此外,如果团队ä¾é åªæ‹¥æœ‰è‡ªå·±ä¸“长技能的专家,则效率就会é™ä½Žã€‚ä¾‹å¦‚ï¼Œå¦‚æžœå›¢é˜Ÿä¸­åªæœ‰ä¸€ä¸ªäººç†è§£æ•°æ®åº“,那么ä¸ä»…该团队的工作会延误,而且将有效的解决方案交到利益相关者手上的整个过程也会延长。

DAD 促进了拥有 “通æ‰ä¸“家†的团队的形æˆï¼Œé€šæ‰ä¸“家也就是具有一项专长,但还对软件开å‘生命周期中的多个领域拥有基本知识的人。例如,一ä½åˆ†æžå¸ˆå¯èƒ½æ˜¯éœ€æ±‚æ–¹é¢çš„专家,但还对测试具有基本知识,如果团队测试进度è½åŽäº†ï¼Œè¯¥åˆ†æžå¸ˆå¯ä»¥æä¾›å¸®åŠ©ã€‚

在我现在å‚与的项目中,开å‘人员除了传统的编ç ä¸“é•¿å¤–ï¼Œè¿˜èŠ±äº†å¤§é‡æ—¶é—´æ¥å¸®åŠ©ç¼–å†™éƒ¨ç½²å’ŒæŒç»­é›†æˆè„šæœ¬ã€‚ç»“æžœï¼Œä»–ä»¬éƒ½èŽ·å¾—äº†æœ‰å…³åŸºç¡€æž¶æž„å’Œé…置管ç†çš„基本知识。å¦ä¸€ä¸ªç¤ºä¾‹ï¼šæµ‹è¯•人员在传统上主è¦è´Ÿè´£ä»Žé»‘盒角度测试用户界é¢å’Œè½¯ä»¶å·¥ä½œåŽŸç†ã€‚ä½†æ•æ·é¢†åŸŸä¸­çš„æµ‹è¯•人员日æ¸éœ€è¦å˜å¾—更加技术性,考虑开å‘人员所åšçš„工作。如果他们能够将测试编写为代ç ï¼Œè€Œä¸ä»…æ˜¯ä»Žç”¨æˆ·ç•Œé¢æµ‹è¯•功能,他们会对团队更有用。

技巧 2:更多地专注于åä½œæŠ€èƒ½ï¼Œè€Œä¸æ˜¯æ™ºå›Šå›¢

èªæ˜Žçš„äººç»„å»ºçš„å›¢é˜Ÿå¸¸å¸¸æ— æ³•å¾—åˆ°é¢„æœŸçš„ç»“æžœã€‚ä¸€ç»„èªæ˜Žçš„人ä¸ä¸€å®šå°±ä¼šç»„建æˆä¸€ä¸ªä¼˜ç§€çš„å›¢é˜Ÿã€‚åªæœ‰åœ¨è¿™äº›äººæœä¸€ä¸ªå…±åŒç›®æ ‡ååŒå·¥ä½œæ—¶ï¼Œæ‰æœ‰å¯èƒ½æˆåŠŸã€‚æˆ‘çœ‹åˆ°è¿‡ä¸æƒ³ååŒå·¥ä½œçš„éžå¸¸èªæ˜Žçš„人,他们更喜欢独立工作。您的组织中å¯èƒ½æœ‰é€‚åˆè¿™æ ·ä¸€ä¸ªäººçš„èŒä½ï¼Œä½†åœ¨æ•æ·å¼€å‘和交付团队中å¯èƒ½æ²¡æœ‰ã€‚

此外,还有一个事实是,我们无法在æ¯ä¸ªé¡¹ç›®å›¢é˜Ÿä¸­éƒ½é…备超级明星。我们需è¦å­¦ä¹ å¦‚何在具有普通ã€å¯é¢„测能力的人中å˜å¾—å¯Œæœ‰æˆæ•ˆï¼Œè€Œä¸åªæ˜¯æ˜Žæ˜Ÿç¼–程人员。所以,我在组建团队时寻找的是既能良好å作,åˆå±•çŽ°å‡ºç«žäº‰åŠ›å’Œè‡ªä¿¡çš„äººã€‚ä»–ä»¬è°¦æ­æœ‰ç¤¼ï¼Œå› ä¸ºä»–们认识到事实上他们无法知晓全部内容,他们需è¦å½¼æ­¤å­¦ä¹ ä¸€äº›ä¸œè¥¿ã€‚

技巧 3:为手头的项目组建规模适中的团队

DAD æè¿°äº† 3 ç§ä¸åŒçš„团队级别:ç»å…¸çš„å°åž‹å›¢é˜Ÿã€ä¸­åž‹å›¢é˜Ÿå’Œå¤§åž‹å›¢é˜Ÿã€‚当然,DAD 主è¦é’ˆå¯¹å¤§ä¸­åž‹å›¢é˜Ÿè€Œåˆ›å»ºã€‚对于å¯èƒ½æœ‰å¤šä¸ªå­é¡¹ç›®åŒæ—¶å¤„ç†å…±äº«ç»„件的较大型团队,一定è¦è€ƒè™‘å„队人马与其å„自团队领导如何ååŒå·¥ä½œã€‚一个问题是,ç»å…¸æ•æ·ç†è®ºå»ºè®®ç»„建å°åž‹ã€è‡ªç»™è‡ªè¶³çš„团队,å‡è®¾ä»–们应该能够自行实现完整的解决方案。但在我们的队ä¼ä¸æ–­å£®å¤§æ—¶ï¼Œæˆ‘们需è¦ä»Žå›¢é˜Ÿå¤–引入其他具有专业技能的人。

例如,在我当å‰çš„项目中,我们将å几项技术集中起æ¥å®žçŽ°ä¸€ä¸ªéžå¸¸å¤§çš„系统。我们明确地应用了 “通æ‰ä¸“å®¶â€ çš„åŽŸåˆ™ï¼Œä½†äº‹å®žä¸Šä¸æ˜¯å›¢é˜Ÿä¸­çš„æ¯ä¸ªäººéƒ½èƒ½å¤Ÿäº†è§£æ‰€æœ‰è¿™ 12 ç§ä¸åŒçš„æŠ€æœ¯çš„æ¯ä¸ªç»†èŠ‚ã€‚æ‰€ä»¥æˆ‘ä»¬ä¸ºå›¢é˜Ÿè¡¥å……äº†ä¸€äº›åŸºç¡€æž¶æž„äººå‘˜ï¼Œæ¯”å¦‚ Linux 专家ã€ä¸¤ä¸ªæ•°æ®åº“æƒå¨äººå‘˜ä»¥åŠå®‰å…¨æ€§å’Œé˜²ç«å¢™ä¸“家。

在åƒè¿™æ ·è¾ƒå¤§åž‹é¡¹ç›®ä¸­ï¼Œå½“您过渡到生产环境时,您将必须与(举例而言)您的 DevOps 团队或ä¼ä¸šçŽ°ä»£åŒ–å›¢é˜Ÿåˆä½œã€‚æ¢å¥è¯è¯´ï¼Œæ‚¨çš„系统ä¸ä¼šå­¤ç«‹åœ°å­˜åœ¨ã€‚我当å‰å‚与的项目将与一个现有的系统相集æˆã€‚è¦ç§»åˆ°ç”Ÿäº§çŽ¯å¢ƒçš„æ‰€æœ‰è¦ç´ éƒ½ä¼šå—åˆ°ä¸¥æ ¼çš„å˜æ›´æŽ§åˆ¶æµç¨‹çš„紧密控制,所以我们会定期与团队外部的这些人互动,以让这些è¦ç´ æ­£å¸¸å·¥ä½œã€‚

DAD 还包å«åœ¨å¯åŠ¨é¡¹ç›®æ—¶æ‰§è¡ŒæŸç§åˆå§‹è§„划的指å—,这å¯èƒ½å¯¹äºŽè®©ä¸åŒå›¢é˜ŸååŒå·¥ä½œå¾ˆæœ‰ç”¨ã€‚对于较é‡çš„项目,您需è¦åœ¨è¦è§£å†³çš„商业问题和è¦å¾—到的解决方案方é¢èŽ·å¾—åˆæ­¥æ„¿æ™¯ã€‚这个愿景å¯èƒ½åŒ…å«ä¸šåŠ¡æ¡ˆä¾‹çš„æ€»ä½“æ¦‚è¿°ã€æè®®çš„æŠ€æœ¯æž¶æž„ã€é£Žé™©æ‘˜è¦ä»¥åŠå…¶ä»–的摘è¦ä¿¡æ¯ï¼Œè®©åˆ©ç›Šç›¸å…³è€…相信该项目真正有用。

技巧 4:ç†è§£æ•æ·é¢†å¯¼åŽŸåˆ™å’Œå›¢é˜Ÿç»„ç»‡ï¼Œçµæ´»å¤„ç†æ‰‹å¤´çš„项目

å°åž‹å›¢é˜Ÿçš„æ•æ·æ–¹æ³•(比如 Scrum)解决了这样一ç§äº‹å®žï¼Œåœ¨è½¯ä»¶å¼€å‘中,领导阶层的指挥控制方å¼ï¼ˆç»ç†åˆ›å»ºè¯¦ç»†çš„工作细分结构ã€å‘团队分é…任务,并告诉他们æ¯é¡¹ä»»åŠ¡è¦èŠ±å¤šé•¿æ—¶é—´å®Œæˆçš„æ–¹å¼ï¼‰å­˜åœ¨é—®é¢˜ã€‚æ•æ·æ–¹æ³•ä»Žä¸šè€…è®¤è¯†åˆ°ï¼Œå®žé™…æ‰§è¡Œå·¥ä½œçš„äººæ‰æ˜¯åˆ¶å®šè¿™äº›å†³ç­–的最佳人选。开å‘人员确定他们的任务,他们执行自己的评估,他们自愿挑选任务,他们自行分担工作é‡ã€‚在本质上,他们就åƒä¸€ä¸ªé«˜æ•ˆè¿è½¬ã€è‡ªè¡Œç»„建的团队,没有明确定义项目ç»ç†èŒä½ã€‚相å,该团队指派æŸä¸ªäººä½œä¸ºå›¢é˜Ÿé¢†å¯¼ï¼Œå¸®åŠ©æŽ¨è¿›æ•´ä¸ªæµç¨‹ã€‚
DAD ä½¿ç”¨äº†äº§å“æ‰€æœ‰è€… 的概念,这个概念直接æ¥è‡ªäºŽ Scrumï¼›DAD äº‹å®žä¸Šå®Œå…¨æ²¡æœ‰æ›´æ”¹è¿™ä¸ªè§’è‰²ã€‚äº§å“æ‰€æœ‰è€…负责确定工作范围ã€ä¼˜å…ˆçº§å¹¶é˜æ˜Žä»–们需è¦å®Œæˆçš„å·¥ä½œçš„éœ€æ±‚ã€‚ä½œä¸ºäº§å“æ‰€æœ‰è€…ï¼Œä»–ä»¬æ‹¥æœ‰è§£å†³æ–¹æ¡ˆçš„äº§å“æ„¿æ™¯ã€‚但是,å‚与 DAD å®žè·µçš„äººè®¤è¯†åˆ°ï¼Œå¯¹äºŽè¾ƒå¤§åž‹ã€æ›´å¤æ‚的项目,å¯èƒ½å¿…é¡»å‘团队增加领域专家æ¥ååŠ©äº§å“æ‰€æœ‰è€…。

DAD 还有å¦ä¸€ä¸ªç±»ä¼¼äºŽäº§å“所有者的角色,称为架构所有者。团队拥有天æ‰å¼€å‘äººå‘˜å›ºç„¶å¾ˆå¥½ï¼Œä½†åŒæ ·é‡è¦çš„æ˜¯ï¼Œè®©æŸä¸ªäºº “拥有†交付解决方案的架构愿景和负责关键技术决策。架构所有者也å¯ä»¥ä¸Žå›¢é˜Ÿå¤–部的é‡è¦æƒå¨äººå‘˜å作,比如ä¼ä¸š DBA 或ä¼ä¸šæž¶æž„师,以确ä¿å¼€å‘团队所åšçš„决策ä¸ä¼šä¸Žä¼ä¸šæ•´ä½“的标准和指导原则相冲çªã€‚他或她是项目的技术专家,定期与这些利益相关者åˆä½œã€‚

作为自己团队的领导,我大é‡ä¾èµ–于架构所有者。我目å‰çš„æƒ…况是,在一个房间里拥有 25 个工作人员。这是一个比ç»å…¸æ•æ·é¡¹ç›®äººæ•°æ›´å¤šçš„团队,但这是将一个项目å‡çº§ä¸º DAD 项目的ä¸é”™ç¤ºä¾‹ã€‚ç´§æŒ¨ç€æˆ‘左侧的是架构所有者,所以我总是å¯ä»¥å‘他咨询问题,比如:
æˆ‘ä»¬æ˜¯å¦æœ‰åˆé€‚的人在å‚与åˆé€‚的任务?

我们是å¦å‡è½»äº†æŠ€æœ¯é£Žé™©ï¼Ÿ
哪些团队æˆå‘˜éœ€è¦å¸®åŠ©ï¼Ÿæˆ‘ä»¬æ˜¯å¦ä¸ºä»–ä»¬å®‰æŽ’ä¸€ä¸ªæ­æ¡£ï¼Œä»¥ä¾¿ä»–们在执行任务时å¯èŽ·å¾—å¸®åŠ©ï¼Ÿ
ä¼ä¸šä¸­æ˜¯å¦æœ‰çŽ°æœ‰çš„æŠ€æœ¯èµ„äº§æˆ–æ¨¡å¼å¯ä¾›æˆ‘们使用?

作为团队领导,尤其是在åƒè¿™æ ·çš„大型团队中,我很难详细地了解æ¯ä¸ªå¼€å‘äººå‘˜æ˜¯å¦‚ä½•å·¥ä½œçš„ã€‚æ‰€ä»¥æˆ‘é€‰æ‹©æž¶æž„æ‰€æœ‰è€…ä½œä¸ºæˆ‘çš„æ­æ¡£ï¼Œå¸®åŠ©æé«˜å›¢é˜Ÿæ•ˆçŽ‡ã€‚
从å¦ä¸€æ–¹é¢è®²ï¼Œæž¶æž„所有者也很é‡è¦ã€‚æž¶æž„æ˜¯é¡¹ç›®é£Žé™©çš„ä¸€ä¸ªå·¨å¤§çš„æ½œåœ¨æ¥æºï¼Œå› ä¸ºå­˜åœ¨è¶…越项目边界的ä¾èµ–关系,比如生产环境ã€ä¸šåŠ¡éœ€æ±‚ã€é—留数æ®ã€æ—§æœ‰ç³»ç»Ÿç­‰ã€‚架构所有者确定è¦åœ¨æ—©æœŸè¿­ä»£ä¸­å®žçŽ°å“ªäº›å·¥ä½œé¡¹ï¼Œä»¥å°½å¯èƒ½æ—©åœ°å‡è½»è¿™äº›é£Žé™©ã€‚è¿™ç§ DAD 实践称为 “风险价值生命周期â€ï¼Œå®ƒä¸åŒäºŽå…¶ä»–ä»…ä¾é å•†ä¸šä»·å€¼æ¥ç¡®å®šå·¥ä½œä¼˜å…ˆçº§çš„æ•æ·æ–¹æ³•。架构所有者帮助团队ç†è§£å…³é”®æŠ€æœ¯é£Žé™©ï¼Œä»¥åŠå¿…é¡»æ•获和满足哪些需求æ‰èƒ½å‡è½»è¿™äº›é£Žé™©ï¼Œåœ¨é¡¹ç›®åŽæœŸï¼Œä¿®å¤è¿™äº›é£Žé™©å¯èƒ½éžå¸¸å›°éš¾ä¸”æˆæœ¬æžé«˜ã€‚

技巧 5:æé˜²è‡ªè¡Œç»„建的团队,尤其是如果团队缺ä¹ç»éªŒ

自行组建的团队是一个éžå¸¸ç¾Žå¦™çš„æ•æ·æ¦‚念。团队æˆå‘˜æœ€äº†è§£å¦‚何自定义他们的æµç¨‹ï¼Œä»¥ä¿æŒæœ€é«˜æ•ˆçŽ‡ã€‚ä»–ä»¬å¯ä»¥å作,是因为已学会了如何ååŒå·¥ä½œã€‚例如,Hal 知é“他是å¦å¯å‘ Julie å‘é€ç”µå­é‚®ä»¶ï¼Œæˆ–者他是å¦éœ€è¦é¢å¯¹é¢åœ°è®¨è®ºä»¥æé«˜æ•ˆçŽ‡ã€‚åœ¨ç†æƒ³æƒ…况下,团队拥有他们履行构建所需软件任务所必备的技能。在实践中,自行组建的团队éžå¸¸é€‚åˆæŠ€æœ¯ç‰¢å›ºã€é€å½»ç†è§£è½¯ä»¶å¼€å‘æœ€ä½³å®žè·µä¸”å¯¹æ•æ·æ–¹æ³•有一定了解的人。

对于较新的或更年轻的团队,å¯èƒ½ä¸å…·å¤‡è¿™äº›æ¡ä»¶ã€‚他们å¯èƒ½ä¸ç†è§£å¦‚何针对架构或需求建模解决方案。或者更基本æ¥è®²ï¼Œä»–们å¯èƒ½ä¸ç†Ÿæ‚‰æ•æ·æ–¹æ³•,ä¸ç†è§£ä¸åŒçš„实践。

因此,在自行组建团队时,您需è¦è€ƒè™‘技能和ç»éªŒæˆåˆ†ã€‚技能和ç»éªŒçš„缺ä¹å¯èƒ½å¯¼è‡´æ··ä¹±ä¸”散漫的团队环境。还有一ç§ä¸ªæ€§ç‰¹å¾æˆåˆ†ã€‚一些团队æˆå‘˜ä¸ä¹ æƒ¯äºŽå†³å®šä»–们应该执行哪些任务或按何ç§é¡ºåºæ‰§è¡Œã€‚一些人å¯èƒ½å®žé™…上更喜欢采用更加传统的方å¼ã€‚如果您是团队领导,您必须对这些æ€åº¦å’Œä¹ æƒ¯äº§ç”Ÿè­¦è§‰ï¼Œç†è§£æŸä¸ªäººä½•时需è¦è¯±å¯¼æˆ–引导他们的日常活动。

æ­¤å¤„ä¼ è¾¾çš„åŸºæœ¬ä¿¡æ¯æ˜¯ï¼Œè‡ªè¡Œç»„建的团队å¯ä»¥è¿è½¬ï¼Œä½†å›¢é˜Ÿé¢†å¯¼è®©å›¢é˜Ÿè‡ªè¡Œç®¡ç†çš„程度å–决于团队的æˆç†Ÿåº¦å’Œèƒ½åŠ›ã€‚ä¼˜ç§€çš„å›¢é˜Ÿé¢†å¯¼ä¸ä¼šç®€å•地相信团队,全æƒå§”托æƒå¨ä¸“å®¶æ¥å®Œæˆä»–们想è¦çš„任何事情。相å,优秀的团队领导应该了解团队的进展,密切关注以确ä¿ä»–ä»¬æœæ­£ç¡®çš„æ–¹å‘å‘展。

最åŽçš„æ€è€ƒ

主æµçš„æ•æ·ç†è®ºåœ¨å‘客户交付具有较高商业价值软件方é¢å¥ å®šäº†ç‰¢å›ºçš„基础,但它å¯èƒ½æœ‰ç‚¹ç†æƒ³åŒ–ã€‚å®ƒå¹¶ä¸æ€»æ˜¯ä»£è¡¨ Scott Ambler 和我æ¯å¤©åœ¨è¾ƒå¤§åž‹é¡¹ç›®ä¸­çš„ç»åŽ†ã€‚æˆ‘ä»¬çš„ç›®æ ‡ä¸æ˜¯æŽ¨ç¿»å‰äººçš„æˆæžœï¼Œé‡æ–°å‘æ˜Žæ•æ·æ–¹æ³•ï¼Œå› ä¸ºå¦‚æžœæ­£ç¡®å®žçŽ°æ•æ·æ–¹æ³•ï¼Œé‚£ä¹ˆè¿™äº›æˆæžœæ˜¯å¾ˆæœ‰ç”¨çš„ã€‚æˆ‘ä»¬åªæ˜¯å°è¯•填补所存在的一些空白。

毋庸置疑,对于 DAD,我们没有打算规范化。例如,尽管我们更喜欢在工作项列表中通过用户案例æ¥è¡¨ç¤ºéœ€æ±‚,但如果您希望应用用例场景,完全没问题。DAD æ˜¯ä¸€ä¸ªæ¡†æž¶ã€‚æ‚¨åº”è¯¥é€‰æ‹©å…¶ä¸­æœ€é€‚åˆæ‚¨çš„æ•æ·é¡¹ç›®éœ€æ±‚的技术。

结æŸè¯­

DAD å¯å¸®åŠ©å¤§åž‹è½¯ä»¶å¼€å‘团队æˆåŠŸå®žçŽ°æ•æ·å¼€å‘项目。DAD å°†æ¥è‡ªå„ç§çŽ°æœ‰çš„æˆç†Ÿæ•æ·æ–¹æ³•结åˆåˆ°ä¸€ä¸ªæ¡†æž¶ä¸­ï¼Œä¸ºå¸¸è§çš„æ•æ·æ–¹æ³•补充了ä¼ä¸šæŒ‡å—。因此,它å¯å¸®åŠ©å…·æœ‰è¶…è¿‡ 20 äººå›¢é˜Ÿçš„ç»„ç»‡å……åˆ†åˆ©ç”¨æ•æ·å¼€å‘方法。当组建 DAD 团队时,请记ä½ä»¥ä¸‹è¿™äº›æŠ€å·§ï¼šæ¬¢è¿Žé€šæ‰ä¸“家,专注于å作技能,为您的项目组建规模适中的团队,ç†è§£æ•æ·å›¢é˜ŸåŽŸåˆ™å’Œå›¢é˜Ÿç»„ç»‡ï¼Œä½†ä¿æŒçµæ´»å¹¶æé˜²è‡ªè¡Œç»„建的团队。

原文æ¥è‡ªï¼šhttp://www.ibm.com/developerworks/cn/rational/agile/forming-dad-teams/

使用特性团队(Feature Team)

æ•æ·å›¢é˜Ÿæ›´æœ‰åˆ©äºŽå…³æ³¨ä»·å€¼äº¤ä»˜ï¼Œå¯¹è¿™ä¸€ä¸»é¢˜äº§ç”Ÿäº†ç›¸å的矢é‡ã€‚å®žé™…ä¸Šå¯¹äºŽæ•æ·å›¢é˜Ÿçš„ç»„ç»‡ï¼Œå‡ ä¹Žæ™®éæŽ¥å—çš„æ–¹å¼æ˜¯å›´ç»•特性的。如下图所示。
scrumcn1352366254

特性团队方å¼çš„优点也éžå¸¸æ˜Žæ˜¾ï¼šå›¢é˜Ÿå¯ä»¥å½¢æˆå¯¹å®žé™…领域和系统使用方å¼çš„专业知识,而且通常å¯ä»¥åŠ é€Ÿä»»ä½•ç‰¹æ€§çš„ä»·å€¼äº¤ä»˜ã€‚è¿™ç§æ–¹å¼çš„开销更少,因为在对特性的实现中,多支团队ä¸å¿…æ¥å›žä¼ é€’待办事项æ¡ç›®ã€‚而且在团队之间的相互ä¾èµ–少很多,计划工作与执行也更简练。

与核心技能对应于技术栈中æŸä¸€å±‚å½¢æˆå¯¹æ¯”的是,特性团队的核心能力对应于æŸä¸ªç‰¹æ€§(或特性集)ã€‚å›¢é˜Ÿçš„å¾…åŠžäº‹é¡¹è¢«ç®€åŒ–äº†ï¼Œåœ¨ä»»ä½•æ—¶é—´åªæœ‰ä¸€åˆ°ä¸¤ä¸ªç‰¹æ€§ï¼Œè¿™æ ·å¿…ç„¶å¯ä»¥ä¿ƒè¿›é«˜å¢žå€¼ç‰¹æ€§çš„快速交付ï¼

也有一些其他作者支æŒä»¥ç‰¹æ€§ä¸ºç„¦ç‚¹çš„æ–¹å¼ã€‚例如Highsmith写é“:

基于特性的交付æ„味ç€å·¥ç¨‹å›¢é˜Ÿå°†æž„建最终产å“的特性。

å½“ç„¶ï¼Œè¿™å¹¶ä¸æ˜¯è¯´å›¢é˜Ÿæœ¬èº«å¿…然是“按特性组织â€çš„,因为所有工程团队到了最åŽéƒ½æ˜¯ä¸ºæœ€ç»ˆäº§å“构建特性,虽然他所说的å¯èƒ½å«æœ‰æŸç§åˆç†æŽ¨æ–­ã€‚其他人—包括Larmanå’ŒVodde,更直接(而且åšå†³)地æå€¡ç‰¹æ€§å›¢é˜Ÿä½œä¸ºç»„ç»‡æ•æ·å›¢é˜Ÿçš„æœ€ä½³æ–¹å¼ï¼Œä»–们指出:

特性团队是一ç§é•¿æœŸã€è·¨èŒèƒ½çš„团队,能够一个接一个地完æˆä¸€äº›ç«¯åˆ°ç«¯çš„顾客特性。其优点包括æé«˜ä»·å€¼äº§é‡ã€æ–¹ä¾¿çŸ¥è¯†å­¦ä¹ ã€ç®€åŒ–计划ã€é™ä½Žæµªè´¹….

Larmanå’ŒVodde还认为应该“é¿å…构件团队â€ã€‚ä¸ç®¡æ€Žæ ·ï¼Œä»–们也指出了采å–特性团队方å¼çš„è‹¥å¹²éš¾é¢˜ï¼ŒåŒ…æ‹¬éœ€è¦æ›´å®½æ³›çš„æŠ€èƒ½å’Œäº§å“知识ã€å¯¹ä»£ç çš„åŒæ—¶è®¿é—®ã€å…±äº«è®¾è®¡èŒè´£ã€ä»¥åŠåœ¨å®žçްå¤ç”¨å’ŒåŸºç¡€è®¾æ–½å·¥ä½œä¸­çš„困难,而且还有围绕边界的组织对é½é€ æˆæŸäº›å›¢é˜Ÿæˆå‘˜é”™ä½çš„å¯èƒ½æ€§ã€‚

æœ‰æ—¶å€™ç•Œé™æ˜¯æ¨¡ç³Šçš„

å³ä¾¿æœ‰ç€è¿™æ ·çš„建议,我们也必须承认特性和构件都是抽象概念,它们的界é™å¹¶ä¸æ˜Žç¡®ï¼Œä¸€ä¸ªäººè®¾è®¡çš„特性å¯èƒ½æ˜¯å¦ä¸€äººçš„æž„件。而且有时候,å•一特性最好被实现为独立的ã€é¢å‘æœåŠ¡çš„æž„ä»¶ã€‚

举例æ¥è¯´ï¼ŒTradeStation Securitiesæž„å»ºä¸€ä¸ªåœ¨çº¿äº¤æ˜“ç³»ç»Ÿï¼Œå…¶ä¸­â€œè®°å½•â€æ˜¯ä¸€ä¸ªå…³é”®çš„交易者功能,由少é‡é›†ä¸­çš„æ•æ·å›¢é˜Ÿä¸€èµ·åœ¨â€œè®°å½•â€åŠŸèƒ½ä¸Šå·¥ä½œã€‚è¡¨é¢ä¸Šçœ‹èµ·æ¥è¿™æ˜¯ç‰¹æ€§å›¢é˜Ÿçš„一个良好示例,因为记录是该系统的主è¦ç‰¹æ€§ã€‚

åœ¨å¼€å‘æ–°çš„在线交易功能时,如“外å¸å…‘æ¢äº¤æ˜“â€(Forex)ï¼Œå¿…é¡»æ·»åŠ æ–°çš„è®°å½•åŠŸèƒ½ã€‚ç„¶è€Œé©±åŠ¨è¿™ä¸€æ–°è®°å½•åŠŸèƒ½çš„æ˜¯ä¸€äº›ä¸»è¦æž„件,如æµåŒ–æ•°æ®ã€è´¦æˆ·ç®¡ç†ã€ä¸Žå¤–æ±‡äº¤æ˜“å¸‚åœºçš„äº¤æ¢æŽ¥å£ã€‚æ˜¯åº”è¯¥æŠŠæ–°ç‰¹æ€§çš„ä»·å€¼æµæè¿°ä¸ºâ€œé€šè¿‡ä¸“é—¨çš„è®°å½•åŠŸèƒ½å®Œæˆä¸Žå¤–汇交易市场的所有交易â€å—?如果是,很明显应该产生垂直特性æµï¼Œè€Œä¸”å¯èƒ½è¦é‡æ–°ç»„ç»‡å›¢é˜Ÿï¼Œä»Žå„æž„件团队å¸çº³æŸäº›æˆå‘˜å¹¶é’ˆå¯¹å¤–æ±‡äº¤æ˜“å¸‚åœºçš„äº¤æ˜“åˆ›å»ºæ–°çš„åž‚ç›´ç‰¹æ€§å›¢é˜Ÿã€‚æˆ–è€…æ˜¯å¦æŠŠæ–°ç‰¹æ€§æè¿°ä¸ºâ€œForex交易â€åŠ â€œForex绘图â€ï¼Ÿè¿™ç§æƒ…况下的绘图团队是å¦å·²ç»æœ‰äº†é€‚当的组织?这ç§è®°å½•功能是特性集还是构件呢?或者是二者?对这ç§çŠ¶å†µèµ·ä¸ªä»€ä¹ˆå字真的é‡è¦å—?

å³ä½¿è®¤ä¸ºå…¶ç§°è°“是å¯ä»¥æ˜Žç¡®çš„,特性团队总是最佳选择å—?Keith Black(TradeStation Technologies的副总è£)写é“:

åœ¨çº¿äº¤æ˜“è¦æ±‚在许多ä¸åŒå±‚次上有ç€ç›¸å½“深度的专业技能和行业知识,我们没有办法对æ¥è‡ªæ‰€æœ‰æž„件领域的æˆå‘˜åˆç†åœ°å½¢æˆç‰¹æ€§å›¢é˜Ÿã€‚

å› æ­¤ï¼Œåœ¨æˆ‘ä»¬å‘æ•æ·è½¬åž‹ä¸­ï¼Œæˆ‘们首先是围绕构件团队进行组织,在æˆç†Ÿä¹‹åŽï¼Œæˆ‘们现在针对特殊情况组建特性团队。虽然特性团队在推动一个计划直到完æˆä¸­æ˜¯å‡ºè‰²çš„,但是æŸäº›æƒ…况下它们就ä¸åˆç†ã€‚ä¾‹å¦‚ï¼Œæœ‰äºŒåæ”¯ç‰¹æ€§å›¢é˜Ÿè€Œä¸”他们都ä¾èµ–æŸä¸ªå…¬å…±æž„ä»¶ï¼Œæ¯”å¦‚ä¸€ä¸ªæ—¶é—´å…³é”®åž‹çš„è”æœºäº‹åС处ç†å¼•擎,让20支ä¸åŒçš„团队都å‚ä¸Žåˆ°è¿™ä¸€å…³é”®æž„ä»¶æ˜¯ä¸æ˜Žæ™ºçš„。相å,å¯ä»¥é€‰æ‹©ä½¿å…¶ä¸­çš„å˜æ›´ç”±å•一团队控制,由该团队代ç†20支团队的需è¦ï¼Œå¹¶é€šè¿‡å¯¹å…·ä½“特性作出修改确ä¿å…¶ä»–团队ä¸å±åŠä»–们ä¸äº†è§£çš„区域。

å‘特性团队倾斜

鉴于æ¯ç§æ–¹å¼çš„优点与缺点,答案并éžä¸€ç›´éƒ½é‚£ä¹ˆæ˜Žæ˜¾ã€‚ä½†æ˜¯è€ƒè™‘åˆ°æ•æ·å¯¹ç›´æŽ¥ä»·å€¼äº¤ä»˜çš„焦点,å¯ä»¥å‘特性团队适当倾斜。正如Mike Cottmeyer指出的:

我倾å‘于从特性团队开始,åªåœ¨å¿…须的情况下æ‰è½¬å‘构件…但这ç§å†³å®šæ˜¯åŸºäºŽç‰¹å®šçŠ¶å†µçš„ã€‚

为了åšå‡ºè¿™ç§å†³å®šï¼Œå°†å¿…须分æžä½ ä»¬çš„æŠ€æœ¯å¤šæ ·æ€§…你们系统设计的如何…使用什么工具æ¥ç®¡ç†ä»£ç åŸº…你们团队的规模与技能…团队是如何定ä½ä»¥åŠåˆ†å¸ƒåœ¨å“ªé‡Œ…还包括你们的基础设施自动化的å“质。

å¿…é¡»è®¤çœŸç ”ç©¶è¦æŠŠç‰¹æ€§å›¢é˜Ÿåˆ†è§£åˆ°ä»€ä¹ˆç¨‹åº¦…到了æŸç§è§„模特性团队会瓦解。伸缩到这样的程度是我们必须现在处ç†çš„å—,还是å¯ä»¥ç­‰å¾…?

在混åˆåž‹çš„å¼€å‘å’Œå—é™äºŽæœåŠ¡å“è´¨å议的bugä¿®æ­£å›¢é˜Ÿä¸­ä½¿ç”¨æ•æ·

如今在大多数的软件开å‘组织中,没有专门的维护工程(SE)团队æ¥å…³æ³¨å·²å‘布产å“的维护和支æŒã€‚工程(研å‘)团队除了完æˆäº§å“的功能开å‘外,è¦èŠ±è´¹åŒæ ·çš„æ—¶é—´æ¥å®Œæˆç»´æŠ¤ä»»åŠ¡ã€‚ç„¶è€Œï¼Œæ”¯æŒæœåŠ¡å“è´¨å议(SLAs)的维护支付的客户通常都很严格,所以比起研å‘,维护工程ç»å¸¸æœ‰æ›´é«˜çš„优先æƒã€‚ç„¶åŽéµå¾ªscrumçš„å·¥ç¨‹å›¢é˜Ÿç”±äºŽç»´æŠ¤å·¥ç¨‹é—®é¢˜çš„å¤§é‡æ¶Œå…¥ä»¥åŠå¯¹äºŽè¿…速解决问题的需求,他们无法æˆåŠŸåœ°é€’äº¤æ‰¿è¯ºçš„åŠŸèƒ½ã€‚åœ¨åŠŸèƒ½å¼€å‘和修改bug中挣扎å作用于团队士气和工作积æžåº¦ã€‚
以下基于scrum的选择是由å°ç»„æˆå‘˜æå‡ºå»ºè®®æ¥å…‹æœåœ¨è¿™äº›æƒ…况下å‘生的问题的。 Read more

æ•æ·ç»©æ•ˆè¯„ä¼°

æ¯å¹´æˆ‘们都痴迷于为团队æˆå‘˜è¯„级。回顾软件开å‘领域,好åƒå·²ç»æœ‰è¿‘50年历å²ï¼Œæœ‰ä¸€äº›æˆ‘们å¯ä»¥è‚¯å®šçš„æ˜¯ï¼šè½¯ä»¶æ˜¯ç”±å›¢é˜Ÿæ¥åˆ›å»ºçš„ï¼Œè€Œä¸æ˜¯ä¸ªäººçš„。此外,æ¯ä¸ªäººéƒ½éœ€è¦ç§¯æžä¸»åŠ¨çš„åˆä½œæ¥ç”Ÿäº§æœ‰è´¨é‡çš„软件,这æ„味ç€å›¢é˜Ÿä¸­çš„æ¯ä¸ªäººæ¥æ‰¿æ‹…é›†ä½“æ‰€æœ‰åˆ¶ï¼Œå¹¶ä¸”ç›¸äº’å¸®åŠ©ã€‚å› ä¸ºä»–çš„ä¸»æ—¨å¹¶ä¸æ˜¯æˆä¸ºä¸€å英雄,而是创建一个超高质é‡å’Œå¯é¢„测的最终产å“。 Read more

良好的团队结构指导原则

以下是一套用于æ€è€ƒå¦‚何设计一个åˆç†çš„团队结构的指导原则。æ¯ä¸€ä¸ªæŒ‡å¯¼åŽŸåˆ™ï¼Œä»¥å‘现有团队或者拟议的团队æå‡ºä¸€ä¸ªé—®é¢˜çš„å½¢å¼å‡ºçŽ°ï¼Œå¹¶ä¸”è¿™äº›é—®é¢˜éœ€è¦è¿­ä»£åœ°è¯¢é—®ã€‚询问现有团队或拟议团队æ¯ä¸€ä¸ªé—®é¢˜åŽï¼Œæ ¹æ®ç­”案改å˜å›¢é˜Ÿç»“构;当团队结构改å˜åŽï¼Œé‡æ–°å†è¯¢é—®ï¼Œç›´åˆ°å¯¹äºŽæ¯ä¸€ä¸ªé—®é¢˜ï¼Œä½ éƒ½å¯ä»¥å›žç­”“是â€ã€‚
这个结构是å¦å¯ä»¥çªå‡ºä¼˜åŠ¿ï¼Œå¼¥è¡¥ä¸è¶³ï¼Œå¹¶å¸®åŠ©å›¢é˜Ÿæˆå‘˜æå‡ç§¯æžæ€§ï¼Ÿ Read more

å¯¹é€ŸçŽ‡é‡æ–°å–æ ·æ¥æ¨¡æ‹Ÿé¡¹ç›®

我通常åªä¼šåœ¨æˆ‘使用过一个技巧若干年并å‘现这个技巧确实在几个ä¸åŒæƒ…å½¢ä¸‹éƒ½é€‚ç”¨åŽæ‰ä¼šå°†è¿™ä¸ªæŠ€å·§å‘Šè¯‰å¤§å®¶ã€‚而今天,在本文中我è¦ä»‹ç»çš„æ­£å¼è¿™æ ·ä¸€ç§æŠ€å·§ã€‚这是一ç§ç»Ÿè®¡å­¦çš„æ–¹æ³•,å«åšâ€œé‡æ–°å–æ ·â€ï¼Œæˆ‘ä¸€ç›´å–œæ¬¢ç”¨è¿™ç§æ–¹æ³•æ¥å¯¹æœªæ¥çš„速率进行预测。

釿–°å–样是基于我们相信我们在未æ¥è§‚察到的数æ®ä¼šå’Œä»¥å‰è§‚察到的数æ®ç›¸ä¼¼çš„原ç†çš„ã€‚åœ¨ä¸‹é¢æˆ‘们è¦è§‚察的例å­ä¸­ï¼Œæˆ‘们å‡å®šä¸€ä¸ªå›¢é˜Ÿåœ¨å°†æ¥çš„速率应该和过去的速率是相近的。我们å¯ä»¥æŠŠé‡æ–°å–样想象æˆå°†æ‰€æœ‰æˆ‘ä»¬æ”¶é›†è¿‡çš„è€æ•°æ®å…¨éƒ¨éƒ½æ”¾åˆ°ä¸€ä¸ªè¢‹å­é‡Œé¢ã€‚如果我们过去的速率是18,17,18,19,22å’Œ20,然åŽç›¸ä¿¡æˆ‘们把这些数字都分别写在纸æ¡ä¸Šï¼Œç„¶åŽæ”¾å…¥è¢‹å­ä¸­ã€‚需è¦ç•™æ„的是,在这个袋å­ä¸­å°†ä¼šæœ‰ä¸¤ä¸ªä¸Šé¢å†™ç€18的纸æ¡ï¼Œå› ä¸ºæˆ‘们有两次的速率都是18。

接下æ¥è¦é¢„测未æ¥çš„速率了,我们è¦åšçš„就是从袋å­ä¸­æ‹¿å‡ºä¸€å¼ çº¸æ¡ã€‚第一张被抽出的纸æ¡ä¸Šé¢çš„æ•°å­—就是我们预测第一个sprintçš„é€ŸçŽ‡ã€‚ç„¶åŽæˆ‘们è¦é¢„测第二个sprint的速率,我们è¦åšçš„就是å†ä»Žè¢‹å­é‡ŒæŠ½å‡ºä¸€å¼ çº¸æ¡è€Œå·²ï¼Œä½†æ˜¯åœ¨è¿™ä¹‹å‰ï¼Œæˆ‘们必须è¦å°†ç¬¬ä¸€æ¬¡æŠ½å‡ºçš„纸æ¡å…ˆæ”¾å›žåˆ°è¢‹å­ä¸­ã€‚è¿™ç§æ–¹æ³•å«åšâ€œresampling with replacementâ€ã€‚因为团队在任何给定的sprint都有å¯èƒ½å†æ¬¡è¾¾åˆ°ä»¥å‰çš„ä»»æ„一个速率。

å‡è®¾æˆ‘们è¦é¢„测一个团队在未æ¥å个sprint能够完æˆçš„任务é‡ã€‚æˆ‘ä»¬å°±ä¼šé‡æ–°å–æ ·åæ¬¡ã€‚æ¯æ¬¡æˆ‘们都从袋å­é‡ŒæŠ½å‡ºä¸€å¼ çº¸æ¡ï¼Œç„¶åŽæ”¾å›žåŽ»ï¼Œç›´åˆ°æŠ½å®Œåæ¬¡ã€‚æœ€åŽæˆ‘ä»¬æŠŠåæ¬¡æŠ½åˆ°çš„æ•°å­—加起æ¥ï¼ŒäºŽæ˜¯æˆ‘们就得到了这个团队在接下æ¥å个sprint有å¯èƒ½å®Œæˆçš„工作é‡ã€‚

当然,我们完全有å¯èƒ½å次都抽中数值最大的22,也有å¯èƒ½éƒ½æŠ½åˆ°17ã€‚ä½†æ˜¯ï¼Œå®žé™…ä¸Šè¿™ä¸¤ç§æƒ…况出现的概率æžä½Žï¼Œæœ€å¤šæ¯å‡ åƒæˆ–者几百次æ‰å‡ºçŽ°ä¸€æ¬¡ï¼Œæ‰€ä»¥åŸºæœ¬ä¸Šå¯ä»¥å¿½ç•¥ä¸è®¡ã€‚

由于我们ä¸å¯èƒ½æ‰‹å·¥æ¥åšå‡ åƒæ¬¡çš„å–æ ·ï¼Œè¿™ä¸ªæ—¶å€™æˆ‘们就需è¦ç”µè„‘æ¥å¸®åŠ©æˆ‘ä»¬äº†ã€‚è¿™æ ·æˆ‘ä»¬å°±å¯ä»¥ä»Žå¤§é‡çš„æ•°æ®ä¸­çœ‹åˆ°å®žé™…的结果了。å‡è®¾æˆ‘们è¦å¯åŠ¨ä¸€ä¸ª10个sprint的项目。如果我们能够知é“以下这些东西将会对我们有很大帮助:

  • ï¬Â 10个sprint能够完æˆçš„工作é‡çš„å¹³å‡å€¼æ˜¯å¤šå°‘?
  •      团队完æˆ200个故事点数的工作é‡éœ€è¦çš„æ—¶é—´æ˜¯å¤šå°‘?

其实è¦å›žç­”è¿™äº›é—®é¢˜ï¼Œä½¿ç”¨é‡æ–°å–样和模拟的方法是最直接的了。接下æ¥è®©æˆ‘们æ¥çœ‹çœ‹æ€Žä¹ˆåšå§ã€‚ä½ å¯ä»¥æ ¹æ®è¿™ä¸ªé€Ÿçއ釿–°å–样电å­è¡¨æ ¼ï¼ˆhttp://blog.mountaingoatsoftware.com/wp-content/uploads/ResamplingVelocity.xls)æ¥è¿›è¡Œã€‚在下图中,B3å•元格到B28å•元格显示的是历å²é€ŸçŽ‡ã€‚

scrumcn1320381250

由于我们的项目需è¦10个sprint,å•元格D3到E12显示的是sprint 1到10釿–°é‡‡æ ·åŽçš„速率。

agilescrumcn1320381274

釿–°é‡‡æ ·é€ŸçŽ‡å®žé™…ä¸Šå°±æ˜¯ä»Žå•元格B3到B28ä¸­éšæœºæŠ½å–速率而已。这样的任务å¯ä»¥ä½¿ç”¨ä¸‹é¢è¿™æ¡å…¬å¼æ¥å®Œæˆï¼š
=SMALL($B$3:$B$28,INT(COUNT($B$3:$B$28)*RAND())+1)
这个公å¼é¦–先产生一个1到26ä¹‹é—´çš„éšæœºæ•°ï¼Œç„¶åŽç”¨SMALL方法从列表中选出一项。(SMALL方法是从一个列表中选中最å°çš„一项,在这个例å­ä¸­æˆ‘们也å¯ä»¥ä½¿ç”¨LARGEï¼Œç›®çš„åªæ˜¯ä¸ºäº†è¦ä»ŽB3到B28ä¸­éšæœºæŠ½å–一个速率而已。)

因为我们对E3到E12使用了RAN()å‡½æ•°ï¼Œæ‰€ä»¥æ¯æ¬¡ä½ åœ¨è¡¨æ ¼ä¸­æ”¹å˜ä»»ä½•å•元格的时候,E3到E12中的数值都会å˜åŒ–一次。这个正是我们想è¦çš„结果。

E3到E12模拟了10个sprint的速率。然而,我们想è¦çš„æ˜¯æ¨¡æ‹Ÿ100次,200次甚至是1000次项目的数æ®ï¼ˆæ¯æ¬¡éƒ½æ˜¯10个sprint)。è¦è¾¾åˆ°è¿™æ ·çš„目的,我们必须åšä¸€äº›é¢å¤–的工作,因为我们将è¦ä½¿ç”¨å¤§å®¶åœ¨Excel中ä¸å¤§ç†Ÿæ‚‰çš„Data Table。在我们的表格中,Data Table的范围是G3到H202,下图显示的是其中一部分。

scrumcnagile

G列显示的是sprintçš„åºå·ï¼ŒH列显示的是10个sprint速率的总和,也就是说æ¯ä¸ªå•元格就代表了这个例å­ä¸­ä¸€æ¬¡é¡¹ç›®ã€‚从途中å¯ä»¥çœ‹å‡ºï¼Œç¬¬ä¸€æ¬¡é¡¹ç›®10个sprint总共å¯ä»¥å®Œæˆçš„æ•…事点数是230点。在下一行中,团队得到了高得多的速率264。在数æ®è¡¨æ ¼ä¸­ï¼Œæˆ‘é‡å¤äº†è¿™æ ·çš„æ“ä½œ200次,当然你也å¯ä»¥æ ¹æ®è‡ªå·±çš„æƒ…况æ¥å¢žåŠ æˆ–è€…å‡å°‘。

本文结尾有建立Data Table的概述。想è¦è¯¦ç»†ä»‹ç»è¯·å‚阅Excel帮助文档。

现在我们有200个次项目的数æ®äº†ï¼ŒäºŽæ˜¯æˆ‘们就å¯ä»¥å›žç­”ä¹‹å‰æå‡ºçš„é—®é¢˜äº†ã€‚â€œè¿™ä¸ªå›¢é˜Ÿåœ¨10个sprint中一个å¯ä»¥å®Œæˆå¤šå°‘工作é‡å‘¢?â€å•元格E17å’ŒE18显示出200次模拟项目的å¯ä»¥å®Œæˆçš„å¹³å‡å·¥ä½œé‡ï¼Œä»¥åŠå…¶æ ‡å‡†å·®ã€‚

scrumcn1320381462

在这个例å­ä¸­ï¼Œé‡æ–°å–样的平å‡å€¼æ˜¯240点,标准差是12。于是我们å¯ä»¥æŽ¨æµ‹å›¢é˜Ÿå¯ä»¥å®Œæˆå¤§æ¦‚240个故事点数的工作é‡ã€‚æˆ‘ä»¬éƒ½çŸ¥é“æœ‰95%çš„å¯èƒ½æ€§å›¢é˜Ÿèƒ½å®Œæˆ2个标准差范围内的任务,也就是说95%çš„å¯èƒ½å›¢é˜Ÿå¯ä»¥å®Œæˆ216到264个故事点数的任务。

å¦‚æžœæˆ‘çš„è€æ¿éœ€è¦æˆ‘ä¿è¯çš„è¯ï¼Œæˆ‘会说:“我å¯ä»¥ä¿è¯å®Œæˆ216个故事点数。â€å½“然,从技术角度分æžï¼Œæˆ‘çŸ¥é“æ•°å­¦æ–¹æ³•å¹¶ä¸èƒ½æ”¯æŒæˆ‘的承诺,因为还有2.5%çš„å¯èƒ½æˆ‘们会åªèƒ½å®Œæˆå°‘于216个点数的任务。尽管如此,包括我å‚加过的很多很好的团队在内,人们总是希望能够多åšä¸€ç‚¹ï¼Œè€Œä¸æ˜¯åªæ‰¿è¯º216个点数,于是,我们还是决定210点以防止那2.5%的概率å‘生。

å¦ä¸€ä¸ªé€šè¿‡è¿™ç§æ¨¡æ‹Ÿé¡¹ç›®å¯ä»¥è§£å†³çš„é—®é¢˜æ˜¯ï¼Œå½“ä½ çš„è€æ¿å¯¹ä½ è¯´ï¼šâ€œæˆ‘们è¦åœ¨æŽ¥ä¸‹æ¥10个sprint以内完æˆ250个故事点数的工作。â€ä½ å¯ä»¥é€šè¿‡é‡æ–°é‡‡æ ·çš„æ–¹æ³•æ¥çœ‹çœ‹å®Œæˆè¿™ä¹ˆå¤šçš„工作有多大å¯èƒ½ï¼Œä¹Ÿå¯ä»¥çŸ¥é“有多大å¯èƒ½æ€§å¯ä»¥è¶…è¿‡è€æ¿ï¼Œå®¢æˆ·å’Œç”¨æˆ·çš„预期。下图中的表格正是显示了这个自动完æˆçš„功能。

scrumcnagile1320381491

在L20å•元格中输入期望的数值,表格会自动计算在模拟中达到或者超过这个数值的次数填入L21ä¸­ï¼Œç„¶åŽæŠŠå¾—å‡ºçš„æœºçŽ‡å¡«å…¥L22å•元格中。在这个例å­ä¸­ï¼Œå¦‚æžœè€æ¿æƒ³è¦åœ¨10个sprint中完æˆ250个点数的工作,我们å¯ä»¥å›žå¤è¯´â€œæˆ‘ä»¬ä¼šå°½åŠ›ï¼Œä½†æ˜¯åŽ†å²æ•°æ®è¡¨æ˜Žæˆ‘ä»¬åªæœ‰20%的机会完æˆè¿™ä¹ˆå¤šçš„工作。â€

希望这ç§é‡æ–°å–æ ·çš„æŠ€å·§èƒ½å¯¹ä½ æœ‰æ‰€å¸®åŠ©ã€‚ä½¿ç”¨è¿™ç§æŠ€å·§è¿˜å¯ä»¥å®Œæˆå¾ˆå¤šä¼°ç®—。我会在以åŽçš„æ–‡ç« ä¸­åšä»‹ç»ã€‚

ä½ å¯ä»¥åœ¨http://blog.mountaingoatsoftware.com/wp-content/uploads/ResamplingVelocity.xls下载上é¢è¿™äº›ä¾‹å­ã€‚

如何创建Data Table

è¦åˆ›å»ºData Table,首先è¦åœ¨H2ï¼ˆä¹Ÿå°±æ˜¯ä½ æƒ³è¦æ˜¾ç¤ºæ¨¡æ‹Ÿç»“果的å•元格)填入你需è¦ç”¨æ¥è®¡ç®—æ¯æ¬¡æ¨¡æ‹Ÿç»“果的方程。在这里,由于我想è¦çŸ¥é“10个sprint的速率总和,于是我输入:=SUM($E$3:$E$12)

接下æ¥ï¼Œåœ¨G列中填入数字1到200。然åŽå‡è®¾ä½ è¦åš200次模拟,选中G2到G202å•元格。现在我们开始创建Data Table。在我手上的Excel – Mac 2011中,选中Data->What If->Data Tables。然åŽä½ ä¼šçœ‹åˆ°ä¸€ä¸ªå¼¹å‡ºå¯¹è¯æ¡†è¯¢é—®éœ€è¦çš„å–值范围。然åŽç”¨é¼ æ ‡é€‰ä¸­G2å•å…ƒæ ¼ã€‚å…³é—­å¯¹è¯æ¡†ï¼Œä½ å°±ä¼šçœ‹åˆ°200行的模拟数æ®äº†ã€‚

作者:Mike Cohn

原文地å€ï¼šhttp://blog.mountaingoatsoftware.com/simulating-a-project-by-resampling-velocity

看看团队的故事点数如何从1到8ä¿æŒä¸€è‡´

最近关于如何利用用户故事的相对大å°è¿›è¡Œä¼°ç®—çš„è¯é¢˜ï¼Œå·²ç»åœ¨å¾ˆå¤šè¯„论以åŠè¿™ä¸ªåšå®¢çš„留言中多次出现过了,那么我们就这个è¯é¢˜æ¥è®¨è®ºä¸€ä¸‹å§ã€‚下é¢çš„图表显示了一个公å¸çš„相关数æ®ï¼š
scrumcn1319134105

æ¯ä¸€åˆ—的数æ®å’Œæ¯ä¸€å¯¹æŸ±çŠ¶å›¾éƒ½æ˜¾ç¤ºäº†æ¥è‡ªä¸‹æ–¹è¡¨æ ¼ä¸­å¯¹åº”的用户故事点数的数æ®ã€‚ç¬¬ä¸€ç»„æ•°æ®æ˜¯å…³äºŽ1个故事点数的用户故事的,第二组是关于2个故事点数的用户故事,如此类推。在第一组数æ®ä¸­æˆ‘们å‘现,这家公å¸ä¸­å®Œæˆä¸€ä¸ª1个故事点数的用户故事所需è¦çš„æ—¶é—´çš„䏭使•°æ˜¯21ä¸ªå°æ—¶ã€‚最短所需时间是6å°æ—¶è€Œæœ€é•¿æ‰€éœ€æ—¶é—´æ˜¯36å°æ—¶ï¼Œåœ¨ä¸Šå›¾ä¸­åˆ†åˆ«ç”¨ç»¿è‰²å’Œè“è‰²è¡¨ç¤ºï¼Œè€Œä¸­ä½æ•°åˆ™ç”±çº¢è‰²æ›²çº¿è¡¨ç¤ºã€‚

让我们æ¥çœ‹çœ‹2个故事点数的用户故事。从图中我们å¯ä»¥çœ‹åˆ°ï¼Œä¸­ä½æ•°æ˜¯52ä¸ªå°æ—¶ï¼Œæœ€çŸ­å’Œæœ€é•¿çš„æ—¶é—´åˆ†åˆ«æ˜¯31å’Œ73ä¸ªå°æ—¶ã€‚如果我们å‡è®¾1个故事点数的用户故事的估算是准确的,那么我们应该预期2ä¸ªæ•…äº‹ç‚¹æ•°çš„ç”¨æˆ·æ•…äº‹æ‰€éœ€æ—¶é—´çš„ä¸­ä½æ•°åº”该是42ä¸ªå°æ—¶è€Œä¸æ˜¯52å°æ—¶ã€‚åè¿‡æ¥æŽ¨æ–­ï¼Œé‚£ä¹ˆ1ä¸ªæ•…äº‹ç‚¹æ•°çš„ç”¨æˆ·æ•…äº‹æ‰€éœ€æ—¶é—´çš„ä¸­ä½æ•°åº”该是26ä¸ªå°æ—¶ã€‚在ç»å¤§å¤šæ•°æƒ…å†µä¸‹ï¼Œä¼°è®¡éƒ½ä¸æ˜¯å®Œç¾Žçš„。无论是从哪边开始推断都有所å差,因为2ä¸ªç”¨æˆ·æ•…äº‹çš„ä¸­ä½æ•°å¹¶ä¸æ˜¯æ­£å¥½æ˜¯ä¸¤å€çš„关系。

但是我å†çœ‹çœ‹3ä¸ªæ•…äº‹ç‚¹æ•°çš„ç”¨æˆ·æ•…äº‹ã€‚æ ¹æ®æŽ¨ç®—ï¼Œå¯¹åº”çš„ä¸­ä½æ•°åº”该是1个故事点数用户故事的3å€ï¼Œä¹Ÿå°±æ˜¯è¯´åº”该是63å°æ—¶ï¼Œä»Žå›¾ä¸­å¯ä»¥çœ‹å‡ºå®žé™…是64,已ç»éžå¸¸æŽ¥è¿‘。

åŒç†ï¼Œ5个和8ä¸ªæ•…äº‹ç‚¹æ•°çš„ç”¨æˆ·æ•…äº‹çš„ä¸­ä½æ•°åº”该分别是105å°æ—¶å’Œ166å°æ—¶ï¼Œè€Œä»–们的实际值是100å°æ—¶å’Œ111å°æ—¶ã€‚但是,等等,我们必须è¦å¯¹è¿™ä¸¤ç§ç”¨æˆ·æ•…事进行一些调整。如果你使用的是我推è的方法的è¯ï¼Œä½ å°±ä¼šå°†è¿™äº›æ•°å­—çœ‹æˆæ˜¯ä¸€ä¸ªä¸ªæ°´æ¡¶ã€‚8个故事点数实际上对应的是从6到8的用户故事。所以,如果你认为一个用户故事是6个故事点数的è¯ï¼Œä½ ä¸èƒ½æŠŠå®ƒæ”¾åˆ°5个点数的那一项里é¢ï¼Œè€Œæ˜¯è¦æ”¾åˆ°8个点数的一项。

这就æ„味ç€ï¼Œ5个故事点数的用户故事实际上是对应4个和5个点数的用户故事。如果我们å‡è®¾è¿™ä¸¤ä¸ªå¤§å°çš„ç”¨æˆ·æ•…äº‹çš„æ•°é‡æ˜¯ç›¸ç­‰çš„ï¼Œé‚£ä¹ˆå®žé™…çš„å¹³å‡æ•…事点数应该是4.5。于是4.5×21=94.5ä¸ªå°æ—¶ï¼Œåœ¨å®žé™…值101å°æ—¶çš„5%的误差以内,还算ä¸é”™ã€‚

由于图表中8个故事点数对应的是6,7,8三ç§å¤§å°çš„用户故事,我们å¯ä»¥æŽ¨æ–­å¹³å‡æ•…事点数是7ã€‚äºŽæ˜¯ï¼Œä¸­ä½æ•°åº”该是7×21=147å°æ—¶ã€‚ç„¶è€Œï¼Œå®žé™…å€¼å´æ˜¯111å°æ—¶ã€‚所以,这个团队在进行8个故事点数的用户故事的时候肯定会比计划中有所å差。

(在这里我想说点题外è¯ã€‚与其简å•地推断21ä¸ªå°æ—¶å°±æ˜¯1个故事点数所对应的时间,然åŽåœ¨åŽç»­çš„计算中使用,使用Excel进行线性回顾分æžä¼šæ˜¯æ›´å¥½çš„办法。你å¯ä»¥è§‚察å¤åˆ¤å®šç³»æ•°r-squaredæ¥æ£€éªŒå¾—出的值是å¦åˆç†ã€‚åœ¨è¿™é‡Œæˆ‘å¹¶ä¸æƒ³æ·±å…¥æŽ¢è®¨è¿™äº›æ•°å­¦é—®é¢˜ã€‚但是我相信,这些数æ®ä¸€ç›´åˆ°8个故事点数都会比较准确。)

æˆ‘é¼“åŠ±ä½ åœ¨ä½ çš„å…¬å¸æ”¶é›†ç±»ä¼¼çš„æ•°æ®ï¼Œä½†æ˜¯ä½ å¿…é¡»å°å¿ƒã€‚å› ä¸ºä½ è¦æ”¶é›†çš„æ˜¯æ¯ä¸ªç”¨æˆ·æ•…事的实际时间,所以很有å¯èƒ½ä½ çš„团队会比平常感觉到更多的需è¦åœ¨ä¼°è®¡æ—¶é—´å†…完æˆçš„压力。然åŽï¼Œä»–ä»¬ä¹Ÿè®¸å°±ä¼šç»™è‡ªå·±é¢„ç•™æ›´åŠ å……è£•çš„æ—¶é—´ã€‚è¦æ˜¯è¿™æ ·çš„æƒ…况å‘生的è¯ï¼Œæœ€ç»ˆå°†å½±å“到数æ®çš„准确性,è¿èƒŒäº†æ”¶é›†æ•°æ®çš„åˆè¡·ã€‚所以,让团队看看类似上é¢çš„图表,然åŽå‘他们说明这是为了帮助他们。举个例å­ï¼Œä¸Šé¢å›¾è¡¨ä¸­çš„团队å¯èƒ½ä¼šæ„识到他们也许将本æ¥åº”该是5个故事点数的用户故事误当作8个故事点数了。(从数æ®ä¸Šæ¥åˆ†æžï¼Œä¹Ÿè®¸ä»–们的估算是对的,åªä¸è¿‡æ˜¯å½“中包å«äº†æ¯”较多的6个故事点数的用户故事而已。)

很多团队会å‘现他们对故事点数从1到8的用户故事的估算还是比较准确的,就åƒä¸Šé¢å›¾è¡¨ä¸­çš„å›¢é˜Ÿä¸€æ ·ã€‚ä½¿ç”¨è¿™ç§æ–¹æ³•一段时间以åŽï¼ŒåŠ ä¸Šä¸€äº›ç»ƒä¹ å’Œæ ¡æ­£ï¼Œå‡ ä¹Žä»»ä½•å›¢é˜Ÿéƒ½å¯ä»¥å¯¹13个故事点数åŠä»¥ä¸‹çš„用户故事进行较为准确的估算。至于超过了13ä¸ªæ•…äº‹ç‚¹æ•°çš„ç”¨æˆ·æ•…äº‹ï¼Œä½¿ç”¨è¿™ç§æ–¹æ³•的时候必须éžå¸¸å°å¿ƒï¼Œæˆ–者åªèƒ½å¤Ÿç”¨æ¥å›žç­”一些比较粗略的问题,如:“这个项目的周期大概是几个月还是è¦ä¸€å¹´ï¼Ÿâ€

如果你收集了你的团队的相关数æ®ï¼Œå¹¶ä¸”æ„¿æ„和我分享的è¯ï¼Œæˆ‘将会å分感激。你å¯ä»¥æŠŠæ•°æ®é€šè¿‡é‚®ä»¶æ–¹å¼å‘é€åˆ°mike@mountaingoatsoftware.com。我一直在åšè¿™äº›æ•°æ®çš„研究工作,因此如果我能够有更多数æ®ä¼šæ›´å¥½ã€‚

作者:Mike Cohn

原文地å€ï¼šhttp://blog.mountaingoatsoftware.com/seeing-how-well-a-teams-story-points-align-from-one-to-eight

 

从估计ç»å¯¹æ—¶é—´è½¬æ¢åˆ°ç›¸å¯¹ä¼°è®¡

æ­å–œä½ ç»ˆäºŽè¯´æœå›¢é˜Ÿä½¿ç”¨ç›¸å¯¹ä¼°è®¡çš„用户故事点数æ¥ä¼°ç®—工作é‡ï¼Œè¿™çœŸçš„æ˜¯ä¸€ä¸ªéžå¸¸å¤§çš„进步,现在你准备好进入到你们的第一次估算扑克游æˆäº†å—?你该怎么开始呢?哪个是1ä¸ªç‚¹çš„æ•…äº‹ï¼Ÿå“ªä¸ªåˆæ˜¯3个点的呢?13个点的呢?这个游æˆå¯¹ä½ å’Œä½ çš„团队æ¥è¯´éƒ½æ˜¯ä¸€ä¸ªå…¨æ–°çš„开始。

我曾ç»è§è¿‡ä¸€ä¸ªç®€å•的设定åˆå§‹å€¼çš„æ–¹æ³•就是先从你的产å“å¾…åŠžåˆ—è¡¨ä¸­æ‰¾å‡ºä¸€ä¸ªå¤§å®¶åŒæ„作为1个点的用户故事。然åŽï¼Œä½ å°±å¯ä»¥å†æŒ‘选一个大概是这个用户故事2å€å·¦å³å·¥ä½œé‡çš„æ•…事作为2个点的用户故事,接ç€å°±æ˜¯ä¸¤å€äºŽ2个点的用户故事的工作é‡çš„作为5ä¸ªç‚¹çš„ç”¨æˆ·æ•…äº‹ï¼Œä»¥æ­¤ç±»æŽ¨ã€‚è¿™æ ·åšæ²¡ä»€ä¹ˆé—®é¢˜ï¼Œä½†æ˜¯ä½ è¦æ¸…晰地æ„识到你的团队对这个æµç¨‹è¿˜æ˜¯éžå¸¸é™Œç”Ÿçš„ï¼ŒåŒæ—¶ä½ åˆå¸Œæœ›å°½é‡åœ°å‡å°‘歧义和主观性。然而,任何估算本æ¥å°±æ˜¯ä¸»è§‚的,因此,我在这里推è一个更加切åˆå®žé™…的方法æ¥å¸®åŠ©å›¢é˜Ÿæ›´å¥½åœ°è¿›è¡Œä¼°ç®—ã€‚

一个ä¸ä¸€æ ·çš„æ–¹æ³•

我们并ä¸èƒ½å› ä¸ºæˆ‘们采用了新的估算方法就把以å‰çš„估算方法看作æˆå™©æ¢¦ç„¶åŽè¿…速忘掉。在以å‰çš„æŸäº›æ—¶å€™ï¼Œè¿™äº›æ–¹æ³•æ˜¯å¯è¡Œçš„。用例ã€é—®é¢˜ã€bugã€åŠŸèƒ½ç‰¹æ€§â€”â€”æ— è®ºä½ ç®¡å®ƒä»¬å«ä»€ä¹ˆï¼Œå›¢é˜Ÿéƒ½èƒ½å¤Ÿå®Œæˆï¼Œè€Œä¸”å›¢é˜Ÿä¹Ÿæœ‰å¯¹è¿™äº›ä¸œè¥¿çš„å·¥ä½œé‡æœ‰ä¸€å®šçš„认识。我的方法是,我们ä»ç„¶é‡‡ç”¨è€å¼ä¼°ç®—方法的一部份æ¥å»ºç«‹èµ·å’Œæ–°çš„ç”¨æˆ·æ•…äº‹ç‚¹æ•°çš„å¯¹åº”å…³ç³»ã€‚ä¸‹é¢æ˜¯æˆ‘的方法的æµç¨‹ï¼š
1ï¼‰Â å»ºç«‹ä¸€ä¸ªç”¨æˆ·æ•…äº‹ç‚¹æ•°å’Œå®žé™…æ—¶é—´å¯¹åº”çš„è¡¨æ ¼ï¼ˆä¸ºäº†ä¿æŒè¡¨æ ¼ç®€æ´æˆ‘把20,40å’Œ100点去掉了)。如下图所示:
scrumcn1314947985
当然,你å¯ä»¥æ ¹æ®è‡ªå·±çš„需è¦å¯¹æ—¶é—´éƒ¨ä»½è¿›è¡Œä¿®æ”¹ã€‚值得注æ„的是,éšç€ç‚¹æ•°çš„增加,在时间部分的上é™å’Œä¸‹é™å˜å¾—更加é‡è¦ï¼ˆä¾‹å¦‚ä¸èƒ½æ˜¯çº¿æ€§çš„)。这是因为越大的用户故事,包å«çš„ä¸ç¡®å®šæ€§å°±è¶Šå¤šã€‚
2) 以团队为基础,回顾一下(å¯ä»¥å›žé¡¾æ–‡æ¡£æˆ–者仅凭记忆)以往类似功能特性所需è¦çš„æ—¶é—´ã€‚需è¦ç•™æ„的是,这里所指的时间必须包括了能够把用户故事标记æˆå®Œæˆçš„æ‰€æœ‰ä»»åŠ¡çš„æ—¶é—´ï¼Œä¾‹å¦‚å¼€å‘ã€è¯„审ã€è®¾è®¡æµ‹è¯•ã€æ‰§è¡Œæµ‹è¯•ã€éƒ¨ç½²ç­‰ç­‰ã€‚
3ï¼‰Â æ ¹æ®æˆ‘们得到的时间,我们就使用第一步中的表格把第二步中的功能特性作为对应大å°çš„用户故事的å‚考。例如,以å‰çš„XYZ特性现在æˆä¸ºäº†8个故事点数的用户故事的å‚考。
4ï¼‰Â ç„¶åŽæˆ‘们é‡å¤è¿™äº›æ­¥éª¤ï¼Œç›´åˆ°æˆ‘们为æ¯ä¸ªç”¨æˆ·æ•…事点数å¡ç‰‡éƒ½æ‰¾åˆ°äº†ç›¸åº”的作为å‚考的特性为止。

有一点值得注æ„的是,一旦完æˆäº†è¿™ä¸ªè¿‡ç¨‹ä»¥åŽï¼Œä¸€å®šè¦æŠŠæ•…事点数和时间的对应表格去掉,而使用刚刚找出æ¥çš„作为å‚考的特性。这样,我们就å¯ä»¥å¼€å§‹æŠŠæ–°çš„用户故事和作为å‚考的特性进行比较æ¥è¿›è¡Œæˆ‘们的扑克游æˆäº†ã€‚有些人会想,è¦ä¹ˆæˆ‘们就继续用上é¢çš„对照表格æ¥ç»§ç»­ä¼°ç®—å§ï¼Ÿä½†æ˜¯ï¼Œè¿™å¹¶ä¸æ˜¯æˆ‘们想è¦çš„。å‡å¦‚我们真的这么åšçš„è¯ï¼Œå…¶å®žæˆ‘们就是在进行套上了用户故事点数外衣的è€å¼ä¼°ç®—è€Œå·²ï¼Œè€Œæœ€åŽæˆ‘们å‘现我们这么åšçº¯ç²¹æ˜¯æµªè´¹æ—¶é—´ã€‚如果有人问起è€å¼çš„估算时间方法,你就å¯ä»¥å‡è£…失忆然åŽå‘Šè¯‰ä»–ä½ å·²ç»å¿˜äº†ï¼ŒçŽ°åœ¨ä½ å”¯ä¸€è®°å¾—çš„å°±æ˜¯è¦ç”¨ç”¨æˆ·æ•…äº‹ä¹‹é—´è¿›è¡Œæ¯”è¾ƒï¼Œè€Œä¸æ˜¯ç›´æŽ¥åŽ»ä¼°ç®—æ—¶é—´ã€‚å”¯ä¸€çš„ä¾‹å¤–å°±æ˜¯å›¢é˜Ÿæœ‰æ–°æˆå‘˜åŠ å…¥çš„æ—¶å€™ï¼Œè€Œä»–åˆä¸ç†Ÿæ‚‰ä¼°ç®—扑克的æµç¨‹ï¼Œè¿™ä¸ªæ—¶å€™å¯ä»¥è®©ä»–先使用故事点数和时间对应的表格进行训练一到两次。

还没结æŸå‘¢

如果你按照上é¢çš„æ–¹æ³•进行,我相信你们一定能够很容易地完æˆç¬¬ä¸€æ¬¡ä¼°ç®—扑克游æˆï¼Œç„¶åŽä½ ä»¬çš„一个Sprint马上就è¦å¼€å§‹äº†ã€‚但是,这还没完,ä»ç„¶æœ‰ä¸€äº›ä¸œè¥¿éœ€è¦è¿›è¡Œè°ƒæ•´ã€‚

在Scrum中,通常你会æ¯å¤©è·Ÿè¸ªå®Œæˆå‰©ä½™çš„任务所需è¦çš„æ€»æ—¶é—´ï¼ˆé€šå¸¸è¿™ä¼šåœ¨ç‡ƒå°½å›¾ä¸­å映出æ¥ï¼‰ã€‚但是,我还希望能够统计出完æˆçš„用户故事所需è¦çš„实际时间,这样,我们就å¯ä»¥æ¯”è¾ƒå®žé™…æ‰€èŠ±çš„æ—¶é—´å’Œä¹‹å‰æŒ‰ç…§1)中表格估算的差è·ã€‚(嗯,也许我应该早就把那个表格给丢掉了,但实际上我总是在我的桌é¢ä¸Šæ”¾ç€ä¸€ä»½æ‹·è´ï¼‰

如果用户故事进行得很顺利,但最åŽå‘现其实这个应该是一个13ä¸ªç‚¹æ•°çš„ç”¨æˆ·æ•…äº‹ï¼Œè€Œä¸æ˜¯8个,那么我们就应该åšä¸€äº›è°ƒæ•´ï¼ŒæŠŠè¿™ä¸ªç”¨æˆ·æ•…事作为13个点数的故事的å‚考,这样下一次我们就能够更好地进行估算。我这么åšå°±æ˜¯ä¸ºäº†èƒ½å¤Ÿè®©æˆ‘们的估算的根基能够更牢固一些。

我会跟我的团队说明我记录实际完æˆçš„æ—¶é—´å¹¶ä¸æ˜¯è¦ç”¨äºŽç»©æ•ˆè€ƒè¯„。团队需è¦çŸ¥é“我们这么åšçš„原因是出于“检视和应用â€çš„è€ƒè™‘æ¥æ”¹è¿›ä¼°ç®—è€Œä¸æ˜¯æƒ³è¦è¿›è¡Œå¾®è§‚管ç†ã€‚

现在你已ç»çŸ¥é“è¦æ€Žä¹ˆåšäº†ã€‚如果你觉得这个方法有用,或者你有更好的办法的è¯è¯·å‘Šè¯‰æˆ‘。

 

作者:Ilan Goldstein
原文地å€ï¼šhttp://www.scrumalliance.org/articles/368-transitioning-from-timebased-to-relative-estimation