The learnings of the adage ‘The only thing constant in life is change’ is extensively relevant to the fast-changing software world. Changes should be harnessed to attain competitive advantage and the ideal way to embrace changes is by building ‘agility’ within the organization. How can Agile product development go unnoticed when the discussion is centered around ‘change’ and ‘agilityJ.
Figure 1 Source
If you have come across terms like ‘Agile’, ‘Scrum’, ‘Sprints’, etc.; the exciting part is that your team is already leveraging agile methodology for software development. Agile product development offers numerous advantages in comparison to the traditional waterfall model – a classical model that has certainly become history.
Agile project management has made inroads in the rapidly-evolving utility sector. At TekGeminus, we have been using Agile development methodology for all customer projects and the results have been truly fascinating!
We kick start this Agile product development series by sprinting you through an introduction to Agile, Scrum, and more…
What is Agile Development Methodology
In simple terms, the Agile methodology refers to a set of practices that are based formulated based on the Agile Manifesto. The term Agile was chosen by the authors of the Agile Manifesto so that it represents the benefits of adaptiveness and swift responsiveness that comes along with the approach.
Agile development is a stark contrast to the traditional waterfall model. Though we would not delve deeper into the waterfall model, a proven thing is that organizations that are ‘resistant to change’ find it difficult to embrace the Agile development methodology.
In a traditional waterfall model, the project phases (i.e. requirements gathering, development, testing, integration, etc.) are executed in a linear fashion. This approach is not suitable for large-scale software projects, especially when technology is evolving at a breath-neck pace.
On the other hand, Agile methodology is built on the pillars of ‘iterative development and testing’ where cross-functional teams strive hard to develop ‘Wow’some products through iterations of development & testing.
What does it take to drive Agile development in an organization? The framework for implementing Agile development is called Scrum. Think of Scrum like an engine of a car, as the car is of no use without the engine. In the case of Agile product development, Agile is the ‘car’ and Scrum is the ‘engine’ of the car.
Is the Agile methodology only used in the software field? Well, Agile was born out of the frustration faced by Japanese companies like Toyota, Honda, etc. The intent was to improve the production capacity so that it leads to improved production efficiency. The Kanban method was used for achieving these tasks in the production line.
In the 90’s, Jeff Sutherland co-created the Scrum framework by applying the learnings about Agile methods (used by Japanese companies) in the software field. Fast forward now, ‘Agile’ and ‘Scrum’ are extensively used by a majority of the software companies across the world.
Benefits of Agile Methodology
Now that we have covered the basic aspects of Agile development, let us look at the immense benefits offered by the Agile methodology:
Better Control – Irrespective of the scale of the project, the focus of Agile is on ‘incremental’ product development. Teams following the Agile methodology have regular stand-up meetings where respective project stakeholders share progress and bottlenecks hindering their project (or module) deliverables.
This helps in improving communication across cross-functional teams, along with making the development process more transparent.
Improved Productivity – Sprint, the soul of Agile methodology, is a one-time-boxed iteration of a continuous development cycle. Sprints help in managing projects in a more efficient manner. Incremental (or iterative) development and testing help in a quicker roll-out of the software product.
Spot-on Quality – Product bugs discovered by your end customers (or consumers) say a lot about the processes followed in developing and testing the product. The ‘iterative’ nature of Agile methodology helps project teams in swiftly responding to customer reactions, thereby resulting in the continual improvement of the product.
Better ROI – The Agile approach to software product development is instrumental in shipping the product at a much faster pace. The iterative nature of development and testing helps in speeding up the entire process.
It also provides immense opportunity to curtail unnecessary costs resulting in improved Return On Investment (ROI) in comparison to traditional software development models.
Introduction to the Scrum Framework
Till this point, you would come across numerous jargons like Scrum, Stand-up meetings, Kanban, etc. A single blog is not sufficient to unearth all these jargons which is why we would have a complete series about the nuts & bolts of the Agile methodology. For now, we kick start by looking into the fundamentals of the Scrum framework.
What is Scrum
Scrum is a subset of the Agile framework. It is one of the widely used process frameworks for Agile development. Process Framework indicates a set of practices that have to be diligently followed to keep the Scrum process consistent with the Agile framework.
Scrum is a light-weight framework which essentially means that there are fewer overheads (or hurdles) in implementing the framework and the major thrust is put on maximizing the team’s productivity & improving the product quality.
The official guide on Scrum Guides can be a good starting point to get started with the Scrum framework.
Commonly implemented roles in the Scrum framework
Scrum runs on the Servant-Leader model. The Scrum Master is the Servant-Leader of the framework. Here are the most commonly used roles in the Scrum framework:
- Scrum Master – The individual responsible for setting up the team and planning the Sprint (or stand-up) meeting. The Scrum Master removes any obstacle that might hamper the progress of the project.
- Scrum Team – The team responsible for managing and organizing the work for smooth completion of the Sprint.
- Product Owner – Creates the product backlog, prioritizes the activities in the backlog, and ensures that timely deliverables are available at every iteration.
Process Flow of the Scrum framework
Here are some of the essential steps to be followed for implementing the Scrum framework:
- Pick a ‘suitable’ Role from the list of available roles
- Product Owner creates a Product Backlog
- Plan the Sprint and choose a ‘sprint duration’ that is in-line with the project needs
- Members work on their respective tasks and progress is checked in the Daily Scrum Meeting.
- Participants of the Scrum meeting present the status of the assigned tasks.
At the end of the Scrum meeting, the Scrum Master should look at ways in which the team’s efficiency and productivity can be further improved. The steps mentioned above are repeated in the next Sprint(s) till there are no tasks in the Backlog!
Here is a pictorial representation of the basic Scrum Process:
Our next blog in the ‘Agile Product Development’ series would focus on user stories, creating a Scrum team, inculcating the Agile mindset for business transformation, and more.
Do share your story on how Agile product development helped in creating
a positive impact on your project (and organization) in the comments section…