<s>[INST] # eXtreme Programming is focused on high-quality software development
Agile methodologies and good design are emphasized in eXtreme Programming 
The core values of XP are:
    1. Communication
    2. Simplicity
    3. Feedback
    4. Respect
    5. Courage

Value #1: Communication
On the importance of communication in XP: "We have found that the simplest and most effective way to convey information to and within a development team is by face-to-face conversation." - Kent Beck

Kent Beck emphasizes the importance of Osmotic Communication

Value #2: Simplicity
XP emphasizes simplicity in software development, promoting the idea that the simplest solution is the best one. 
Kent Beck says, "Do the simplest thing that could possibly work."

Value #3: Feedback
Feedback is a crucial aspect of XP, allowing for continuous improvement and adaptation to changing requirements.

Value #4: Respect
Respect for people, customers, and the code itself is essential in XP.
Kent Beck emphasizes the importance of mutual respect among team members.

Value #5: Courage
Courage is necessary to take risks, experiment with new ideas, and continually improve the software development process.

The 12 Practices of XP
1. Pair Programming: Two developers work together on the same code to improve quality
2. Planning Game: The team and customers collaborate to plan and prioritize work
3. Test-Driven Development (TDD): Writing automated unit tests before writing code
4. Whole Team: The customer and developers work together to ensure everyone is on the same page
5. Continuous Integration: Integrating code changes frequently to prevent integration issues
6. Refactoring: Improving the internal structure and organization of code without changing its functionality
7. Small Releases: Releasing software in small increments to deliver value quickly
8. Collective Code Ownership: The entire team is responsible for the entire codebase
9. Coding Standards: Establishing a set of coding standards to ensure consistency
10. Metaphor: Using a shared understanding of the system to guide development
11. Simple Design: Keeping the design simple and easy to understand
12. System Metaphor: (same as above)

The four key activities of XP:
1. Coding: Writing the code for the software
2. Testing: Writing and running automated tests
3. Refactoring: Improving the internal structure and organization of code
4. Designing: Creating a simple and effective design for the software

Challenges and limitations of XP
    1. Requires a high level of discipline and commitment from team members
    2. Can be difficult to apply in large or distributed teams
    3. Requires a high level of customer involvement
    4. May not be suitable for critical or safety-critical systems

What is the value of Courage in eXtreme Programming?
A. The value of Courage in eXtreme Programming is a willingness to avoid risk.
B. The value of Courage in eXtreme Programming is tolerance for uncertainty.
C. The value of Courage in eXtreme Programming is a willingness to take risks, experiment with new ideas, and continually improve the software development process.
D. The value of Courage in eXtreme Programming is a focus on following established rules and procedures.[/INST]