You would have observed that a software taking too much time to get developed is often not preferred as the market needs changes very frequently and by the time this software will get developed, there is possibility of much better software would have already been released, this brings the need of software engineering which handles higher rate of change in user requirements and environment on which the software is working. A software should be -
- Economically feasible
- Technologically feasible
- Built within a deadline
Agile is a better way of building products which is time-bound and iterative approach to deliver software that is built incrementally from the commencement of the project, instead of trying to deliver all at once. It delivers modern software in iterations of waterfall, it accepts client changes and inculcates them and take feedback from the client as well as the users.
Technology in this current era is progressing at a rate where things are changing very fast, if traditional software development methods like waterfall model are used then time to deliver software in market is slow and the market will be somewhere else after that time which will lead to inculcate changes in it but that's not possible in this model. It doesn't allow continuous delivery and so customers have to wait long to get their product. There are various frameworks of agile that implement this methodology -
- Extreme Programming (XP)
These frameworks follow all principles of agile methodology.
Scrum is a project management framework that helps teams to work together. It describes a set of meetings, tools, techniques and roles that work to help teams structure and manage their work properly and help in continuous delivery of product.
Stages involved in Scrum
A sprint is a short and fixed period generally of 1 or 2 week when a scrum team works to complete a set amount of work. Scrum goes with sprint. Sprint period is decided upon speed and skills of development team.
Scrum believes in delivering something to client after every sprint, which is potentially shippable product. This framework guarantees incremental delivery of product which can be deployed according to client's wish.
Client doesn't know what exactly he wants initially and his requirements keep changing according to his needs and better understanding of problem, so MVP (Minimum Viable Product) is delivered, which is a version of a product with just enough features to be usable by early customers who can then provide feedback for future product development.
Product backlog will have all requirements from starting to the end. Few requirements are collected from entire product requirements each week which go in current sprint backlog. These requirements are selected after sprint meeting.
Scrum team will work on the product, after first sprint first increment of the product is obtained. If everything planned is not completed, those tasks are set in next sprint
Sprint Retrospective comments which methods were better and involves sprint review.
Daily scrum everyday for 15 mins team will come together and discuss doing sprint review and retrospective
Development team is a cross functional and self organizing team, each member can do everything like designing, coding, testing, etc.
To know more about scrum, click here.