Mostly people say Scrum and Agile interchangeably but what is the difference between Scrum Practice as compared to Agile Practice ?
Agile is a general philosophy regarding software production, Scrum is a an implementation of that philosophy pertaining specifically to project management.
Scrum is a very specific set of practices. Agile describes a family of practices, everything from Extreme Programming to Scrum and almost anything else that uses short iterations can claim Agile. That may not have originally been the case when the term was coined, but it certainly is by now.
As is mentioned, Agile is a methodology, and there are various ways to define what agile is. To a large extent, if it involves constant unit testing and the ability to quickly adapt when the business needs change then it is probably agile. The opposite is the waterfall method.
There are various implementations that are codified by consultants, such as Xtremem Programming, Scrum and RUP (Rational Unified Process).
So, if you are using Scrum then you can switch between agile and scrum depending on if you are talking about the methodology or your implementation. You will want to see if the terms are being used correctly, by the context.
For example, if I am talking about the 15 min standup as part of my agile process, that is not necessarily needed to be agile, but scrum almost requires it, so when you interchange the terms, it is important to differentiate between the two concepts.
Agile and SCRUM are related but distinct. Agile describes a set of guiding principles for building software through iterative development. Agile principles are best described in the Agile Manifesto. SCRUM is a specific set of rules to follow when practicing agile software development.
Scrum is a type of Agile method just like an apple is a type of fruit. Scrum is not the only Agile method though. The popular ones are:
- Scrum
- eXtreme Programming (XP)
- Kanban
I'm sure there are more Agile methods but these are what I have experience with.
Agile is commonly regarded as an umbrella term. Scrum/Kanban are executions of Agile guiding principles from a project management perspective, whereas eXtreme Programming (XP) focuses on the engineering practices e.g., Unit Testing, Continuous Integration, Pair Programming etc.
Typically: Agile = Scrum + XP