Agile and Scrum
Agile development is an iterative and flexible process. Rather than specifying all the requirements of a project up-front and adhering to them throughout the development process (as happens in waterfall development), the requirements are listed as items in a product backlog. Specifiying software in this flexible and responsive way is better for customers and better for users. The product backlog is prioritised by the ' product owner ' (a role that represents the business users of the product to be developed). They can change the priority of an item in the backlog at any time. Each item in the product backlog represents a block of work to be done, which should ultimately result in ' shippable product ', otherwise known as a feature that users can use. Items in the product backlog are called 'user stories', which can be an epic (an overarching dewcription of some functionality), a spike (a time-boxed investigation), a bug (broken functionality that needs fixing), ...