Introduction to Agile and Scrum
Agile is a software development methodology that has the bandwidth to adapt to changing project requirements quickly and to adapt to the development of a new product while the project is ongoing or after the completion of the project, unlike traditional project management.
Let’s understand the distinctive advantage that agile is having over traditional project management methodology:
- Detailed planning before start
- Allows to adopt minimal change
- Fixed Project definition
- Minimal planning before the start is required
- Will accept and adapt to changes
- Fixed time and cost
Scrum is the most widely used and popular approach to implement an agile methodology.
We will come to the scrum section shortly but first, let us see more about the agile framework.
Principles Behind Agile Manifesto
- Customer satisfaction is of the highest priority which is achieved through continuous and early delivery of valuable software.
- Deliver a working software in a short span of time with continuous development of new software/products in the line following the same approach.
- We should be able to accommodate the changing requirements even if it comes late during the SDLC lifecycle.
- The team members should stay motivated always and for that, enough support and a good environment should be provided.
- The developers and business people must work together daily throughout the project.
- The most efficient way of conversation is considered to be the face to face interaction.
- Sustainable Development. All team members should be able to maintain a constant pace.
- A working product/software is considered to be the primary measure of progress.
- At the end of the day, the main focus should be technical excellence and robust design.
- Simplicity should be followed throughout the SDLC process
- The teams should actually showcase on continuous effectiveness and adopt any changes to increase effectiveness.
- Robust design and architecture come from self-organizing teams.
Approaches for Agile Implementation:
- SCRUM – This is an iterative approach in which there is something called as sprints that last up to one or two weeks. This approach allows teams to deliver the working product or the software on a regular basis.
- Kanban – In order to implement agile, this approach uses a visual framework. Here there are no fixed-length sprints and the team gets the task from a prioritized backlog.
- Extreme Programming (XP) – This approach is intended to improve the software quality and responsiveness by incorporating simplicity, feedbacks and adopting change.
- Feature Driven Development (FDD) – This approach includes 5 basic activities that are – Develop an overall model, build a features list, plan by feature, design by feature and build by feature.
- Adaptive System Development (ASD) – This approach can be used for building complex software and systems and it mostly focuses on team collaboration and self-organization. It includes 3 iterative activities that are – Speculate, Collaborate and Learn.
- Dynamic System Development Method – DSDM is an agile approach that follows an iterative and incremental approach that is largely based on the Rapid Application Development Methodology. It addresses the common failures of projects such as project budget issues, missing deadlines etc.
- Lean Software Development – Lean Software Development is an agile approach which has 7 basic principles and those are: Eliminate Waste, Empower the team, Deliver Fast, Optimize the Whole, Build Quality In, Defer Decisions and Amplify Learnings.
What is Scrum?
In previous sections, we have already seen the approaches that are used to implement the Agile process and Scrum was one of them, Scrum is one of the most important and most widely used Agile Methodology. A scrum is an iterative approach in which there is something called sprints that last up to one or two weeks. This approach allows teams to deliver the working product or the software on a regular basis. Here the responsibilities, roles, and meetings are decided in Scrum and sprints are schedules where there is sprint planning, sprint demo, daily standup and sprint retrospective.
Scrum Roles/Scrum Teams:
- Scrum Master – The Scrum Master is a role who is responsible for the scrum team to follow the Scrum methodology. The Scrum Master organizes meetings, encourages the team, facilitates planning and tracking, deals with challenges and handles bottlenecks. The Scrum Master also communicates with the Product Owner to make sure that the product backlog is ready for the next sprint.
- Product Owner – The Product Owner is responsible for the analysis and communication of the Software version to the Scrum Team. The Product Owner also coordinates with the Scrum Master to decide on product backlogs for the sprints.
- Development Team – The Development Team consists of the professionals who are responsible for the continuous development, testing and the delivery of the software. They determine how to deliver chunks of works in frequent increments.
Steps in Scrum Flow:
- Product Backlog – The Product Backlog maintains the list of product features. It is the responsibility of the Product Owner and the Scrum Master to prioritize the backlog items on the basis of user stories and requirements.
- Sprint Planning – It is a meeting which is facilitated by the Scrum Master where the Product Owner presents the details of the product backlog, sets the delivery acceptance criteria and the development team who define the work and effort they progressed on a daily basis.
- Backlog Refinement – To keep the product backlog updated, we use Backlog Refinement. Here the user stories are divided into smaller parts and any irrelevant user stories are removed
- Daily Scrum – It is a daily 15 minutes stand up a meeting where basically three questions are being discussed that are: What was accomplished yesterday, what is the plan for today and what are the obstacles.
- Sprint Review Meeting – This meeting is performed at the end of each sprint where a live demonstration is being presented to showcase what has been accomplished throughout the sprint.
- Sprint Retrospective Meeting – We can also call this meeting as the success meeting where the team discusses the process that worked or which did not work during the sprint with their workarounds.
In this article, we saw that Agile is a software development methodology which has the bandwidth to adapt to changing project requirements quickly and to adapt to the development of new product while project is ongoing or after the completion of project unlike traditional project management while Scrum is the most widely used and popular approach to implementing agile methodology.
This has been a guide to What is Agile and Scrum. Here we discussed the different Approaches Of Agile and Scrum. You can also go through our other suggested articles to learn more –