A conversation conveys the give and take interaction among a group of people who are comfortable in saying what they think. Conversations are very adaptive. They take interesting twists and turns as people ask questions and express ideas. A good conversation is based on trust and truthfulness. Many of the practices in ExtremeProgramming fit this metaphor. * SystemMetaphor * We use metaphor in conversation to more simply express complex ideas. * OnsiteCustomer * The XP conversation is about expressing their desires in code. How often do people really know what they want until they talk about it with people they trust? * UserStories * Interesting conversations often begin with stories. Stories evolve when we talk about them. * AskTheCode, ListenToTheCode * Have a conversation with your computer. It's smarter than you think! Conversations are interactive so ask for feedback often. Compile often to ask if your syntax was understood. Run UnitTest''''''s often to ask if your meaning was understood. * PairProgramming * Why should the conversation stop when we start coding? When we really want to dig into the details of a topic it often helps to talk about it one on one. * CollectiveCodeOwnership * Conversation is a collective process. Everyone shares in expressing it. * PlanningGame * Seems like a more structured conversation where first you talk about customer desires, then discuss how they might be achieved, then negotiate what it will cost and get realistic about what you can afford. In emotionally charged conversations it often helps if the parties agree to some ground rules so nobody's feelings get hurt. * ''Does game imply some lack of trust? A common accusation when someone is not being truthful in a conversation is, "They are playing games."'' * That's probably because most games are not cooperative. Maybe "CooperativePlanningGame" would have been a better name. See ProjectPlanningJamSession for a variation along these lines. * Iteration * Have you ever noticed how the same topic comes up again in a conversation and then gets elaborated on in new ways? * ContinuousIntegration * This practice is a continuous conversation between the developers and the compiled system. ---- CategoryMetaphor