Extreme Programming (XP) is a software development methodology intended to improve quality and responsiveness to changing requirements. It involves 5 activities - planning, managing, designing, coding, and testing. Planning includes writing user stories, release planning, and frequent small releases. Managing involves dedicated workspace, stand-up meetings, and measuring velocity. Design focuses on simplicity, metaphors, CRC cards, and refactoring. Coding uses pair programming, tests first, and integration testing. All code must have unit tests that pass before release.