目前分類:Scrum (126)

瀏覽方式: 標題列表 簡短摘要
如何進行Sprint Planning (下)

How To Implement Scrum In 10 Easy Steps - Step #4: Sprint Planning (Tasks)
http://www.agile-software-development.com/2007/10/how-to-implement-scrum-in-10-easy-steps_11.html

前面在sprint planning meeting中, 已經釐清好backlog的reuqirement, 接下來就是規劃要完成這些reuqirement的細部工作項目, 以及所需的時間.


1. 和前面釐清需求會議的關係
(1) Although Part 2 of the workshop can follow straight on from the first part, it is sometimes helpful for there to be a short gap between the two meetings; maybe 1 day.
(2) This allows time to clarify any outstanding questions arising from part 1 of the workshop before proceeding with the next step.


2. 有哪些角色需要參加工作項目規劃的會議
    - Business Analysts if you have them. Testers if you have them.
    - ALL Developers on the Scrum team for the product.
    - The Product Owner and any customer, user or business representatives need not attend this part (part 2) of the Sprint Planning workshop, as it’s likely to be more technical in nature and is more about the team working out how the selected backlog items will be delivered.
    - However, they should be welcome to attend if they wish, which may help their understanding of what’s involved to deliver the features, and may help if any further clarification is required as the tasks are discussed and estimated.


3. 設定你有多少時間可以花在這個Sprint
(1) Calculate the team’s Sprint Budget: the available number of hours the team has to work on the Sprint.
    (The available hours in the Sprint Duration X  the number of full-time people in the Sprint )
    + (For people who are working part-time in the Sprint, include the number of hours they can commit to)
    - (Any reasonable deductions for time that team members will not be able to spend working on the Sprint)
(2) Deduct holidays, any known meetings, any time likely to be spent working on other projects, etc.
(3) Based on past experience, deduct a reasonable amount of time for support, if appropriate.
(4) Make sure all these calculations are transparent and visible to all.


4. 把需求展開成真正處理的工作項目
(1) Go through each Product Backlog item selected for the Sprint. Break the requirements into tasks.
(2) Tasks may include the traditional steps in a development lifecycle
    - For instance: Design, Development, Unit Testing, System Testing, UAT (User Acceptance Testing), Documentation, etc.
(3) Remember, agile software development methods do not exclude these steps. Agile methods just advocate doing the steps feature-by-feature, just in time, instead of in big phases.
(4) Each of these tasks, especially development, may be broken down further.
(5) Include all tasks necessary to make the Product Backlog item 100% complete
(6) Agree as a team on your definition of done, so everyone is aware what will have to be completed and included in the estimates.
(7) State tasks as deliverables, if at all possible.
    - Deliverables are more measurable than tasks.
    - Instead of describing what you’re going to do, describe what you’re going to deliver.


5. 以小時為單位來評估你的工作項目
(1) Keep tasks small. Estimate all tasks in hours. Estimate each task as a team.
(2) Ask everyone what they think, in order to identify missed tasks, or to identify simpler solutions.
(3) Ideally task estimates should be no more than 1 day.
(4) If an estimate is much larger than this, the requirements should be broken down further so the tasks are smaller.
(5) Keeping tasks small enough to estimate at less than 1 day has some specific benefits.
    - Breaking tasks down into very small chunks means they are easier to estimate. The accuracy of your estimating will be improved as a result.
    - Tasks less than 1 day are more measurable in the daily Scrum (stand-up meeting). 1 day tasks are either done or they are not.


6. 承諾哪些backlog要在這個sprint中完成
(1) Add up all the task estimates for the selected Product Backlog.
(2) If they are significantly over the team’s Sprint Budget, reduce the number of Product Backlog items selected for the Sprint.
(3) Remember the Product Backlog was in priority order, so if possible it should be the lower item(s) on the backlog that are removed from the Sprint.
(4) The remaining list of estimated Tasks – those tasks needed to complete the selected Product Backlog within the Sprint - is your Sprint Backlog.
(5) The team should commit to delivering the Sprint Backlog.


7. 找出後續要作的工作
(1) Sometimes teams under-commit or over-estimate. Stranger things have happened! :-)
(2) In my experience this is quite common when teams are new to Scrum.
    - This can sometimes result in an over-cautious approach to the estimates.
I think it’s because they are unfamiliar with the process and potentially out of their comfort zone initially. They may not have had much experience of estimating in the past.
And they may not have been asked to commit to their  own delivery before.
This can sometimes result in an over-cautious(謹慎的) approach to the estimates.
(3) Always include some additional scope in your Sprint Backlog, over and above what you think can be achieved.
    - This is important in order to have something ready if the team delivers early, as the Sprint should ideally remain a fixed length.
    - Clearly identify these items as Stretch Tasks.
(4) Should never expect Stretch Tasks to be reached.
    - No-one should ever be beaten up if Stretch Tasks are never reached.
    - And if you do manage to complete any Stretch Tasks, this should be cause for celebration!



kojenchieh 發表在 痞客邦 留言(0) 人氣()

