Agile Methodology (SCRUM)
Agile software development is a conceptual framework for undertaking software engineering projects. There are a number of agile software development methodologies e.g. Crystal Methods, Dynamic Systems Development Model (DSDM), and Scrum. Scrum is an agile method for project management and it’s primary goal is to dramatically improve productivity in teams previously paralyzed by heavier, process-laden methodologies.
Scrum is characterized by:
- A live backlog of prioritized work to be done.
- Completion of a largely fixed set of backlog items in a series of short iterations or sprints.
- A brief daily meeting (called a scrum), during which the progress so far is detailed, upcoming work is described, and obstacles are flagged.
- A brief planning session in which the backlog items for the sprint is defined.
- A brief heartbeat retrospective, during which all the team members reflect upon the past sprint.
A key principle of scrum is its recognition that fundamentally empirical challenges cannot be addressed successfully in a traditional “process control” manner. As such, scrum adopts an empirical approach - accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to respond in an agile manner to the emerging challenges.