Developing a Successful Software passes through many Stages. As you know in Industry all those stages Combinedly popular as System Development Life Cycle (SDLC). To develop a Software using this Life Cycle we pass over 7 stages. Those are Requirement Analysis, System analysis, Design & Blue prints, Environments, Testing, Training, Maintenance & Evaluation. Now rest is on the Program manager how he/she prefer to execute these 7 stages. Here methodology comes. From the early age there are several methodologies using which we developed many Software’s. Few of them are Water-Fall Model, Spiral Methodology, Rapid prototyping or Incremental Model. Now you can ask me when there are so many models available before why Agile Development Methodology come into picture? What are the advantages we found using Agile Methodology?
Agile Development Methodology introduced in the year of February 2001. The major advantage of Agile methodology are based on iterative and incremental development phases. Where requirements and solutions evolve through collaboration between cross-functional teams and self-organizing. It promotes adaptive planning, evolutionary development and delivery. Which results rapid and flexible development to satisfy the Customer.
Water-fall Model vs. Agile Methodology
To present the theme better let us Compare Agile Development Methodology with Water-fall Model. Assume we are going to develop an employee management system. Using Water-fall model after completion of 7th stages only we have deliverables. Still the time Customer need to invest & wait. In case at the end we found something wrong it reflects major loss. Where ever in Agile methodology from Sprint 1 we can have deliverables. Here it means rather developing all the modules and test them at the end agile says Rapid and continuous small releases which helps to improve Customer satisfaction.
Advantages of Agile Development Methodology
As Agile methodology prefers small releases, from day one we have something to present the Customer. Troubleshooting and Error handling is much easier under this Software Development methodology. To develop better team spirit agile is strict about Communication between Team players. Which includes Customer, Developers, Leads & Testers. In case the team available from a single location it is advisable to have a Face to Face Communication. Agile says rather than spending time in Calls & Emails, Face to Face Communication improves productive hours. The most Customer friendly feature with Agile methodology is Customer can updated his/her requirements to implemented at any point of development phases.
Disadvantage of Agile Development Methodology
Advantage and Disadvantage are the two sides of a Single Coin. As a major disadvantages using Agile Development Methodology it is difficult to track efforts of resources in the initial phases. This methodology required experienced developers team. Minimum documentation is Troublesome. As agile methodology involves Customer effectively, Customer representative need to have a clear understanding about Scrum methods including Sprint planning, Scrum meetings, Sprint demo, Sprint retrospective & poker planning.
Sprint planning & Defect Tracker
Sprint planning is one of the major area of Agile Development Methodology. To make this planning Successful many Scrum master prefers to use Defect Tracker tool. Entire Agile team is responsible for defining work and estimation to meet Sprint deadline. While estimation Scrum manager estimate the work including testing and buffer timing. There are many defect tracker software’s available in market but it was noticed many Corporation’s prefers to use JIRA (Atlassian) as their Agile friendly Defect Tracker.
Daily Sync-up Meeting
To stay update with regular updates Agile Development Methodology introduced Daily Sync-up. Followed by Agile development process everyday minimum 15 minutes required for Scrum meeting, this meeting known as ‘Daily Stand-up Meeting’ or ‘Daily Scrum Meeting’. This meeting schedules mostly in morning hours. Before work for the day this meeting clears team members about their daily jobs. The daily stand-up meeting are not schedule to discuss issues or how to solve them, issues can be solved during working duration. During the scrum meeting each member have to share the following.
- What did I do Yesterday?
- What will I do Today?
- Is there any blocking issue?
By aiming on what each member accomplished yesterday and for today, the team improvise the understanding of daily targets.
As we discussed above Agile prefers small releases. In Scrum, after every sprint team have to deliver a hypothetically product progress. The code will be tested and usable part of the product, this is normally demo of new features. This meeting designed to keep informal, rules are to have PowerPoint slides not more than 2 hours. Participants in the meeting include the Product Owner, the Scrum Team, Scrum Master, Management Team, Customer & Developers from Other projects. Presentations are based on the goal planed during the sprint planning meeting.
Everyone participates in the User Story/tasks estimation. Product owner reads user story and describe features and team member have to give points, ideal days in sequence of 0, 1, 2, 3, 5, 8, 13, 20, 40 & 100. All members have to give their own estimation, if all estimation select same value that estimations get selected, high or low estimation have to give explanation. This process is repeated until decision making.
The scrum reviews for improvement of the product. Team have to constantly look for the improvement, at the end of the each sprint team will collects all the points for improvement. Retrospective meetings can schedule up for an hour, in case of escalation and team conflict it can be stretch further. Every member have to identify priority for the improvement and accordingly manage it at the end of sprint retrospective team have to review on previous retrospective.