SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
速度
  ——敏捷开发的丹田之气

            徐毅




转载必须注明出处和作者。
   本作品采用知识共享署名-非商业性使用-禁止演绎 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.
Then we made :

*Cockburn-style     Play Monopoly Main Success Scenario
 Use Case Text
                    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,
帮助团队和组织提高他们的测试自动化能力。
*Robot Tests
Setting                                   Value
Library                                   MonopolyLibrary

                                                                Post Condition:        Post
Test                             IN:    IN:     Post Condition:                                     Post Condition:
          Action                                                All Pieces             Condition:
Case                             rounds Players Actual Rounds                                       Output Trace
                                                                Current Square         game Stop
          Run The Game And
Test1                           ${2}    ${2}      ${2}                NOT goSquare     TRUE         NOT NULL
          Check Post Conditions
          Run The Game And
Test2                           ${17}   ${2}      ${17}                                TRUE         NOT NULL
          Check Post Conditions

Keyword            Action           Argument             Argument       Argument Argument      Argument Argument

Run The Game                                                                       ${all pieces
                                                                        ${actual                ${game   ${output
And Check Post     [Arguments]      ${rounds}            ${players}                current
                                                                        rounds}                 stop}    trace}
Conditions                                                                         square}

                   Init The Game    ${rounds}            ${players}

                   Run The Game
                                    Get Actual
                   ${testReturn}
                                    Rounds
                   Should Be Equal ${actualRounds} ${testReturn}
坚持不懈地追求技术卓越和良好设计,
    敏捷能力由此增强。


     以简洁为本,
它是极力减少不必要工作量的艺术。


     *
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:KAVERJODY@GMAIL.com
  mailto:KAVERJODY@MSN.com

       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
 *第一部分
 *第二部分
 *第三部分

                       *

Contenu connexe

Similaire à 速度——敏捷开发的丹田之气(2011敏捷中国大会)

Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...
JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...
JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...
JSFestUA
 

Similaire à 速度——敏捷开发的丹田之气(2011敏捷中国大会) (20)

Geecon Prague 2015 - What I learned writing a Trillion Dollar Trading System
Geecon Prague 2015 - What I learned writing a Trillion Dollar Trading SystemGeecon Prague 2015 - What I learned writing a Trillion Dollar Trading System
Geecon Prague 2015 - What I learned writing a Trillion Dollar Trading System
 
Rocket Fuelled Cucumbers
Rocket Fuelled CucumbersRocket Fuelled Cucumbers
Rocket Fuelled Cucumbers
 
Make your-game-multiplayer
Make your-game-multiplayerMake your-game-multiplayer
Make your-game-multiplayer
 
Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?
 
Enterprise Tic-Tac-Toe
Enterprise Tic-Tac-ToeEnterprise Tic-Tac-Toe
Enterprise Tic-Tac-Toe
 
The Ring programming language version 1.10 book - Part 8 of 212
The Ring programming language version 1.10 book - Part 8 of 212The Ring programming language version 1.10 book - Part 8 of 212
The Ring programming language version 1.10 book - Part 8 of 212
 
Seeding a Tree in a Gherkin
Seeding a Tree in a GherkinSeeding a Tree in a Gherkin
Seeding a Tree in a Gherkin
 
The LAZY Developer's Guide to BDD (with Cucumber)
The LAZY Developer's Guide to BDD (with Cucumber)The LAZY Developer's Guide to BDD (with Cucumber)
The LAZY Developer's Guide to BDD (with Cucumber)
 
Integris Security - Hacking With Glue ℠
Integris Security - Hacking With Glue ℠Integris Security - Hacking With Glue ℠
Integris Security - Hacking With Glue ℠
 
How to be a smart contract engineer
How to be a smart contract engineerHow to be a smart contract engineer
How to be a smart contract engineer
 
Ltc Meeting 20120507
Ltc Meeting 20120507Ltc Meeting 20120507
Ltc Meeting 20120507
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
ql.io at NodePDX
ql.io at NodePDXql.io at NodePDX
ql.io at NodePDX
 
Switcheo Network - Advanced NEO Smart Contracts
Switcheo Network - Advanced NEO Smart ContractsSwitcheo Network - Advanced NEO Smart Contracts
Switcheo Network - Advanced NEO Smart Contracts
 
Hacking for salone: drone races
Hacking for salone: drone racesHacking for salone: drone races
Hacking for salone: drone races
 
JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...
JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...
JS Fest 2019. Олег Докука и Даниил Дробот. RSocket - future Reactive Applicat...
 
The Proxy Fairy, and The Magic of Spring Framework
The Proxy Fairy, and The Magic of Spring FrameworkThe Proxy Fairy, and The Magic of Spring Framework
The Proxy Fairy, and The Magic of Spring Framework
 
Mapping Detection Coverage
Mapping Detection CoverageMapping Detection Coverage
Mapping Detection Coverage
 
Introduction to Domain-Driven Design
Introduction to Domain-Driven DesignIntroduction to Domain-Driven Design
Introduction to Domain-Driven Design
 
Troubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersTroubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineers
 

