Successfully reported this slideshow.

Programmer Anarchy (English)

32

Share

Loading in …3
×
1 of 122
1 of 122

Programmer Anarchy (English)

32

Share

Download to read offline

Programmer Anarchy

The Agile movement shifted the relationship between clients and developers in a profound way. In waterfall processes, clients specified large amounts of functionality, then nervously faded into the background until the fateful day-of-delivery. With Agile, developers strove to engage with clients continuously, and delivered much more frequently against their needs. A new trust was established.

At the Forward Internet Group in London, we are implementing a second major shift between clients and developers. The trust of the clients in developers evolves into a broader trust of the developers to deliver business value without resorting to a series of well-defined stories. In essence, the business has empowered the developers to do what they think is right for the business. This model, popularized by Facebook, has several labels, but the one we prefer for our flavor is Programmer Anarchy.

We will start with stock Agile, and begin to apply environmental factors that led us to drop “standard” Agile practices. We will also watch as well-defined Agile roles evaporate completely as other environmental factors are applied. Finally, we will arrive at Programmer Anarchy, an organization often following none of the standard Agile practices, having no BA or QA roles, and even missing any managers of programmers.

We will summarize our environmental factors, and postulate on the required and optional factors. We will make bold, controversial assertions. We will back up these assertions with actual experiences.

Programmer Anarchy

The Agile movement shifted the relationship between clients and developers in a profound way. In waterfall processes, clients specified large amounts of functionality, then nervously faded into the background until the fateful day-of-delivery. With Agile, developers strove to engage with clients continuously, and delivered much more frequently against their needs. A new trust was established.

At the Forward Internet Group in London, we are implementing a second major shift between clients and developers. The trust of the clients in developers evolves into a broader trust of the developers to deliver business value without resorting to a series of well-defined stories. In essence, the business has empowered the developers to do what they think is right for the business. This model, popularized by Facebook, has several labels, but the one we prefer for our flavor is Programmer Anarchy.

We will start with stock Agile, and begin to apply environmental factors that led us to drop “standard” Agile practices. We will also watch as well-defined Agile roles evaporate completely as other environmental factors are applied. Finally, we will arrive at Programmer Anarchy, an organization often following none of the standard Agile practices, having no BA or QA roles, and even missing any managers of programmers.