如何進行Sprint Planning (上)

How To Implement Scrum In 10 Easy Steps - Step #3: Sprint Planning (Requirements)
http://www.agile-software-development.com/2007/10/how-to-implement-scrum-in-10-easy-steps.html

Sprint planning meeting 對scrum來說是非常重要的一個步驟, 如果在一開始沒有先講清楚, 讓大家有一致的共識, 之後在這一個sprint就會很混亂.

因為他們會不知道要做的東西到底是什麼 ? 要做到怎樣才夠?因為在這短短的sprint中, 時間是很有限, 要做的東西應該是要十分清楚的.


1.  進行 Sprint Planning Workshop
(1) Make sure the meeting is attended by the whole team.
(2) Include all roles.
(3) The first thing you must do (in your first Sprint Planning meeting) is decide on your Sprint duration. This decision should be taken as a team.

2. 決定sprint的長度
(1) Scrum suggests 30 days.
(2) The optimum Sprint duration depends on many factors.
(3) A development team's 'cycle time' is a direct reflection of the maturity of their processes.
    - A team with immature processes will find the intensity of Scrum and the overhead of Sprint Planning, Testing, Deployment and Review quite onerous for a short Sprint cycle.
    - Whereas teams with very mature processes (for example automated testing, automated deployment, and teams who've become very quick at Sprint Planning), a short cycle might be very comfortable.
(4) Mike Cohn is one of the key exponents of agile development.
    - See here for Mike's article giving further advice about how to select the optimum iteration length.
    http://www.mountaingoatsoftware.com/article/view/30

3. 保持所有sprint的長度是一致的
(1) Whatever Sprint duration you choose to go for, my advice is to keep it consistent.
(2) Allows you to get into a rhythm.
(3) Makes your process very repeatable.
(4) Allows you to start understanding how many Product Backlog points you can typically do in a Sprint.
(5) Once you've decided, you can now set up a Sprint Planning Workshop as a recurring appointment before every Sprint.

4. 選擇這個sprint想要的backlog
(1) Looking at the top section of the Product Backlog,
    - What would seem to be a reasonable goal to set for the Sprint?
    - Can you express an objective that sums up the goal for the next Sprint, or
    - At least pick a section of items/features from the top of the Product Backlog that the team thinks can be achieved in the Sprint duration?
(2) Select your target backlog for the Sprint. Make this decision as a team.
(3) It's important to prepare more items during planning in case the team finishes early.
    - These items can be clearly identified as stretch tasks and the Product Owner should not expect them to be completed.
(4) In future Sprints, you will be able to use your Scrum team's previous Velocity to help with this decision.
    - Velocity is the number of Product Backlog Points delivered in a Sprint.
    - This tends to fluctuate wildly early on when adopting Scrum.
    - But it will settle down as the team get into a rythm, and in future provide you with a reasonable norm to base your target backlog on.

5. 釐清sprint的需求
(1) Take each item on the Product Backlog. It's important to go through them methodically, one item at a time...
(2) The Product Owner presents each item and explains how he/she sees it working from a functional perspective.
(3) The whole team discusses the item in detail.
    - The whole team asks questions about the feature in order to establish what it should do and how it should work.
    - The outcomes of this discussion should be captured on a whiteboard or flipchart, or someone could write notes on a laptop as the discussion progresses.
(4) Write requirements in a way that is lightweight and visual.
    - Agile requirements should be barely sufficient.
    - The fact the features will be developed and tested within the next few weeks, and by the team that were present, makes this possible.
(5) Consider writing 'User Stories'.
    - But the basic concept is to write features using this construct:
        As a [type of user], I want to [do whatever], so I can [achieve what goal].
    - The story can be backed up by a sketch of the UI, a wireframe or visuals.
    - Annotate the sketch to describe the functionality.
    - Backed it up with statements about how it will be confirmed (or tested).
    - This will help to identify scenarios up front, before it's developed.


kojenchieh 發表在 痞客邦 留言(0) 人氣()

Scrum是不夠的

Scrum is not Enough
http://practicalagility.blogspot.com/2008/06/scrum-is-not-enough.html

作者在scrumdevelopment Yahoo group上, 看到一篇post "Scrum and Architecture",
http://groups.yahoo.com/group/scrumdevelopment/message/29810

其中Ken Schwaber回應了一段話


    In order to employ emergent architecture, every Sprint must leave behind clean, commented, refactored work. Otherwise emergence hits the wall within six Sprints (or sooner, depending on how bad the morass is).

作者覺得很驚訝, 因為這段話相當於Kent承認Scrum 的practice, 除了short term以外, 是不足夠去處理每件事情. 當然啦, 不只Ken這樣講, 在這篇post中很多人也這樣講, 包括作者本身

Ken過去曾經不斷說明, Scrum已經有審慎考慮過很多事情, 因此不需要加入任何tech practices. (我個人認為像是TDD, refacotring, pair programming等等) 但是現在由這篇post看來, 如果沒有solid technical practices, Scrum是不足夠的

所以作者勸大家, 要考慮一下往agile process方向移動, 也就是考慮其他agile的process, 像是XP等等. 因為Scrum真的是不夠的


kojenchieh 發表在 痞客邦 留言(0) 人氣()

如何進行Sprint 的Demo

How we do sprint demos
from "Scrum and XP from the Trenches - how we do Scrum"

最近要作sprint的demo, 這可是大姑娘上花轎, 頭一遭. 還不知道要怎樣做會比較好. 因此survey了一下, 看看是否有人提說哪些東西要注意的.

在"Scrum and XP from the Trenches - how we do Scrum"一書中, 有提到相關要注意的事情.

首先他談到為什麼要做sprint 的demo,會帶來怎樣的好處:
1. The team gets credit for their accomplishment. They feel good.

2. Other people learn what your team is doing.


3. The demo attracts vital feedback from stakeholders.


4. Demos are (or should be) a social event where different teams can interact with each
other and discuss their work. This is valuable.

5. Doing a demo forces the team to actually finish stuff and release it (even if it is only to
a test environment).
- Without demos, we kept getting huge piles of 99% finished stuff.

- With demos we may get fewer items done, but those items are really done, which is
(in our case) a lot better than having a whole pile of stuff that is just sort of done and
will pollute the next sprint.

接著他列出了在demo時要注意的檢查項目:
1. Make sure you clearly present the sprint goal.
- If there are people at the demo who don’t know anything about your product, take a few minutes to describe the product.

kojenchieh 發表在 痞客邦 留言(0) 人氣()

Scrum 和 XP的比較

Should We Adopt Scrum or XP?
http://jamesshore.com/Blog/Should-We-Adopt-Scrum-or-XP.html


XP
(1) 著重於 "let's create excellent software."
(2) 比較不容易開始, 因為要學習TDD, refactoring, pair programming, customer on site...不是很快可以做到.
(3) 開開始會花很多時間, 會很痛苦, 因為要adopt很多engineering practices. 如果度過後, 就不太會有code quality的問題, 並且performance會很高. 但是若是沒有撐過, 最後可能會失敗, 或是放棄.
(4) XP 不容易開始, 但是容易去精通它, 但是失敗時會以很吵鬧的方式結束
(5) You're less likely to successfully adopt XP, but you'll be well positioned for long-term success and mastery.
(6) If you're missing pieces, you'll probably be able to tell.

Scrum
(1) 著重於 "let's create a self-organizing team"
(2) 比較容易開始, 只要team願意adopt, 工作規劃上照著scrum 的規則走就可以
(3) 但是Scrum 有較長的ramp-up時間, 並且很長一段時間會有code quality的問題
(4) Scrum 容易開始, 但是不容易去精通它, 但是失敗時會以無聲無息的方式結束
(5) You're more likely to successfully adopt Scrum, but the benefits won't extend to your codebase and you'll struggle with legacy code for many years.
(6) If you're missing pieces, you may not realize it.



kojenchieh 發表在 痞客邦 留言(0) 人氣()

XP 和 Scrum 差別

Differences Between Scrum and Extreme Programming
http://blog.mountaingoatsoftware.com/?p=8

Scrum and Extreme Programming (XP) 都是agile家族中的成員, 常常有人無法分辨他們的差別是什麼. 作者列出了他們的差別, 雖然這些差別不大, 但是很關鍵:

1. Iteration的長度
(1) Scrum
- typically from two weeks to one month long.
(2) XP
- typically one or two weeks long.

2. 在一個iteration內遇到change的處理狀況
(1) Scrum
- Do not allow changes into their sprints.
- Once the sprint planning meeting is completed and a commitment made to delivering a set of product backlog items, that set of items remains unchanged through the end of the sprint.
(2) XP
- Much more amenable to change within their iterations.
- As long as the team hasn't started work on a particular feature, a new feature of equivalent size can be swapped into the XP team's iteration in exchange for the unstarted feature.

3. Feature的處理順序
(1) XP
- Work in a strict priority order.
- Features to be developed are prioritized by the customer (Scrum's Product Owner) and the team is required to work on them in that order.
(2) Scrum
- Scrum product owner prioritizes the product backlog but the team determines the sequence in which they will develop the backlog items.
- A Scrum team will very likely choose to work on the second most important.
   
4. 是否要遵守一些Enineering Practices
(1) Scrum
- Doesn't prescribe any engineering practices;
(2) XP
- XP does.
- For example: TDD, pair programming, simple design, refacotring...

作者認為要adopt agile, Scrum是一個的好的開始, 因為他已經有iteration, timeboxed的基礎. 但是若是能搭配XP會更好. 因為XP會告訴你要如何做的practices (如TDD, refacotring, pair programming...), 會讓你的能夠開發出品質更好的軟體.

嗯.... XP 確實難度是比較高, 但是應該是比較有用吧?!.....不過剛開始, 還是柿子先挑軟的吃吧, 先站穩腳步吧

kojenchieh 發表在 痞客邦 留言(0) 人氣()

Close

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

reload

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