Agile is a software development methodology that executes a project in an incremental manner by iterating a small course of action with similar set of procedures in stipulated time frames. Agility in business must allow room for any changes either internal or external without loosing the vision and momentum.With constant advent of changing technology, surviving competition was a major challenge to IT Corporates. Traditional SDLC incurred hefty costs and often demanded prolonged delivery time leaving no room for any alterations demanded, in middle of the cycle.There was a dire need to transform this whole development process at this point. And ‘Agile’ emerged as a cost effective solution that not only did embrace interim changes but also boosted the pace of execution and therefore considerably reduce the Product finish time.Agile instantly gained the spotlight and is still a prevalent practice in IT Sector.
Agile describes a set of guiding principles that uses continuous iteration of development and testing that go concurrently in software development cycle.It comprises of 4 core values and 12 principles. Agile is an umbrella of multiple frameworks.With technology refreshing every couple of years, Agile is still dominantly practiced in IT industry; while, Scrum is one of the Agile Frameworks with a specific set of rules in compliance with all the Agile Principles. It is an extensive, Activity- based procedure conducted on a daily basis.
4 CORE VALUES OF AGILE :
These core values lay the agile base foundation. Many old school methods are replaced. Note how the Green Labels below have replaced old traditional methods.
1. Individuals and Interactions Over
Processes and Tools
2. Working Software Over
3. Customer Collaboration Over
4. Responding to Change Over
Following a Plan
12 PRINCIPLES OF AGILE
1. Customer satisfaction through early and continuous software delivery.
2. Accommodate changing requirements throughout the SDLC.
3. Frequent delivery of working software.
4. Collaboration between the business stakeholders and developers throughout the project.
5. Support, trust and motivate the people involved.
6. Enable face-to-face interactions.
7. Working software is the primary measure of progress.
8. Agile processes to support a consistent development pace.
9. Attention to technical detail and design enhances agility.
11. Self-organizing teams encourage great agility.
12. Regular reflections on how to become more effective.
Scrum is a Test Driven Development Process. A process that demands development and testing going hand in hand with continuous collaboration of client with the working Team. A scrum team comprises of a
- Product Owner who owns the accountability of the end product, acquires the requirements from the client on the specific Product.
- Scrum Master who initiates the scrum process and monitors the overall conduct of the team.
- Development Team is group of Coders and Testers working concurrently.
A Product is broken down into multiple number of small executionable tasks called User Stories placed in Product Backlog.The entire development cycle is performed in batches called Sprints.Sprint is a set of selected user stories pulled from the product backlog. A sprint typically longs anywhere from 1-2 weeks.
The scrum procedure starts with a sprint plan, where user stories are assigned into sprints on priority basis.Daily stand by meetings is the integral part of this process. Each ‘user story’ is further defined by a DOF (definition of ready, exact requirement) & DOD (definition of done, Acceptance criteria). A sprint estimate is made by consensus ,which defines the time required by the team to complete the sprint. A Sprint ends with a review meet is followed by a retrospective where the progress is reviewed and lessons for the next sprint are identified. The client is asked to collaborate at this point. Room for any internal/external change is allowed. Post implementation of the required changes(if any) and approval of the client, the team proceeds to the next sprint in queue. Iterations continue till the last sprint is done. The product is now developed ,tested and run successfully . It is ready for its deployment at Clients place. The scrum team dissolves.Period.
For a better understanding, we have listed down the above process in steps.
- Daily Stand By Meeting ( What has been done in last 24 hrs, roadblocks(if any), next 24 hr plan)
- Sprint Plan
- Active Sprint
- Backlog Grooming & Refinement (Story building i.e planning the upcoming Sprints quiet ahead of time)
- Sprint Review Meeting
- Iterations (stepping ahead with the next sprint in queue)
- Final end product (Product can be now deployed@Client’s end)
Scrum is essentially one of the ways to implement Agile methodology.Although Scrum is most widely used methodology today; depending on the maturity and sustainability level of the team any of the other frameworks can be chosen and implemented as well. This is a brief note on the topic.It can be further elaborated in case of any queries from the readers. I will keep flashing insights on more such related topics in future.