Back to basics                  hands-on            Italian Agile Day 2011Antonio Carpentieri             Paolo Polce
Basic doesn’t mean      simple
Basics areadvanced topics
Let’s define good      software
High cohesion
Coincidental  cohesion    (Worst)
Functional cohesion   (best)
Low coupling
Content coupling      (worst)
Message coupling (lowest before No coupling)
How to get there?
The principles
S.O.L.I.D.
S.O.L.I.D.
S.O.L.I.D.
S.O.L.I.D.
S.O.L.I.D.
S.O.L.I.D.
Patterns should emerge from  refactoring
Composition   overinheritance
Decorator
Composite
Adapter
Tell don’t ask
No getters   rule
User stories
Landing on GoAs a player, when I land on go I get$200 as my salary for staying in thegameAcceptance criteria:•During a tur...
Passing over GoAs a player, I receive $200 when Ipass over GoAcceptance criteria:•Player starts before Go near the end of ...
Landing on Go To JailAs a Player, when I land on Go ToJail during a turn I move directly toJust VisitingAcceptance criteri...
Landing on Income TaxAs a Player, landing on Income Taxforces me to pay the smaller of 10%of my total worth or $200Accepta...
Landing on Income TaxAcceptance criteria (continued):•During a turn, a Player with an initial total worth of $2000lands on...
Landing on Luxury TaxAs a Player, when I land on LuxuryTax, I pay $75.Acceptance criteria:•Player takes a turn and lands o...
Player Buys PropertyAs a player, I can buy an unownedproperty when I land on it during aturnAcceptance criteria:• Land on ...
Player Pays RentAs a player, I pay rent when I landon a Property that is owned bysomeone elseAcceptance criteria:• Land on...
Player Pays Rent (Railroad)As a player, I pay special rent when Iland on a Railroad that is owned bysomeone elseAcceptance...
Player Pays Rent (Utility)As a player, I pay special rent when Iland on a Utility that is owned bysomeone elseAcceptance c...
Grazie per l’attenzionea.carpe@gmail.com                   paolo@webshell.it            @acarpe                 @paolopolc...
Back to Basics Hands-on
Upcoming SlideShare
Loading in …5
×

Back to Basics Hands-on

1,101 views

Published on

Slides to run the back to basics workshop using the monopoly kata

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,101
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • It can be achieved by state decentralization (as in objects) and component communication is done via parameters or message passing\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Back to Basics Hands-on

    1. 1. Back to basics hands-on Italian Agile Day 2011Antonio Carpentieri Paolo Polce
    2. 2. Basic doesn’t mean simple
    3. 3. Basics areadvanced topics
    4. 4. Let’s define good software
    5. 5. High cohesion
    6. 6. Coincidental cohesion (Worst)
    7. 7. Functional cohesion (best)
    8. 8. Low coupling
    9. 9. Content coupling (worst)
    10. 10. Message coupling (lowest before No coupling)
    11. 11. How to get there?
    12. 12. The principles
    13. 13. S.O.L.I.D.
    14. 14. S.O.L.I.D.
    15. 15. S.O.L.I.D.
    16. 16. S.O.L.I.D.
    17. 17. S.O.L.I.D.
    18. 18. S.O.L.I.D.
    19. 19. Patterns should emerge from refactoring
    20. 20. Composition overinheritance
    21. 21. Decorator
    22. 22. Composite
    23. 23. Adapter
    24. 24. Tell don’t ask
    25. 25. No getters rule
    26. 26. User stories
    27. 27. Landing on GoAs a player, when I land on go I get$200 as my salary for staying in thegameAcceptance criteria:•During a turn a Player lands on Go and their balanceincreases by $200•During a turn a Player lands on some "normal" location andtheir balance does not change
    28. 28. Passing over GoAs a player, I receive $200 when Ipass over GoAcceptance criteria:•Player starts before Go near the end of the Board, rollsenough to pass Go. The Players balance increases by $200•Player starts on Go, takes a turn where the Player does notadditionally land on or pass over Go. Their balance remainsunchanged.•Player passes go twice during a turn. Their balance increases by$200 each time for a total change of $400
    29. 29. Landing on Go To JailAs a Player, when I land on Go ToJail during a turn I move directly toJust VisitingAcceptance criteria:•Player starts before Go To Jail, lands on Go To Jail, ends upon Just Visiting and their balance is unchanged•Player starts before Go To Jail, rolls enough to pass over GoTo Jail but not enough to land on or pass over go. Their balanceis unchanged and they end up where the should based on whatthey rolled
    30. 30. Landing on Income TaxAs a Player, landing on Income Taxforces me to pay the smaller of 10%of my total worth or $200Acceptance criteria:•During a turn, a Player with an initial total worth of $1800lands on Income Tax. The balance decreases by $180•During a turn, a Player with an initial total worth of $2200lands on Income Tax. The balance decreases by $200•During a turn, a Player with an initial total worth of $0 landson Income Tax. The balance decreases by $0
    31. 31. Landing on Income TaxAcceptance criteria (continued):•During a turn, a Player with an initial total worth of $2000lands on Income Tax. The balance decreases by $200•During a turn, a Player passes over Income Tax. Nothinghappens
    32. 32. Landing on Luxury TaxAs a Player, when I land on LuxuryTax, I pay $75.Acceptance criteria:•Player takes a turn and lands on Luxury tax. Their balancedecreases by $75•Player passes Luxury Tax during a turn. Their balance isunchanged
    33. 33. Player Buys PropertyAs a player, I can buy an unownedproperty when I land on it during aturnAcceptance criteria:• Land on a Property that is not owned. After turn, property isowned and balance decreases by cost of property• Land on a Property that I own, nothing happens• Pass over an unowned Property, nothing happens
    34. 34. Player Pays RentAs a player, I pay rent when I landon a Property that is owned bysomeone elseAcceptance criteria:• Land on a Property owned by other player, player pays rent toowner. Players balance decreases by rent amount. Owners balanceincreases by rent amount.• If landing on Real Estate and not all in the same PropertyGroup are owned, rent is stated rent value• If landing on Real Estate and Owner owns all in the sameProperty Group, rent is 2 times stated rent value
    35. 35. Player Pays Rent (Railroad)As a player, I pay special rent when Iland on a Railroad that is owned bysomeone elseAcceptance criteria:• If landing on Railroad, rent is 25, 50, 100, 200 depending onhow many are owned by owner (1 - 4)
    36. 36. Player Pays Rent (Utility)As a player, I pay special rent when Iland on a Utility that is owned bysomeone elseAcceptance criteria:• If landing on Utility and only one Utility owned, rent is 4times current value on Dice• If landing on Utility and both owned (not necessarily by samePlayer), rent is 10 times current value on Dice
    37. 37. Grazie per l’attenzionea.carpe@gmail.com paolo@webshell.it @acarpe @paolopolcefeedback on: http://joind.in/4520 source: http://github.com/acarpe/back-to-basics-hands-on credits: Monopoly kata by schuchert ( http://goo.gl/OuovG )

    ×