Introduction to Agile Development
The following article provides an outline on What is Agile Development? As the name Agile explains, it is an iterative process of delivering the product/ software to the customer by developing the requirements and improvising the product over time.
Agile software development is Feature Driven Deployment based approach where we follow some principles:
- Software developers need to satisfy the customer through continuous delivery and welcome changes even late in development.
- Need to deliver working software frequently with short time intervals.
- Attention to Technical expertise and good design of the functionality will improvise agility.
- Need to have self-organizing teams for better architecture and requirements design.
Comparing to other models of software development like Traditional Waterfall methodology, where developer gets the requirements, develops the complete code and send it for testing of the software, here in Agile Methodology, we split the requirements on priority and co-ordinate with other teams to develop the given requirements with parallel testing the requirements done so far and release the software part by part.
This agile methodology involves Scrum framework which is used to manage complex software development employing various processes and techniques.
There are 3 roles in scrum framework:
- Scrum Master: He/ She ensures the process is followed by removing impediments and supporting development team.
- Product Owner: He/ She works with stakeholders and business.
- Development Team: Self-organizing team who do the requirement analysis, design, implementation and testing, etc.
Scrum Events in Agile Methodology
Scrum is simple to understand but extra effort is needed to implement the methodologies. Scrum events in Agile methodology are Sprint, Sprint planning, Daily Scrum, Print Review and Sprint Retrospective.
- Sprint: It is a time-box of 1 month or less consistent duration, new sprint starts immediately after the conclusion of previous sprint. No changes are to be made once the sprint starts and scope of the project can be re-negotiated with Product owner and development team.
- Sprint Planning: It is time-box of maximum 8 hours for a month sprint, it gives an overview of what are the requirements which are to be delivered in sprint.
- Daily Scrum: It is a 15 min time box event for the development team to discuss and create a plan for the next 24 hours to reduce complexity.
- Sprint Review: It is held at the end of each sprint to inspect Increment and adapt Product Backlog.
- Sprint Retrospective: It occurs after sprint review and before sprint planning to get to know what went well in the previous sprint and what could be improved.
Artifacts in Agile
Artifacts in Agile includes Product Backlog, Increment and Sprint backlog.
- Product Backlog: It is an ordered list of the product requirements which is never complete.
- Increment: It is the sum of all the product backlog items completed during a sprint.
- Sprint backlog: It is the set of Product backlog items selected for a particular sprint.
Given below is the diagram of Scrum Framework:
- These are the product features/ functionalities that the user wants to use in their final product which are also known as requirements. The success of a development project lies in understanding the customer requirements and implementing them in final product/ software.
- In Scrum projects, product backlog consists of list of user stories and is narrated from user perspective as what he/ she wants. These user stories are prioritized and taken into sprint backlog in sprint planning meeting.
- For e.g., Consider a requirement where customer wants to purchase PVR movie pass so that he gets access to purchase movie tickets at a lower cost.
- Format of User story is, as a customer I want to purchase a movie pass so that I can access to purchase movie tickets at a lower cost.
This requirement should satisfy acceptance criterion defined by customer/ business.
- Only one pass can be issued to one customer.
- No pass to be issued if customer does not pay a one-time amount of 500 annually.
- Customer has to enroll and has to have a history of watching at least 5 movies in PVR.
- Maximum 3 people can be allowed on a single pass. And the criterions can go on depending upon customer requirements.
Benefits of User stories includes:
- It is the customer who will be using the final product, user stories connect the end users and software development team.
- The format of user story ensures to achieve the benefit that customer wants.
- It has an added advantage to Scrum team as the acceptance criteria forms part of user story.
- There is a chance to make changes to user stories during execution of the project, even though the scope of story changes, we can split it and move the user story or part of requirement to backlog for executing in further sprints.
- As we deliver working software/ product at the end of sprint, scrum team can get feedback in review meetings.
Advantages of Agile Development
- It promotes teamwork and cross functional training.
- Functionalities can be developed and demonstrated in a shorted period.
- It is a realistic approach to develop software.
- Requirement of Resources is minimal.
- Suitable for changing requirements.
- Early delivery of working software at least partially.
- Easy to manage and gives flexibility to developers.
Agile Methodologies include many software development approaches, here we have discussed SCRUM, we also have Extreme Programming (XP), Agile Modeling etc. As Agile methodology is growing software development methodology, it has made lives of software developers, testers and the organization easier as it is adaptable to change, people-oriented, speedy and responsive which are required for software development projects.
This is a guide to What is Agile Development? Here we discuss the introduction, scrum events in agile methodology, artifacts and advantages of agile development. You may also have a look at the following articles to learn more –