What is Agile — Scrum
Agile is one of the software development methodologies used to develop software applications. It focus on developing in iterative fashion, stockholders and technical teams communicate each others during the implementation of each iteration/sprint. There are many frameworks available in agile for example Scrum, Xtreme Programing, Feature Driven Development, Kanban and many more. I will highlight main features in Scrum here.
Classical way to software application development is to follow Waterfall model, but there are issues attached to this method which causes project deliverables a little problematic.
Waterfall model consists on different sequential phases, and output of each phase is the input of next phase, which means every phase has to be completed before next phase is started.
Below are the phases in Waterfall method
It is obvious that each phase require previous phase to be complete. There are few issues attached to this way of development model, few are mentioned below
Freezing nature of each phase(because next phase is started once previous is completed).
Less or very little interaction with stakeholders(because stakeholders interact with developed product at the last phase)
Hard to welcome change requests, if changes has to be made, it will in validate previous phase work.
Above issues can only be avoided if software development has been done in a way of small iterations, and there must be lessons learned from each completed iteration. After the completion of each iteration, stockholders must see the progress and they should be free to provide feedback or to request change if they want.
Both incremental and iteration approach should be followed towards the completion of the project.
Scrums defines three main artifacts
Product Backlog (contains everything required to be the part of product)
Sprint backlog (things a team commits to deliver in an iteration/sprint)
Increments (builds — deployable work as agreed with stakeholders)
Agile is easier to understand but hard to practice, there are many challenges involved when it comes to incremental builds. If there is anything that can not be completed within the committed sprint, stakeholders must be aware of it as well, also there should be a plan to cover it in coming sprints.