To Scrum or Not To Be
Scrum was originally intended for software development, but proved to be a good solution for any complex and innovative project. Today it is applied in various industries such as development of satellite devices, commercial software, in-house solutions, fixed price projects, finance applications, video game development and so on.
If you regularly follow our blog, you could have read my text on the Agile approachfew months ago. This time I would like to go one step further down this line and introduce one related and very important term.
Scrum.
To describe Scrum in one sentence is to say that is an environment within which Agile is implemented. It allows individuals who apply it to actively and effectively perform complex tasks and ultimately deliver products of the highest value.
Traditional contracting involves negotiating in advance, regardless of the changing conditions in which we operate. Since the demands of the market, and therefore the clients, may vary significantly over time, vendors must be flexible in order to prevent customer’s dissatisfaction with the end product once the project is completed. Scrum is the way to start a project promptly and to give it a needed alertness to respond to changes that inevitably occur during its execution.
It respects the basic principles of agile manifesto:
- Individuals and interactions are more important than processes and tools;
- Cooperation with clients at all stages of the project is more important than respecting contractual arrangements;
- Flexible product is more important than documentation;
- Reaction to change is more important than following predefined plan.
More about this you can read in the above mentioned post on Agile approach.
Scrum was originally intended for software development, but proved to be a good solution for any complex and innovative project. Today it is applied in various industries such as development of satellite devices, commercial software, in-house solutions, fixed price projects, finance applications, video game development and so on.
Its main feature is simplicity while possibilities it offers are endless. The main elements of Scrum are Roles, Ceremonies and Artifacts.
Everything starts with the creation of a priority wish list i.e. product backlog by the Product Owner in cooperation with the client. Based on client’s roughest idea about desired requirements Product Owner and client define specification of product’s functionalities that will be developed through stages. Functionalities are presented through “user stories” that contain three essential information:
Who (user role) – client, employee, administrator?
What (goal) – Which functionality must be achieved/developed?
Why (reason) – Why does the user want to achieve this goal?
One user story may look like this: “As a user, I want to sign in to the website so that I can access subscription content.”
Product owner, who is at most time also a project manager or sponsor, is in charge of deciding on the date of implementation, task prioritization, budget and is responsible for exchanging information between the client and the teams in a timely and transparent manner. He also updates product backlog based on the additional client’s requests or feedback from Scrum Master.
After list is created, sprint planning is being held. It is a meeting where the Scrum Team gets acquainted with the scope of work that should be done in the next stage, i.e. sprint and where members decide on items from the list they will develop.
Sprint is a time frame or a phase that usually lasts two to four weeks during which the team is required to implement what was initially agreed. Sprints start with planning, end with Retrospective and are always of the same length, unlike iterations in classically managed projects.
Based on the conclusions from the planning phase, a sprint backlog is prepared to specify the scope of the work and the time it takes for each step to be finished. Complete work load is broke down into the simplest steps in order to complete each task in the duration of one sprint. The sprint backlog also serves for tracking everything that happens during the meetings. It can be updated at any time with information about remaining work and each team member can add, delete, or change items.
At the end of the sprint, the work team have completed should be ready for delivery to the customer or presentation to the interested party.
Development or Scrum Teams can be composed of exclusively developers, testers, designers or can be multi-functional. They consist mostly of 5 to 9 members whose work is coordinated by Scrum Master. Since Scrum is not about hierarchy but responsibility, everyone from the team can be appointed to the role of Scrum Master. Nevertheless, it is recommended that this role is given to someone certified for Agile methodology in order to properly implement Scrum values and practices. His primary task is to remove obstacles when they appear and keep the teams productive.
In order to ensure that sprint ends with results delivery teams committed to achieve, Scrum stipulates need for daily meetings that are actually the backbone of the whole concept.
The daily scrum meeting is held standing up and lasts 15 minutes in average. Although anyone can attend, only team members, Scrum Master and Product Owner can speak. The goal of the meetings is to get answers to three questions from each team member:
What did you do yesterday?
What are you going to do today?
What are the obstacles?
Organization of Scrum eliminates the need for long and unnecessary meetings so that members of the team are left to do what they are best in.
The entire process is followed by burn-down charts or progress charts which serve as a graphic representation of job completed and remaining tasks that still need to be finished. It can present progress by task, team member or total progress.
At the end of each sprint, a meeting called sprint revision is held where team presents their achievement in developing certain functionality. It is an informal meeting which lasts up to two hours, and is attended by the whole team. The Product Owner usually presents to the client what is the result of the work so far. After this point that part of the project is considered as completed.
When what is done is accepted by the client, a sprint retrospective is scheduled where Product Owner discusses with the team the lessons learned. While for the traditional project it is assumed that lessons learned are formalized at the end and can serve as a basis for some future project, in Scrum this phase comes after each sprint. During this internal meeting, team members talk about the problems they had, what was done well and what could be improved in order to get ready for the next sprint.
Because of its simplicity and efficiency, it is used by some of the world’s largest companies like Microsoft, Google, Yahoo, IBM, Apple, Philips, Siemens, BBC, Electronic Arts and many others.
Why Scrum is used by the most successful ones?
Scrum teams are self-organizing. They work at each stage of the project all the time (analysis of requirements, design, programming, testing) instead of each of them being done sequentially. The product is progressing in series that last from two to four weeks, i.e. during the time of the sprint. This way teams become flexibleand ready to respond to changes that occur during the project. In the end, they can really deliver the product at the time stipulated by the contract.
Although it has its own generic rules that exist in order to create an agile environment fit to the planned delivery method, there is no prescribed engineering practice. For Scrum, the most important thing is that decisions are made on the basis of results rather than on the basis of assumptions.
Its great advantage is scalability. It applies to everything: the type of application, the size of the team, its distribution, the duration of the project, etc.
Scrum as a way of project management is based on communication, cooperation and interactivity of all members. This way, we can build an active and high quality relationship with the client. Our readiness to respond to his every request will make client ready to trust us. Therefore, Scrum should not be considered as an alternative, but as the next step in the evolution of project management.
Lao Tzu[/kswr_iconboxinfo]