Upload
yi-xu
View
755
Download
8
Embed Size (px)
Citation preview
速度 ——敏捷开发的丹田之气
徐毅
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可
转载必须注明出处和作者。
*关于我
曾任职诺基亚西门子网络公司全球精益及敏捷转型部门担任精益及敏捷顾问。
专长于大型组织(>500人)的敏捷迁徙转
变。精通各种风格、类型的黑盒测试,包括验收性测试驱动开发、探索性测试、测试自动化等等。在辅助一个400人的大
型组织搭建、规范化测试自动化系统及实践之后,选择传授敏捷/Scrum以及精
益的要义,辅导其他组织进行转变。兴趣广泛,包括但不限于各种类型测试、敏捷/Scrum及精益。
国内敏捷会议的常客,近期的有敏捷中国2009、2010 、2011 ,2010及2011的Scrum Gathering Shanghai,以及2009、2010、2011年的敏捷全球之旅中国站。
更多信息请看LinkedIn主页:http://cn.linkedin.com/in/kaveri
*
*
*
*
实现
确认 交流
*
Elisabeth
Hendrickson
*
*
用工具画UML图挺
快的呀?
产品列表没法管…
用户故事
到底要
怎么用啊
结对编程?
太浪费了!
*
*庐山
*象
*盲人
*敏捷实践全景鸟瞰
*
*
业务人员和开发人员必须相互合作,
项目中的每一天都不例外。
不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
*
* Monopoly(大富翁/强手棋/地产大享)
Monopoly,国内又称大富翁、强手棋,号称全世界卖得最多的桌上游戏Monopoly游戏的发明,要追溯到1934年,当时一个叫Charles B.
Darrow的美国人把自己发明的Monopoly游戏拿去给出版商Parker Brothers,希望可以批量生产,但当场就被Parker Brothers以52个设计错误拒之门外。但Darrow并没放弃,他自己联系了一个相熟的出版商,印刷了一批Monopoly游戏投放市场,收到的反应却出奇的好。当他第二次踏上Parker Brothers的门槛后,Monopoly得以大批上市,并在出版的第一年----1935年就成为美国最热卖游戏,并在接下来的七十几年时间售出超过2亿套(只是官方统计数字,算是中国里面的盗版大富翁,绝对远超这个数字)。 。
*
*
First, find out use cases by drawing use case diagram. Use case is a description of a
system's behaviour as it responds to a request that originates from outside that
system. The use case technique is used to capture a system's behavioural
requirements by detailing scenario-driven threads through the functional
requirements.
Then, start from one specific use case, identify top level user stories, which follows
the "As a <role>, I want <feature>, so that <motivation>.". Top level user story is too
big to implement, we need to split it into smaller user stories. User story is a
software system requirement formulated as one or two sentences in the everyday or
business language of the user.
System Sequence Diagram
illustrates external I/O
events for system scenarios.
*C
ockburn
-style
Use
Case
Text
Then we made :
Play Monopoly Main Success Scenario
10 Player wants to StartNewGame?
20 Player MakeMove?
30 Player PerformsAction?
40 Player EndsTurn? (repeat steps 20-40 until game ends)
EXTENSIONS------------------
30a Player buys property This is only legal if the property is available and player has enough money 1. Player gives money to the bank 2. Board is updated to reflect the change in property
30b Player pays rent This is only legal if the property is owned by another player 1. System identifies who is the owner of the field 2. Cash is transfered to the owner
30c Player is using a community card This is happening in case the player has landed on a field requireging usage of a community card
40a Active Player receives rent 1. System identifies who is the owner of the land 2. Cash is transfered to the owner
* Player sells a property
domain model, or Domain Object Model (DOM)
in problem solving and software engineering can
be thought of as a conceptual model of a system
which describes the various entities involved in
that system and their relationships.
Acceptance Tests (in Agile Software Development) are usually created by business
customers and expressed in a business domain language. These are high level tests to
test the completeness of a user story or stories 'played' during any sprint/iteration.
Activity Diagram
is a loosely
defined diagram
technique for
showing
workflows of
stepwise
activities and
actions, with
support for choise,
iteration and
concurrency.
Communication Diagram models the
interactions between objects or parts in
terms of sequenced messages.
Class Diagram is a type of static structure diagram that describes the structure of a
system by showing the system's classes, their attributes, and the relationships
between the classes.
*
*
我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
可工作的软件是进度的首要度量标准。
*
*Having pseudo-acceptance-tests on the wall, it's time to realize them now. The test automation framework we used was www.robotframework.org. which is a keyword-driven framework for acceptance tests in tabular format.
*Acceptance Test Driven Development (ATDD) practice drives development from automated acceptance tests, those executable acceptance tests. After written those pseudo tests into Robot format, we got a red FAIL of execution, since there was no keywords nor production code.
联系我:多年的实战经验,包括自用、培训和辅导他人。包括利用它进行测试自动化和ATDD,帮助团队和组织提高他们的测试自动化能力。
Setting Value
Library MonopolyLibrary
Test
Case Action
IN:
rounds
IN:
Players
Post Condition:
Actual Rounds
Post Condition:
All Pieces
Current Square
Post
Condition:
game Stop
Post Condition:
Output Trace
Test1 Run The Game And
Check Post Conditions ${2} ${2} ${2} NOT goSquare TRUE NOT NULL
Test2 Run The Game And
Check Post Conditions ${17} ${2} ${17}
TRUE NOT NULL
Keyword Action Argument Argument Argument Argument Argument Argument
Run The Game
And Check Post
Conditions
[Arguments] ${rounds} ${players} ${actual
rounds}
${all pieces
current
square}
${game
stop}
${output
trace}
Init The Game ${rounds} ${players}
Run The Game
${testReturn}
Get Actual
Rounds
Should Be Equal ${actualRounds} ${testReturn}
*Robot Tests
*
坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
以简洁为本,
它是极力减少不必要工作量的艺术。
CI + ATDD + TDD + PP + CODING DOJO
*
1. Information Expert
2. Creator
3. Controller
4. Low Coupling
5. High Cohesion
6. Polymorphism
7. Pure Fabrication
8. Indirection
9. Protected Variations
General Responsibility Assignment Software Pattern
http://en.wikipedia.org/wiki/GRASP_%28object-oriented_design%29
*
http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
*
*duplicate code or data
* long method
*unclear names
*magic constants
*high coupling (e.g., “data envy”)
* low cohesion
*case logic rather than polymorphism
*data object (record object)
*comments that explain what code does
http://en.wikipedia.org/wiki/Code_smell
*
我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
可持续
*
敏捷过程倡导可持续开发。
责任人、开发人员和用户要能够共同维持其步调稳定延续。
团队定期地反思如何能提高成效,
并依此调整自身的举止表现。
*
*
*
融会贯通
一目了然
同步反馈
群策群力
*自组织团队
融会贯通
一目了然
同步反馈
群策群力
*
融会贯通
一目了然
同步反馈
群策群力
*• 可视化管理
• 团队身边可视化、触手可及的信息
• 相关信息全部位于一个平面
融会贯通
一目了然
同步反馈
群策群力
Code Kata
Coding Dojo
*
*
*“研究发现,任何一个世界级水平都需要起码一万小时的训练,”神经科学者丹尼尔·莱维汀写道。
*
*速度领悟练习
* 领悟
练习
爱迪生
*
*
mailto:[email protected]
mailto:[email protected]
Skype : KAVERJODY
新浪微博: 徐毅-Kaveri
腾讯QQ : 17376122
http://blog.sina.com.cn/kaverjody
http://cn.linkedin.com/in/kaveri
http://kaverjody.wordpress.com
*This work is licensed under the Creative
Commons Attribution-NonCommercial-NoDerivs
2.5 China Mainland License.
*To view a copy of this license, visit
http://creativecommons.org/licenses/by-nc-
nd/2.5/cn/ or send a letter to Creative
Commons, 444 Castro Street, Suite 900,
Mountain View, California, 94041, USA.
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可
转载必须注明出处及作者。
*
*Agile Modeling and TDD Workshop
—— Craig Larman
*第一部分
*第二部分
*第三部分