Extreme Programming System Metaphor Rilla Khaled Pippin Barr

Extreme Programming System Metaphor Rilla Khaled, Pippin Barr Robert Biddle James Noble Carleton University. Victoria University of Canada Wellington New Zealand 1

Outline • XP & System Metaphor • Peircian Semiotics: – Modeling Metaphor • XP Practice: – Choosing a Metaphor – Evaluating a Metaphor XP System Metaphor 2

Agile Software Development • Individuals and interactions over processes and tools • Work�ing software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan XP System Metaphor 3

Beck XP: e. Xtreme Programming • Fine scale feedback – – • Test. Driven. Development (were Unit. Tests & Acceptance. Tests) Planning. Game Whole. Team (was Onsite. Customer) Pair. Programming Continuous process rather than batch – Continuous. Integration – Design. Improvement (was Refactor. Mercilessly) – Small. Releases • Shared understanding – – • Simple. Design System. Metaphor Collective. Code. Ownership Coding. Standard or Coding. Conventions Programmer welfare – Sustainable. Pace (original name: Forty. Hour. Week) XP System Metaphor 4

XP System Metaphor • A story that everyone - customers, programmers and manager can tell about how the system work. Beck • The metaphor just helps everyone on the project understand the basic elements and their relationships. Words chosen to identify technical entities should be consistently taken from the chosen metaphor. As development proceeds and the metaphor matures, the whole team will find new inspiration from examining the metaphor. Beck • The team had the benefit of a very rich domain model developed by members of the team in the project's first iteration. It gave the members of the project an edge in understanding an extremely complex domain. C 3 Team • I still haven't got the hang of this metaphor thing. I saw it work, and work well, on the C 3 project, but it doesn't mean I have any idea how to do it, let alone how to explain how to do it. Fowler XP System Metaphor 5

Basic Peircean Semiotics • Semiotics is the study of signs. • Charles Sanders Peirce developed a triadic model of the sign: – Object (or Referent): the concept or thing actually represented by the sign. – Representamen: the sign itself. – Interpretant: the result of an interpreter’s encounter with a sign. XP System Metaphor 6

Unlimited Semiosis XP System Metaphor 7

Eco’s Model Reader To make his text communicative, the author has to assume that the ensemble of codes he relies upon is the same as that shared by his possible reader. The author has thus to foresee a model of the possible reader (hereafter Model Reader) supposedly able to deal interpretatively with the expressions in the same way as the author deals generatively with them. Umberto Eco: The Role of the Reader, 1979 XP System Metaphor 8

A Semiotic Model of Metaphor: Pierce, Lakoff & Johnson XP System Metaphor 9

Modeling Metaphor Introduction XP System Metaphor 10

Modeling Metaphorical Entailment A Metaphor is a Sign Generator XP System Metaphor 11

Entailment Linkage XP System Metaphor 12

XP System Metaphor 13

OOP Signs XP System Metaphor 14

Modeling Metaphor Program Code Signs XP System Metaphor 15

Metaphor Introduction XP System Metaphor Model Metaphorical Entailment Program Code XP System Metaphor 16

Practice: Finding and Evaluating Metaphorscape XP System Metaphor 17

A Bank Account is a Water Reservoir XP System Metaphor 18

Metaphorscape Metaphor Introduction Choosing a Metaphor • Brainstorming Potential Metaphors – – – With referent, suggest representamen Include team, customer, domain expert Consider explaining system to non-expert Consider surrounding metaphors Select most promising n XP System Metaphor 19

Choosing a Metaphor II Metaphorical Entailments • Brainstorming Metaphorical Entailments – Choose metaphor – Identify entailments: referent and interpretant – Begin individually and then merge XP System Metaphor 20

Choosing a Metaphor III • Brainstorming Program Code Signs – Identify implied objects/classes – Determine usefulness of objects/classes • Correctness, consistency, coherence – Select useful, discard others Program Code XP System Metaphor 21

Conclusion • Beck: A story that everyone - customers, programmers and manager - can tell about how the system work. • Fowler: “This is a real gap in XP, and one that the XPers need to sort out”. • Our explorations: – Language: Vocabulary and Structure – Techniques: Based on OOD and HCI practice XP System Metaphor 22

Extreme Programming System Metaphor Rilla Khaled, Pippin Barr Robert Biddle James Noble Carleton University. Victoria University of Canada Wellington New Zealand 23

XP System Metaphor 24

System Ideas • • Web browser Web server E-commerce site Email client Space Invaders GPS handheld Blog software XP System Metaphor • • Payroll system Compiler Banking system Library Backup system PDA software CVS 25

XP System Metaphor 26

User-Interface Metaphor You can take advantage of people's knowledge of the world around them by using metaphors to convey concepts and features of your application. Use metaphors involving concrete, familiar ideas and make the metaphors plain, so that users have a set of expectations to apply to computer environments. (Apple Computer Inc. , 1992) Familiar metaphors provide a direct and intuitive interface to user tasks. By allowing users to transfer their knowledge and experience, metaphors make it easier to predict and learn the behaviors of software-based representations. (Microsoft Corporation, 1995) XP System Metaphor 27

The Document Metaphor XP System Metaphor 28

Metaphor and Metaphorical Entailments • • • • The data is an object. The data can be written on. The data can be read. The data contains text, and possibly images and graphs, etc. The data can be ripped. The data can be typed up. The data is usually on white paper. The data can be photocopied. The data can be written in pencil or pen or ink. The data can (sometimes) be edited using twink or an eraser. The data contains information. The data can be set on fire. The data can be picked up and moved from place to place. The data can be thrown in a trashcan. The data can give you a paper-cut. • … XP System Metaphor 29

XP System Metaphor • • A story that everyone - customers, programmers and manager - can tell about how the system work. Beck The metaphor just helps everyone on the project understand the basic elements and their relationships. Words chosen to identify technical entities should be consistently taken from the chosen metaphor. As development proceeds and the metaphor matures, the whole team will find new inspiration from examining the metaphor. Beck The team had the benefit of a very rich domain model developed by members of the team in the project's first iteration. It gave the members of the project an edge in understanding an extremely complex domain. C 3 Team I still haven't got the hang of this metaphor thing. I saw it work, and work well, on the C 3 project, but it doesn't mean I have any idea how to do it, let alone how to explain how to do it. Fowler XP System Metaphor 30

Evaluating a Metaphor • How is the Metaphor Good? – whether the entailments of the metaphor contain programmable ideas – whether the metaphor addresses the major system components and their known functionality. – whether the metaphor entailments provide a vocabulary with which to describe the system • Is the metaphor too poor? – which system components and interactions are left undescribed by the metaphor • Is the metaphor misleading? – whether the metaphorical entailments imply non-existent system components or non-existent behaviour. XP System Metaphor 31
- Slides: 31