Agile, means ability to move quickly and easily, another term for agile is nimble.
Software development is a huge industry which essentially got developed in last 3 decades, and to handle quick, short, long and various kind of projects we developed many project management principles to manage the software project and ensure the delivery to meet expectation. Most simple and classical model is Waterfall model where Requirement analysis, Design, Implementation and Delivery happens in a certain sequence and it is important that team corresponds with each other. Then more Adaptive models came in picture there team should be prepared for changes and scope of project can vary, where as in Waterfall model scope of project should not be changed, it must be frozen in 1st phase, then only next phase begins.
Waterfall software development model
That rigidity of water fall model didn’t match with business. Business became more quick, adaptive and agile which resulted software development methodology to be changed in terms of speed, feature and agility. Over a time a developer, designer, UI and back-end engineer also started contributing to various development, rather business started demanding that a back-end developer need not to develop only back-end, for time shortage back-end developer also started working in front-end, and little bit of design also. So over a time Full stack developer concept came in picture who can design, develop, test and deploy, who can work from DB design to front-end design as well. Mostly Full stack developer came in picture due to lot of start-up products came in market where they can not hire resource separately for each stack, and this is nothing but a lean team which concept came in picture along with start-up. So resources who can do requirement analysis can also do designing, so they started allocating the resources based on their available/possible skills to multiple jobs in parallel, this leads to amazingly faster and adaptive development because by the time requirement analysis is complete, design is almost ready, by the time front-end design is ready, db-design and API design is also ready, this kind of rapid, coherent and highly synchronous development process we started calling Agile.
So, What is Agile methodology?
Agile is a methodology (mostly used in software development) for continuous and incremental development. Agile helps in accountability and collaboration from each and every member of the team.
5 Benefits of using Agile
- Increases the speed of development
- Reduces of bug/issues in deliverable
- Adaptive to change in scope
- Provides visibility to customer at every stage along with feedback
- Controlled and on-time delivery
There are few popular frameworks for Agile philosophy which are XP (Extreme Programming), Scrum, Crystal, Lean Development, DSDM, Feature Driven system etc., where as most popular is Scrum.
What is Scrum?
Scrum is a lightweight process framework for agile development
Process Framework – means set of practices which must be followed for the process to be consistent.
Lightweight – means no overhead of process and maximum utilization of time for productive deliverable
The Scrum Guide was written — and is continually updated — by Ken Schwaber and Jeff Sutherland, the originators of Scrum. Here is a video from creators.
Understanding Scrum in 5 steps
- Product objective and road map – should be done by Product owner along with expected time frame
- Release plan – Defining time frame for sprint, entire project breaking down in multiple sprints
- Executing sprints – Each sprint will have scope defined and priority set, finish all the stories and tasks in a sprint in full execution of it
- Daily scrum meeting – It should be stand-up meeting for 10 minutes only and every members answers 3 questions
- Sprint review and Retrospective – At the end of every sprint there will be review meeting with objectives of product demonstration along with what all features are done, what is pending, any change of adaption in the product plan. And in the retrospective team will discuss on what went wrong, why few tasks could not be completed, was it a scoping issue or estimation was wrong.
Overview of Scrum Framework