We will summarize our environmental factors, and postulate on the required and optional factors. We will make bold, controversial assertions. We will back up these assertions with actual experiences.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Programmer Anarchy (English)

  1. 1. Copyright © 2011 by Forward Internet Group, Ltd 1
  2. 2. PROGRAMMER ANARCHY Fred George Forward Internet Group, London, UK fredgeorge@acm.org Copyright © 2011 by Forward Internet Group, Ltd 1
  3. 3. Copyright © 2011 by Forward Internet Group, Ltd 2
  4. 4. Experiences at... Copyright © 2011 by Forward Internet Group, Ltd 2
  5. 5. Experiences at... Copyright © 2011 by Forward Internet Group, Ltd 2
  6. 6. Copyright © 2011 by Forward Internet Group, Ltd 3
  7. 7. Performance Copyright © 2011 by Forward Internet Group, Ltd 3
  8. 8. Performance Copyright © 2011 by Forward Internet Group, Ltd 3
  9. 9. Performance £3m £7m £13m £27m £55m Copyright © 2011 by Forward Internet Group, Ltd 3
  10. 10. Performance £3m £7m £13m £27m £55m £0.5m £0.7m £1.0m £3.9m £10.0m Copyright © 2011 by Forward Internet Group, Ltd 3
  11. 11. £100m Performance £3m £7m £13m £27m £55m £0.5m £0.7m £1.0m £3.9m £10.0m £15m Copyright © 2011 by Forward Internet Group, Ltd 3
  12. 12. Copyright © 2011 by Forward Internet Group, Ltd 4
  13. 13. Why is Forward Working? Copyright © 2011 by Forward Internet Group, Ltd 4
  14. 14. Copyright © 2011 by Forward Internet Group, Ltd 5
  15. 15. Cynefin Framework: Model for Problems Copyright © 2011 by Forward Internet Group, Ltd 5
  16. 16. Cynefin Framework: Model for Problems ✦ Father is Dave Snowden ✦ Published in Harvard Business Review, 2007 ✦ A Leader's Framework for Decision Making ✦ Early publishing starting in 2000 from work at IBM Copyright © 2011 by Forward Internet Group, Ltd 5
  17. 17. Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  18. 18. The Cynefin Framework Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  19. 19. The Cynefin Framework Complicated Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  20. 20. The Cynefin Framework Complicated Cause  Effect Simple Cause  Effect Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  21. 21. The Cynefin Framework Complex Complicated Cause ? Effect Cause  Effect Chaotic Simple Effect? Cause? Cause  Effect Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  22. 22. The Cynefin Framework Complex Complicated Disorder Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  23. 23. The Cynefin Framework Complex Complicated Disorder Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 6
  24. 24. Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  25. 25. Effective Organizations Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  26. 26. Effective Organizations Complex Complicated Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  27. 27. Effective Organizations Complex Complicated Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  28. 28. Effective Organizations Complex Complicated Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  29. 29. Effective Organizations Complex Complicated Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  30. 30. Effective Organizations Complex Complicated Chaotic Simple Copyright © 2011 by Forward Internet Group, Ltd Cynefin Framework by Dave Snowden 7
  31. 31. Copyright © 2011 by Forward Internet Group, Ltd 8
  32. 32. Agile Manifesto ✦ Individuals and interactions over processes and tools ✦ Working software over comprehensive documentation ✦ Customer collaboration over contract negotiation ✦ Responding to change over following a plan Copyright © 2011 by Forward Internet Group, Ltd 8
  33. 33. Agile Manifesto ✦ Individuals and interactions over processes and tools✓ ✦ Working software over comprehensive documentation ✓ ✦ Customer collaboration over contract negotiation ✓ ✦ Responding to change over following a plan ✓ Copyright © 2011 by Forward Internet Group, Ltd 8
  34. 34. Copyright © 2011 by Forward Internet Group, Ltd 9
  35. 35. XP Values ✦ Feedback ✦ Communication ✦ Simplicity ✦ Courage ✦ Respect Copyright © 2011 by Forward Internet Group, Ltd 9
  36. 36. XP Values ✦ Feedback ✓ ✦ Communication ✓ ✦ ✓ Simplicity ✦ Courage ✓ ✦ Respect ✓ Copyright © 2011 by Forward Internet Group, Ltd 9
  37. 37. Copyright © 2011 by Forward Internet Group, Ltd 10
  38. 38. Agile Best Practices ✦ Stand ups ✦ Unit tests ✦ Story narratives ✦ Acceptance tests ✦ Retrospectives ✦ Refactoring ✦ Estimates ✦ Patterns ✦ Iterations ✦ Continuous integration ✦ Mandatory pairing Copyright © 2011 by Forward Internet Group, Ltd 10
  39. 39. Agile Best Practices Not Used ✦ Stand ups ✦ Unit tests ✦ Story narratives ✦ Acceptance tests ✦ Retrospectives ✦ Refactoring ✦ Estimates ✦ Patterns ✦ Iterations ✦ Continuous integration ✦ Mandatory pairing Copyright © 2011 by Forward Internet Group, Ltd 10
  40. 40. Copyright © 2011 by Forward Internet Group, Ltd 11
  41. 41. Agile Impact: Trust between Customer and Developer Copyright © 2011 by Forward Internet Group, Ltd 11
  42. 42. Trust Copyright © 2011 by Forward Internet Group, Ltd 12
  43. 43. Trust waterfall Copyright © 2011 by Forward Internet Group, Ltd 12
  44. 44. WHY? ✦ Larger systems ✦ Higher expectations ✦ Volatile commercial environments Trust ✦ etc... waterfall Copyright © 2011 by Forward Internet Group, Ltd 12
  45. 45. Trust waterfall Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 13
  46. 46. agile/lean Trust waterfall Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 13
  47. 47. Lean Kanban Trust SCRUM Agile XP waterfall agile/lean Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 13
  48. 48. Trust Cultural Chasm waterfall agile/lean Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 13
  49. 49. ✦ Frequency of interaction ✦ Process impact ✦ Fewer roles (& titles!) Trust Cultural Chasm waterfall agile/lean Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 13
  50. 50. Copyright © 2011 by Forward Internet Group, Ltd 14
  51. 51. Role Impact management Agile Roles business development Copyright © 2011 by Forward Internet Group, Ltd 14
  52. 52. Role Impact project manager iteration management manager Agile Roles business development customer programmer architect QA BA UI designer DBA Copyright © 2011 by Forward Internet Group, Ltd 14
  53. 53. Role Impact project manager iteration management manager Agile Roles business development customer QA developer BA Copyright © 2011 by Forward Internet Group, Ltd 14
  54. 54. Trust Cultural Chasm Fortune 50 story waterfall agile/lean Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 15
  55. 55. Cultural Chasm Trust Fortune 50 story waterfall agile/lean Copyright © 2011 by Forward Internet Group, Ltd Idea from Mark Durrand, uSwitch 15
  56. 56. Copyright © 2011 by Forward Internet Group, Ltd 16
  57. 57. Agile Roles ✦ Customer ✦ Project manager ✦ Business analyst ✦ Developer ✦ Quality assurance / tester Copyright © 2011 by Forward Internet Group, Ltd 16
  58. 58. Agile Roles ✦ Customer ✓ ✦ Project manager ✦ Business analyst ✦ Developer ✓ ✦ Quality assurance / tester Copyright © 2011 by Forward Internet Group, Ltd 16
  59. 59. Agile Roles ✦ Customer ✓ ✦ X Project manager ✦ Business analyst X ✦ Developer ✓ ✦ Quality assurance / tester X Copyright © 2011 by Forward Internet Group, Ltd 16
  60. 60. Agile Roles Reduced Again... ✦ Customer ✓ ✦ X Project manager ✦ Business analyst X ✦ Developer ✓ ✦ Quality assurance / tester X ✦ Manager of programmers X Copyright © 2011 by Forward Internet Group, Ltd 16
  61. 61. Copyright © 2011 by Forward Internet Group, Ltd 17
  62. 62. Developer-Driven Development Copyright © 2011 by Forward Internet Group, Ltd 17
  63. 63. Developer-Driven Development Open Source Business Copyright © 2011 by Forward Internet Group, Ltd 17
  64. 64. Developer-Driven Development PROGRAMMER ANARCHY Open Source Business Copyright © 2011 by Forward Internet Group, Ltd 17
  65. 65. Copyright © 2011 by Forward Internet Group, Ltd 18
  66. 66. Why “ANARCHY” Copyright © 2011 by Forward Internet Group, Ltd 18
  67. 67. Why “ANARCHY” ✦ EMPOWERMENT ✦ Somebody “gives” it ✦ Somebody can “take it away” ✦ Leads to “Can I ... ?” Copyright © 2011 by Forward Internet Group, Ltd 18
  68. 68. Why “ANARCHY” ✦ EMPOWERMENT ✦ ANARCHY ✦ Somebody “gives” it ✦ Nobody to ask ✦ Somebody can “take ✦ Can’t stop someone it away” else ✦ Leads to “Can I ... ?” ✦ Disagreements expected Copyright © 2011 by Forward Internet Group, Ltd 18
  69. 69. Copyright © 2011 by Forward Internet Group, Ltd 19
  70. 70. Matching Work and Devs Stories Devs Copyright © 2011 by Forward Internet Group, Ltd 19
  71. 71. Matching Work and Devs Stories Devs Stand Up Copyright © 2011 by Forward Internet Group, Ltd 19
  72. 72. Matching Work and Devs Projects Devs “Resource Rumble” Copyright © 2011 by Forward Internet Group, Ltd 19
  73. 73. Matching Work and Devs Projects Devs Who? “Resource Rumble” Copyright © 2011 by Forward Internet Group, Ltd 19
  74. 74. Copyright © 2011 by Forward Internet Group, Ltd 20
  75. 75. Agile Side Effect: Story Tyranny Copyright © 2011 by Forward Internet Group, Ltd 20
  76. 76. Agile Side Effect: Story Tyranny ✦ Development driven by stories ✦ Stories small ✦ Priority set by customer ✦ Story-level estimates and metrics Copyright © 2011 by Forward Internet Group, Ltd 20
  77. 77. Agile Side Effect: Story Tyranny ✦ Development driven by stories ✦ Stories small ✦ Priority set by customer ✦ Story-level estimates and metrics Problem: Developers become disconnected from business problem (Drones) Copyright © 2011 by Forward Internet Group, Ltd 20
  78. 78. Copyright © 2011 by Forward Internet Group, Ltd 21
  79. 79. Business Decisions Shift... Trust waterfall agile/lean anarchy Copyright © 2011 by Forward Internet Group, Ltd 21
  80. 80. Business Decisions Shift... Cust Dev Trust waterfall agile/lean anarchy Copyright © 2011 by Forward Internet Group, Ltd 21
  81. 81. Business Decisions Shift... Cust Dev Trust Cust Dev waterfall agile/lean anarchy Copyright © 2011 by Forward Internet Group, Ltd 21
  82. 82. Business Decisions Shift... Cust Dev Trust Cust Dev Cust Dev waterfall agile/lean anarchy Copyright © 2011 by Forward Internet Group, Ltd 21
  83. 83. Copyright © 2011 by Forward Internet Group, Ltd 22
  84. 84. forwardtechnology.co.uk Copyright © 2011 by Forward Internet Group, Ltd 22
  85. 85. Copyright © 2011 by Forward Internet Group, Ltd 23
  86. 86. Example: Energy Revolution Copyright © 2011 by Forward Internet Group, Ltd 23
  87. 87. Example: Energy Revolution ✦ Prior system: ✦ .NET with SQLServer Copyright © 2011 by Forward Internet Group, Ltd 23
  88. 88. Example: Energy Revolution ✦ Prior system: ✦ .NET with SQLServer ✦ New system: ✦ Ruby, Clojure, C++ ✦ MySQL, MongoDB ✦ HAML, SASS Copyright © 2011 by Forward Internet Group, Ltd 23
  89. 89. Copyright © 2011 by Forward Internet Group, Ltd 24
  90. 90. Example: Energy Revolution Copyright © 2011 by Forward Internet Group, Ltd 24
  91. 91. Example: Energy Revolution ✦ Ruby for energy calculation - big improvement! Copyright © 2011 by Forward Internet Group, Ltd 24
  92. 92. Example: Energy Revolution ✦ Ruby for energy calculation - big improvement! ✦ Rewrote in Clojure Copyright © 2011 by Forward Internet Group, Ltd 24
  93. 93. Example: Energy Revolution ✦ Ruby for energy calculation - big improvement! ✦ Rewrote in Clojure ✦ Rewrote in Clojure (again) Copyright © 2011 by Forward Internet Group, Ltd 24
  94. 94. Example: Energy Revolution ✦ Ruby for energy calculation - big improvement! ✦ Rewrote in Clojure ✦ Rewrote in Clojure (again) Question: What manager would let them to do it? Copyright © 2011 by Forward Internet Group, Ltd 24
  95. 95. Example: Energy Revolution ✦ Ruby for energy calculation - big improvement! ✦ Rewrote in Clojure ✦ Rewrote in Clojure (again) Question: What manager would let them to do it? Hence: No manager! Copyright © 2011 by Forward Internet Group, Ltd 24
  96. 96. Copyright © 2011 by Forward Internet Group, Ltd 25
  97. 97. Example: Click Tracking Copyright © 2011 by Forward Internet Group, Ltd 25
  98. 98. Example: Click Tracking ✦ Old system: ✦ Ruby-based, 32 servers with 40% utilization Copyright © 2011 by Forward Internet Group, Ltd 25
  99. 99. Example: Click Tracking ✦ Old system: ✦ Ruby-based, 32 servers with 40% utilization ✦ New system: ✦ Node.js, 22 servers with 10% utilization and lower latency Copyright © 2011 by Forward Internet Group, Ltd 25
  100. 100. Copyright © 2011 by Forward Internet Group, Ltd 26
  101. 101. Cultural Enablers Copyright © 2011 by Forward Internet Group, Ltd 26
  102. 102. Cultural Enablers Fear is the mind killer Copyright © 2011 by Forward Internet Group, Ltd 26
  103. 103. Cultural Enablers Sound finances Like risk Copyright © 2011 by Forward Internet Group, Ltd 26
  104. 104. Cultural Enablers Sound finances Like risk Clarity of Developer success focused Respected peers Copyright © 2011 by Forward Internet Group, Ltd 26
  105. 105. Cultural Enablers Do or not do, Sound finances there is no try Like risk Experimentation drives innovation If you are not failing, you are not trying Clarity of Developer success focused Respected peers Copyright © 2011 by Forward Internet Group, Ltd 26
  106. 106. Cultural Enablers Do or not do, Sound finances there is no try Like risk Experimentation drives innovation If you are not failing, you are not trying Clarity of Developer success focused The greatest barrier to success is Respected peers the fear of failure Copyright © 2011 by Forward Internet Group, Ltd 26
  107. 107. Copyright © 2011 by Forward Internet Group, Ltd 27
  108. 108. Agile Best Practices Not Used ✦ Stand ups ✦ Unit tests ✦ Story narratives ✦ Acceptance tests ✦ Retrospectives ✦ Refactoring ✦ Estimates ✦ Patterns ✦ Iterations ✦ Continuous integration ✦ Mandatory pairing Copyright © 2011 by Forward Internet Group, Ltd 27
  109. 109. Agile Best Practices Not Used Trust w ✦ Stand ups collocation ✦ Unit tests ✦ Story narratives ✦ Acceptance tests ✦ Retrospectives ✦ Refactoring ✦ Estimates ✦ Patterns ✦ Iterations ✦ Continuous integration ✦ Mandatory pairing Copyright © 2011 by Forward Internet Group, Ltd 27
  110. 110. Agile Best Practices Not Used Trust w ✦ Stand ups collocation ✦ Unit tests ✦ Story narratives ✦ Acceptance tests ✦ Retrospectives ✦ Refactoring ✦ Estimates ✦ Patterns Results, ✦ Iterations not blame ✦ Continuous integration ✦ Mandatory pairing Copyright © 2011 by Forward Internet Group, Ltd 27
  111. 111. Agile Best Practices Not Used Trust w ✦ Stand ups collocation ✦ Unit tests ✦ Story narratives ✦ Acceptance tests Small, ✦ Retrospectives ✦ Refactoring short-lived ✦ Estimates ✦ Patterns apps Results, ✦ Iterations not blame ✦ Continuous integration ✦ Mandatory pairing Copyright © 2011 by Forward Internet Group, Ltd 27
  112. 112. Agile Best Practices Not Used Trust w ✦ Stand ups collocation ✦ Unit tests ✦ Story narratives ✦ Acceptance tests Small, ✦ Retrospectives ✦ Refactoring short-lived ✦ Estimates ✦ Patterns apps Results, ✦ Iterations not blame ✦ Continuous integration ✦ Mandatory pairing Continuous deployment Copyright © 2011 by Forward Internet Group, Ltd 27
  113. 113. Copyright © 2011 by Forward Internet Group, Ltd 28
  114. 114. Reality Check Copyright © 2011 by Forward Internet Group, Ltd 28
  115. 115. Reality Check ✦ Different extent by team ✦ Talent, experience, apprehension ✦ Anarchy exists in how Anarchy is implemented ✦ Even our best Anarchists “ask” on occasion ✦ Commercial success driving freedom Copyright © 2011 by Forward Internet Group, Ltd 28
  116. 116. Copyright © 2011 by Forward Internet Group, Ltd 29
  117. 117. Acknowledgments Copyright © 2011 by Forward Internet Group, Ltd 29
  118. 118. Acknowledgments ✦ Anarchists ✦ Andy Kent ✦ Paul Ingles ✦ Mike Jones ✦ ... and the rest of the Search Team Copyright © 2011 by Forward Internet Group, Ltd 29
  119. 119. Acknowledgments ✦ Anarchists ✦ Andy Kent ✦ Paul Ingles ✦ Mike Jones ✦ ... and the rest of the Search Team ✦ Enablers ✦ Carl Gaywood and Neil Hutchinson Copyright © 2011 by Forward Internet Group, Ltd 29
  120. 120. Copyright © 2011 by Forward Internet Group, Ltd 30
  121. 121. PROGRAMMER ANARCHY Copyright © 2011 by Forward Internet Group, Ltd 30
  122. 122. Copyright © 2011 by Forward Internet Group, Ltd 30

Editor's Notes

  • \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
  • \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
  • \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
  • \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
  • \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
  • \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
  • \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
  • \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
  • \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
  • \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
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ×