Agile software development


Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizingcross-functional teams. The Agile Manifesto introduced the term in 2001.

Phases in Agile Model: 
There are three phases in Agile model.
Planning:
This is a continuous phase involving activities related to discussing and prioritizing Product
Improvement requests and adhoc requests and developing a comprehensive product backlog (PBL)
. Key activities performed in this phase include creation of backlog items & prioritization of Product
Backlog, resource planning, scope and time lines agreement for releases and their iterations .

Sprints(Development):
This phase involves all activities related to a project development such as analysis and design,
reviews, coding, unit testing, integration testing, deployment to target environment and
demonstration of functionality to customer through a small time frame called a sprint.

Closure Phase:
This phase involves activities related to Release in to the target/ production environment. Key
activities performed in this phase include Release level Testing, release notes and training.

Roles in Scrum:
Product Owner:
  • The customer/sponsor of the project(MIS Steering committee )
  • Defines and prioritizes the functionality to be delivered by execution of the project
  • Defines the end goal of each sprint and reviews the sprint outcome at end of every sprint
  • Takes inputs from end customers and other stakeholders while defining the Product Backlog
  • and reviewing the Sprint goal upon completion.
Scrum Master:
  • The manager of the Scrum Team
  • Acts 50% as process coach and 50% as a developer
  • Assures that the Daily Scrum Meetings are conducted as planned
  • Maintains the focus of the Scrum Meeting to the sprint goal
  • Decides to remove the road blocks discovered during the Scrum Meeting
  • Enables action for removal of impedances reported in the last Scrum Meeting before the next
  • Scrum Meeting
  • Assures that no new task is added from outside of the Scrum Team unless there is equal
  • amount of time and effort made available by removing some other task
  • Acts as the firewall (Scrum Master Firewall) for the Scrum Team against the other stakeholders
  • of the system.
  • Participates in Sprint planning and Retrospective meetings.
Scrum Team: 
  • All roles (Designers, DBAs, Developers, Testers, Network Engineers, and Hardware Engineers
  • etc)
  • Contribute to the project execution Work collectively to achieve the sprint goal of implementing
  • all features listed in the Sprint Backlog.
  • Update the Sprint Backlog on daily basis to record the progress.
Other Stakeholders: 
  • Customer's organization, business stakeholders and end customers of the project.
  • Not allowed to speak/interrupt/suggest while the Scrum Team conducts the Scrum Meeting,however, they can observe the proceedings and provide their inputs at later point in time.