1. 程式人生 > >使用者故事必須完整,任務必須徹底完成(如何寫使用者故事3)

使用者故事必須完整,任務必須徹底完成(如何寫使用者故事3)

在你撰寫使用者故事或列出待辦事項清單時,有兩個問題很重要:使用者故事夠完整嗎?你如何才能知道自己已經完成了任務?

比如,我們看一看斯托爾寫的使用者故事:“作為特種部隊的醫生,我必須為學生們傳授基本的生理學知識,這樣他們才能瞭解人體。”

關於一則使用者故事是否完整,我經常用一套標準來衡量。這套標準是比爾·韋克(Bill Wake)發明的。他認為,一個好的使用者故事應該滿足 INVEST 標準:

    • 可協商性Negotiable)——使用者故事的內容要是可以協商的,使用者故事不是合同。一張使用者故事卡片上只是一個簡短的描述,不包括太多的細節。具體的細節在溝通階段提出。如果一張使用者故事卡片帶有太多的細節,實際上會限制和使用者的溝通。
    • 有價值Valuable)——每個使用者故事必須對客戶具有價值。一個讓使用者故事有價值的好方法是讓客戶來寫下它們。一旦一個客戶意識到這是一個使用者故事,並不是一個契約,而且可以進行協商的時候,他們將非常樂意寫下故事。
    • 可評估Estimable)——開發團隊需要衡量使用者故事,以便確定優先順序和工作量,並便於安排工作計劃。
    • 規模小Small)——一個好的故事要儘量維持小規模,至少要確保在一個Sprint週期中能夠完成。使用者故事越大,在安排計劃、工作量評估等方面的風險就會越大。
    • 可測試Testable)——一個使用者故事要可以測試,以便確定它是可以完成的。如果一個使用者故事不能夠測試,那麼你就無法知道它什麼時候可以完成。

斯托爾的故事是獨立的,因為他的學生們就在寮國,他不必考慮學生們前往寮國所需的直升機燃油費之類的事情,他能夠獨立完成任務。

他的故事是可修改的,因為雖然他一開始打算為學生們傳授基本的生理學知識,但如果他到了那裡之後發現學生們已經具備這樣的知識,或是已經有了一定的瞭解,那麼他有其他的教學方法可以用。他的故事有價值:學生們學到人體知識之後,可以派得上用場。他的故事規模小:他只給學生們傳授基本的解剖學知識,而不是教他們運用這些知識去開展外科手術。他的故事可測試:他很清楚自己想要傳遞的資訊,也可以對學生開展一些小的測試,以便確認他們是否真的吸收了這些資訊。

每個有待落實的使用者故事都應該要有“完整”的定義(比如是否符合INVEST標準),同樣,最後的結果也要符合“完成的定義”(比如必須符合什麼條件、通過什麼測試才能結束等)。在現實中,我們發現,如果使用者故事足夠完整,那麼團隊在落實專案的過程中速度就會加快一倍。此外,如果一個階段的Sprint完成了相應的使用者故事,那麼,這個團隊的速度會再次加快一倍。這就是我們能夠達到事半功倍之效的一個原因。

來源:《敏捷革命:提升個人創造力與企業效率的全新協作模式》  【美】Jeff Sutherland  Scrum之父作品

該書的PDF版本我有上傳,如需要可自行下載。

相關推薦

使用者故事必須完整任務必須徹底完成如何使用者故事3

在你撰寫使用者故事或列出待辦事項清單時,有兩個問題很重要:使用者故事夠完整嗎?你如何才能知道自己已經完成了任務?比如,我們看一看斯托爾寫的使用者故事:“作為特種部隊的醫生,我必須為學生們傳授基本的生理學知識,這樣他們才能瞭解人體。”關於一則使用者故事是否完整,我經常用一套標準

編寫一個Cirle類包括構造方法求圓的面積和周長如果圓的半徑小於0則丟擲異常讓使用者必須處理半徑必須大於0才可以

public class Circle{private double radios;public Circle() {super();// TODO Auto-generated constructor stub}public Circle(double radios) {super();this.radio

這一次徹底弄懂 JavaScript 執行機制的非常好

本文的目的就是要保證你徹底弄懂javascript的執行機制,如果讀完本文還不懂,可以揍我。 不論你是javascript新手還是老鳥,不論是面試求職,還是日常開發工作,我們經常會遇到這樣的情況:給定的幾行程式碼,我們需要知道其輸出內容和順序。因為javasc

android studio 菜單中的app運行按鈕上有個叉號原因與解決辦法自己去百度

代碼 問題 style post fontsize XML idm 出現 studio http://blog.csdn.net/sz0268/article/details/51706397 : 在Android studio寫代碼中,直接建立項目,寫代碼然後運行是不會

構建自己計算機的知識體系是自己進入編程學習的第一步給自己的話

表單 網頁設計 數據結構 windows 體系 嘗試 感謝 使用 計算   我個人認為不管我去學習什麽新的東西,我肯定先去了解這個新事物的大體輪廓,需要知道的是:這個東西是圓的還是方的?是走的還是爬的?...然後嘗試尋找他的一些內在聯系。之後再選擇這個事物的一方面去深入了解

JEECG新版UI規劃主要提供H5方案采用主流技術

upload 圖片標題 round lock oschina HR 圖片 htm 圖片說明 JEECG 結合當前主流的UI技術,在新版3.7.4 即將推出新的UI方案,主要采用Bootstrap,Vue技術。同時提供代碼生成器模板(單表、一對多),快速生成你喜好的模

安裝CMake時gmake 命令缺失問題為了編譯安裝mysql

方法 makefile tar gnu 8.4 命令 num make lean 安裝環境:ubuntu16.04 CMake的安裝 1.# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz 2.# tar

一個阿裏架構師十年的從業總結:比起掉發我更怕掉隊文末福利分享

這不 影響 res 找不到 大量 深入 爬蟲 人工智 工程 驀然回首,從畢業到現在做後臺開發已經十年了,這十年中我獲得了很多,技術能力、培訓、出國、大公司的經歷,還有很多誌同道合的朋友。但再仔細一想,這十年碼農路上我至少浪費了五年時間,這五年可以足夠讓自己成長為一個優秀的程

最小化安裝CentOS 7後圖形介面的安裝GNOME、KDE等

安裝圖形化介面: 1、首先安裝X(X Window System),命令為 yum groupinstall "X Window System"  2、檢查一下我們已經安裝的軟體以及可以安裝的軟體,用命令 yum grouplist 3、然後安裝我們需要的圖形介面軟體,如:GNOME(GN

通過獲取骨骼的Transform給角色加配件武器之類的。

模型能攻擊,但手上沒武器,給角色加武器,通過程式碼實現用武器攻擊的效果 1.找到相應的武器模型,建立空物體weapon,把武器拖拽進去(之後最好放在角色的手的那層,之後比較好維護),在Scene中把武器位置調好。 原理:這裡主要是實現武器的Transform跟隨手關節的Transform

python發郵件總結及例項說明中文亂碼已解決在最後一個模組

python發郵件需要掌握兩個模組的用法,smtplib和email,這倆模組是python自帶的,只需import即可使用。smtplib模組主要負責傳送郵件,email模組主要負責構造郵件。 smtplib模組主要負責傳送郵件:是一個傳送郵件的動作,連線郵箱伺服器,登入郵箱,傳送郵件(有發件

uglifyjs-webpack-plugin外掛drop_console預設為false不清除console語句drop_debugger預設為true清除debugger語句

uglifyjs-webpack-plugin外掛,drop_console預設為false(不清除console語句),drop_debugger預設為true(清除debugger語句) https://github.com/webpack-contrib/uglifyjs-webpack-plug

Java之多執行緒安全屌絲版兩大解決思路要麼不去競爭開闢執行緒副本、要麼有順序的競爭資源用鎖規定執行緒秩序

0、多執行緒安全,如果多個執行緒操作一個變數,每次都能達到預期的結果,那麼說明當前這個類起碼是執行緒安全的,我這白話的,可能有點噁心。   1、看看牛人是怎麼說的,為什麼多執行緒併發是不安全的? 在作業系統中,執行緒是不再擁有資源的,程序是擁有資源的。而執行緒是由程序建立的

JS將html生成為圖片並下載適用於大多數瀏覽器包含手機瀏覽器等需配合後臺處理(筆記)

(1)html程式碼 <div id="id="content""> //此處放置需要生成圖片的程式碼 <div class="order_payCon"> <div class="submit_pay_success"

一個阿里架構師十年的從業總結:比起掉髮我更怕掉隊文末福利分享

驀然回首,從畢業到現在做後臺開發已經十年了,這十年中我獲得了很多,技術能力、培訓、出國、大公司的經歷,還有很多志同道合的朋友。但再仔細一想,這十年碼農路上我至少浪費了五年時間,這五年可以足夠讓自己成長為一個優秀的程式設計師,可惜我錯過了,我用這五年時間和很多程式設計師一樣在困

二叉樹基礎操作 前中後序遍歷求二叉樹高度二叉搜尋樹二叉排序樹Java實現 程式碼集合

首先,定義一個樹類Tree.java public class Tree { public TreeNode root; } 定義樹節點類TreeNode.java public class TreeNode { public TreeNode(int

java實現錄入學生成績升序排列後輸出陣列升序 Arrays類

Arrays.sort(score) //陣列升序 實現: package com.array.test; import java.util.Arrays; import java.util.Scanner; /** * 錄入學生成績,升序排列後輸出 */

java中使用mybatis呼叫儲存過程拿到返回值單引數返回值

service業務層呼叫dao層 注意:返回值直接從物件裡獲取 不需要拿物件接收再獲取 dao.uspGetUser(userPO);//物件封裝了儲存過程的入參和出參 count = userPO.getCount(); //count 是儲存過程的返回值 dao層介面 pu

簡述 fbprophetPyStan庫安裝。win10-64位系統

fbprophet依賴於PyStan,所以首先要安裝PyStan庫,而要安裝PyStan,首先要安裝C++編譯器 在自己剛用到的時候首先百度了下發現好多坑,試了很多百度的方法還是不行。  本人是win10-64位系統,使用的是Python3.7的Anaconda。廢話不說了,開始安

Android 開發:繪製多條線帶快取帶觸控的圖表基金圖表的實現

對之前的幾篇文章裡的model進行補充 後期會把這個功能類,新增到這個框架裡 連結 Android開發框架,有興趣的可以下載下來看,這個框架會經常更新: public class BaseFundChartView extends View im