Plus de Yi Xu

China Test2012 W2 徐毅 大测大悟 测试的敏捷之道
China Test2012 W2 徐毅 大测大悟   测试的敏捷之道China Test2012 W2 徐毅 大测大悟   测试的敏捷之道
China Test2012 W2 徐毅 大测大悟 测试的敏捷之道
Yi Xu
 
敏捷教练之路 徐毅
敏捷教练之路   徐毅敏捷教练之路   徐毅
敏捷教练之路 徐毅
Yi Xu
 
Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)
Yi Xu
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者
Yi Xu
 
Testing Theories &amp; Methodologies
Testing Theories &amp; MethodologiesTesting Theories &amp; Methodologies
Testing Theories &amp; Methodologies
Yi Xu
 
Be Modern Agile Tester
Be Modern Agile TesterBe Modern Agile Tester
Be Modern Agile Tester
Yi Xu
 
I Run Out Of Silver Bullets, Now What?
I Run Out Of Silver Bullets, Now What?I Run Out Of Silver Bullets, Now What?
I Run Out Of Silver Bullets, Now What?
Yi Xu
 

Plus de Yi Xu (20)

老司机带你游敏捷教练之路
老司机带你游敏捷教练之路老司机带你游敏捷教练之路
老司机带你游敏捷教练之路
 
设计思维、敏捷、Dev ops —— 助力创新交付
设计思维、敏捷、Dev ops —— 助力创新交付设计思维、敏捷、Dev ops —— 助力创新交付
设计思维、敏捷、Dev ops —— 助力创新交付
 
DevOps in China
DevOps in ChinaDevOps in China
DevOps in China
 
Fearless Transformation, Safely
Fearless Transformation, SafelyFearless Transformation, Safely
Fearless Transformation, Safely
 
Design Thinking, Agile, DevOps - fuel the innovation delivery
Design Thinking, Agile, DevOps  - fuel the innovation deliveryDesign Thinking, Agile, DevOps  - fuel the innovation delivery
Design Thinking, Agile, DevOps - fuel the innovation delivery
 
Developing Internal Agile Coaches - Global Scrum Gathering Shanghai 2015
Developing Internal Agile Coaches - Global Scrum Gathering Shanghai 2015Developing Internal Agile Coaches - Global Scrum Gathering Shanghai 2015
Developing Internal Agile Coaches - Global Scrum Gathering Shanghai 2015
 
培养内部敏捷教练 - Global Scrum Gathering Shanghai 2015
培养内部敏捷教练 - Global Scrum Gathering Shanghai 2015培养内部敏捷教练 - Global Scrum Gathering Shanghai 2015
培养内部敏捷教练 - Global Scrum Gathering Shanghai 2015
 
Brief Introduction to Agile Software Testing
Brief Introduction to Agile Software TestingBrief Introduction to Agile Software Testing
Brief Introduction to Agile Software Testing
 
敏捷软件测试之简介
敏捷软件测试之简介敏捷软件测试之简介
敏捷软件测试之简介
 
银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011银弹!银弹! 徐毅@Italk salon 2011
银弹!银弹! 徐毅@Italk salon 2011
 
测试员自我修养 徐毅@BQConf 20120714
测试员自我修养 徐毅@BQConf 20120714测试员自我修养 徐毅@BQConf 20120714
测试员自我修养 徐毅@BQConf 20120714
 
Scrum为什么有效 徐毅@mpd南京2012
Scrum为什么有效 徐毅@mpd南京2012Scrum为什么有效 徐毅@mpd南京2012
Scrum为什么有效 徐毅@mpd南京2012
 
Agile Testing Days 2012 Takeaway
Agile Testing Days 2012 TakeawayAgile Testing Days 2012 Takeaway
Agile Testing Days 2012 Takeaway
 
China Test2012 W2 徐毅 大测大悟 测试的敏捷之道
China Test2012 W2 徐毅 大测大悟   测试的敏捷之道China Test2012 W2 徐毅 大测大悟   测试的敏捷之道
China Test2012 W2 徐毅 大测大悟 测试的敏捷之道
 
敏捷教练之路 徐毅
敏捷教练之路   徐毅敏捷教练之路   徐毅
敏捷教练之路 徐毅
 
Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)Atdd In Practice (Agile Tour 2010 Qingdao)
Atdd In Practice (Agile Tour 2010 Qingdao)
 
现代化敏捷测试工作者
现代化敏捷测试工作者现代化敏捷测试工作者
现代化敏捷测试工作者
 
Testing Theories &amp; Methodologies
Testing Theories &amp; MethodologiesTesting Theories &amp; Methodologies
Testing Theories &amp; Methodologies
 
Be Modern Agile Tester
Be Modern Agile TesterBe Modern Agile Tester
Be Modern Agile Tester
 
I Run Out Of Silver Bullets, Now What?
I Run Out Of Silver Bullets, Now What?I Run Out Of Silver Bullets, Now What?
I Run Out Of Silver Bullets, Now What?
 

速度——敏捷开发的丹田之气(2011敏捷中国大会)