Agile and Its Implementation
You may often heard about Scrum and agile approach for development, but you may wonder what they are all about and why we should implement them in our work. Scrum is an agile approach to develop products and services. Kenneth Rubin said in his book Essential Scrum: A Practical Guide to the Most Popular Agile Process that an agile approach is begun by creating a product backlog (a list of features that are needed for development sorted by priority).
With product backlog in your hand, you always work on the most prioritized feature first. So, when you run out of time, the features that haven’t been completed will be of the less prioritized. Each feature is implemented in short iterations which usually last from one week to one month. Typically, the amount of work in the product backlog is greater than can be completed by a team in an iteration. So, at the beginning of each iteration, the team decides which high-prioritized part of the product backlog to create in the upcoming iteration. In the picture above, for example, the team has agreed to create feature A, B, and C.
At the end of the iteration, the team reviews the completed features with the stackholders to get their feedback. Based on the feedback, the product owner and the team can decide features to be implemented on the next iteration and how they are implemented. The team also should have a potentially launchable product (or increment of the product), which can be released if appropriate. As each iteration ends, the process is restarted again with the planning of the next iteration.
So, what make an agile approach like Scrum is fitted for your development? From the book I mentioned above, the author point out that Scrum allows his team to quickly explore new ideas and learn fast which solutions were viable and which were not, since it requires feedback from stackholders in every iteration. Scrum also allows his team to more cross-functional. In the previous approach, his organization handed off the work to the test team only when the work was fully completed. Using agile approach, the test team could contribute daily and errors can be quickly discussed.
Scrum development consists of one or more teams, each made up of three roles: product owner, Scrum master, and the development team. The product owner is responsible for features that will be developed and in what order. He maintains and communicates to all other participants of development a clear vision of what the Scrum team is trying to achieve. As such, the product owner is responsible for the overall success of the features being developed or maintained.
The Scrum master is responsible for guiding the team in creating and following its own process based on the broader Scrum framework. As a facilitator, he helps the team solve issues and make improvements to its use of Scrum. He is also responsible for protecting the team from outside interference and takes a leadership role in removing distraction that inhibit team productivity (when the individuals themselves cannot reasonably resolve them). The ScrumMaster has no authority to exert control over the team, so this role is not the same as the traditional role of project manager or development manager. The Scrum-Master functions as a leader, not a manager.
The development team is responsible for determining how to deliver what the product owner has asked for. It usually consists of five to nine people in size; its members must collectively have all of the skills needed to produce good-quality, working software. Of course, Scrum can be used on development efforts that require much larger teams. However, rather than having one Scrum team with, say, 35 people, it would be better to have four or more Scrum teams, each with a development team of nine or fewer people.
Implementation of Agile in My Team
We have implemented Scrum since the beginning of the project. We divide the development of the project into sprints, each sprint consists of two weeks. In the beginning of each sprint, we do sprint planning by dividing tasks from product backlogs and decide tasks for every individuals. During the sprint, we have two scheduled stand-up meetings on every week. In the stand-up meetings, we share the progress of our work and the difficulties that we face. Stand-up meeting lasts for 15 minutes and is attended by the Scrum master and the development team. In the end of the sprint, we do sprint review to present our work to the stakeholders. After the sprint review, we meet with the Scrum Master to do sprint retrospective. In the sprint retrospective, we share personal and external problems that distract us from completing the assigned tasks and receive feedback that may improve our productivities in the next sprint.
I hope my article can help you understand the concept of Agile and its implementation in development. Thank you for reading my article.
Reference:
RUBIN, K., Essential Scrum: A Practical Guide to the Most Popular Agile Process. London: Pearson Education, 2012.