Scrum Agile Development
Scrum is an agile approach to software development. G&G’s application software programming team is using Scrum Agile development methodology routinely in many of its projects. It is a project management process that can manage and control software and product development. It differs from the “waterfall” approach of promoting traditional analysis, design, code, test, deploy by embracing iterative and incremental practices. Rather than a full process or methodology, scrum is a framework. So instead of providing a complete and detailed description of the project, much is left to the software development team.
Scrum Agile (or Agile Scrum) artifacts
Scrum agile projects make progress in short iterations of time which are not more than a month long. These iterations are called sprints. A sprint starts by team members committing to deliver some number of features that were listed on the project’s product backlog. The product backlog is the complete list of functionalities that remains to be added to the product and it is often populated with user stories. A user story is a short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. On the first day of the sprint and during the sprint planning meeting, the team members create the sprint backlog. A sprint backlog contains the list of things that will be “done” during the sprint. Keeping the sprint backlog updated is key as it not only allows to work out how fast a team can work, but also acts as an early warning indicator.
Two other primary artifacts are the sprint burndown chart and release burndown chart which are used to represent “work done”. These charts ideally should demonstrate a steady drive to zero hours remaining. These graphs may not be a perfect straight line as the time taken to complete different tasks may not be uniform.
When these features are coded, tested and integrated into the evolving product or system they are marked as “done” and the sprint ends. After the end of the sprint a sprint review is conducted during which the team demonstrates the new functionality to the product owner and other interested stakeholders who provide the feedback which can influence the next sprint. These charts are required to finish all the planned work finished by the desired date and provide an effective tool to easily determine whether a sprint or release is on schedule.
Scrum uses three roles, Scrum Master (or ScrumMaster), Product Owner and Project Team.
The ScrumMaster represents management to the project. He or she is responsible for making sure that the team members achieve their highest level of performance. The main job is to remove impediments, i.e. issues that might slow down or stop the project from moving ahead. A Scrum Master does not provide day-to-day direction to the team and does not assign task to individuals and thus differs from a traditional project manager.
The Product Owner can be a Product Manager or Project Sponsor, a member of Marketing or an Internal Customer. The Product Owner is responsible to direct the team at the right goal by creating a compelling vision of the product and then conveying that vision to the team through the product backlog. As more information is gathered on various aspects like the system being built, its users and so on, the product Owner has to keep on prioritizing the product backlog.
The final role on a Scrum is played by the Project Team. The team itself should be cross functional, involving individuals from a multiple disciplines like QA, Programmers, UI Designers, etc. But on a Scrum team individuals are expected to work beyond their preferred disciplines whenever doing so would be good for the team.