Scrum is an iterative, incremental framework for project management that is often used in agile software development. It involves breaking projects into short cycles called sprints that typically last 1-4 weeks. The main roles in Scrum are the ScrumMaster, Product Owner, and Development Team. Key activities in each sprint include sprint planning meetings, daily standup meetings, development work, testing, and sprint retrospectives. At the end of each sprint, any potentially releasable work is demonstrated in a sprint review.