Scrum is an agile Framework for developing software. With Scrum, projects progress via a series of month-long iterations called sprints.
Scrum is ideally suited for projects with rapidly changing or highly emergent requirements. The work to be done on a Scrum project is listed in the Product Backlog, which is a list of all desired changes to the product. At the start of each Sprint a Sprint Planning Meeting is held during which the Product Owner prioritizes the Product Backlog and the Scrum Team selects the tasks they can complete during the coming Sprint. These tasks are then moved from the Product Backlog to the Sprint Backlog.
During the Sprint the team stays on track by holding brief daily meetings.
At the end of each Sprint the team demonstrates the completed functionality at a Sprint Review Meeting.
The Scrum process was first applied to software by Ken Schwaber and Jeff Sutherland. It has been most thoroughly documented in the book Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.
Scrum works because it is a highly-empowering process that allows requirements and self-organizing teams to emerge. In their book, Schwaber and Beedle describe Scrum as an empirical process that uses frequent inspection (daily meetings), collaboration and adaptive responses. They contrast this to defined processes in which every task and outcome is defined. Defined processes work only when the inputs to the process can be perfectly defined and there is very little noise, ambiguity or change. If that doesn't sound like the software projects you work on, look into Scrum.
For more Information about Scrum