Having developed IT solutions for dozens of companies from all around the world, we have had to do with both traditional and agile methodologies.
Over the years, we have come to the conclusion that there is no better way of understanding customer’s needs and translating them into software than with a little help of… a whiteboard and a pad of sticky notes.
As surprising as it sounds, it is the only requirement necessary to start working in Scrum. And not even a definite one. The essence of Scrum is intangible. It is rather a set of values, rules and roles than a strict procedure to follow or a tool to use.
This is probably the first reason why we have liked it so much. It gives us room for creativeness, unconventional solutions and freedom of expressing our perspective. All that works perfectly in favor of solving complex problems, prioritizing tasks and delegating them to individual members of the team.
Agile and Scrum – is it any different?
At the beginning, it might get a little confusing. Not to delve too far into the theory, Agile refers to a set of methods and practices based on the values and principles expressed in the Agile Manifesto, which includes things like collaboration, self-organization, and cross-functionality of teams.
Scrum to say the least is one of the many frameworks that fall into the category of agile development. As Ken Schwaber and Jeff Sutherland explain in the Scrum Guide: “it consists of Scrum Teams and their associated roles, events, artifacts, and rules. Each component within the framework serves a specific purpose and is essential to Scrum’s success and usage. The rules of Scrum bind together the events, roles, and artifacts, governing the relationships and interaction between them”.
Why we prefer this particular way is mostly because it can be easily adjusted to the requirements of our client. This way, no matter what your field of expertise is, what kind of business process needs to be tamed by the software – we will be able to help you.
If you still do not quite get the difference, try comparing… a diet and a recipe. A recipe for a particular dish needs to correspond with your diet. Otherwise, you will never see results! A diet is something “bigger” which determines what kind of recipe you are going to choose from the cookbook. Same with software development. Or any other project for that matter. There is no Scrum if you do not follow the Agile Manifesto. Or at least you cannot say you have been following “doctor’s orders”.
Scrum is people
You really do not need much to begin working in Scrum. If there is a team of people willing to try, you are good to go!
Start from assigning jobs. The actual tools you are going to use (the famous whiteboard, for example) are not as important as getting the roles right.
Foremost, the Scrum project requires a Product Owner. This is the person who represents the user’s best interest and has the authority to say what goes into the final product. They stay in charge of an artifact typical for Scrum called Product Backlog.
Product Owner not only approves the list of tasks and requirements, but also prioritizes everything on it. The question a Product Owner needs to answer the most is: Is it a “Must Have” or a “Nice to Have” feature?
Every group requires a leader, someone who will discipline the rest. Without it, there is a fair risk of procrastinating, trumping up or losing the motivation. Having that in mind, another very important role “to cast” is the role of a Scrum Master – the person who helps the team move along with the job. But being a leader means so much more than just bossing people around. In Scrum, the leader is also a servant. Not even the Scrum Master has the power to tell the Development Team how to turn Product Backlog into an Increment of a potentially releasable functionality!
Speaking of, a Development Team is a group of people responsible for delivering shippable product increments every Sprint (which is the goal!). The team needs to be self-organizing and cross-functional. It means that they independently decide how to proceed with the job and hold the competencies necessary to do so; without depending on others who are not a part of the team.
In our world of software development, the members of the Scrum Team are mostly programmers. Sometimes also sales representatives or business analysts. Regardless of what is their position in the company, though, Scrum never recognizes titles other than a Developer. In the Development Team, everyone is equal and has the same right to speak at any time.
Additionally, Scrum recognizes 5 rules of how the people involved should cooperate. Everything in order to organize the job and properly allocate responsibilities to the members of the team.
About the artifacts in Scrum
While talking about the roles, we have failed not to use some other cryptic terms. Therefore, we owe you some explanation.
Foremost – Product Backlog. It is an ordered list of everything that is needed in the product, or simply the only source of requirements and changes to be made. It contains a description of features, functions, requirements, enhancements, and necessary fixes. Important sidenote: it is never complete! It evolves constantly, as the product and the environment change.
Sprint. We have used that referring to a single iteration, a period of time (usually 2 weeks) in which the Development Team is obliged to introduce a finished Increment to the project.
The Increment is the sum of all the tasks completed during a single Sprint. It must be in useable condition and meet the definition of “Done.” It is up to the Development Team and the Product Owner to decide how that definition sounds like. What we say at eVolpe Software House is that it just means a working piece of software, 100% ready to be introduced to our client.
(But we have not explained everything about the Sprint yet!)
A Sprint consists of a couple of smaller parts. It is a full 10 working days, after all. Those elements are the Sprint Planning, Daily Scrums, the development work, the Sprint Review, and the Sprint Retrospective. Now, let’s quickly go through them.
The Sprint Planning is a meeting being held in order to answer two following questions:
The Daily Scrum (or Stand-Up) is an about 15-minutes-long meeting held to synchronize activities and create a plan for the next 24 hours. This is done by inspecting the work since the last Daily Scrum and forecasting the work that could be done before the next one.
A Sprint Review is held at the end of the Sprint to inspect the Increment and adapt the Product Backlog (if needed). During the Sprint Review, the Scrum Team and stakeholders collaborate about what was done in the Sprint. Based on that, attendees collaborate on the next things that could be done to optimize project’s value.
The Sprint Retrospective is an opportunity for the Team to inspect itself and create a plan for improvements to be enacted during the next Sprint.
3 pillars of Scrum (and the whiteboard, at last)
Congratulations, you have made it to the end of this article and here it is your price! We are finally going to speak on the whiteboard!
An important principle of Scrum is the idea of Transparency. It means that all the Developers should be aware of what everyone else is working on and what the Team is trying to accomplish. In order to assure that, we are using a professional software – called Redmine – along with a little more conventional tool.
Making things clear and visible on a whiteboard is really helping us run the projects properly. It also boosts our creativity. Being able to comprehend the whole process with just one look is definitely making things easier for many of us.
Another pillar of the framework is the rule of frequent Inspection. It helps to detect undesirable variances. It should not eclipse the bigger picture or get in the way of the work, though. The idea is to keep the track of the progress and react if anything goes wrong for some reason.
The third big pillar of Scrum is called Adaptation. If an inspector notices something unusual, the adjustment must be made as soon as possible to minimize further damage.
The three pillars together assure the success of the project and make everyone’s job so much easier.