What is Scrum?

Scrum is an agile way to manage a project, usually software development. Agile software development with Scrum is often perceived as a methodology; but rather than viewing Scrum as methodology, think of it as a framework for managing a process.

Scrum is an iterative and incremental agile software development framework for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project.

What is Agile methodology in software development?

Agile software development is a set of principles in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and it encourages rapid and flexible response to change. Agile itself has never defined any specific methods to achieve this, but many have grown up as a result and have been recognized as being "Agile".

What is software library?

A library is a reusable set of code which software developer can use as it comes from its creators. Library usually focuses on a narrow set of functionality, which user accesses through an API. It performs specific, well-defined operations. User calls a library function, it executes some code and then control is returned to developer's code. Usually, it does not provide any hooks for developer to extend or override its behavior.

What is software framework?

A software framework is an abstraction used in software development to provide generic functionality for application-specific needs. It is a programming platform, which contains common code with range of generic features, which might be selectively used, overridden or specialized by developers to suit their requirements for the particular application.