Building any piece of software is no small task. From the first meeting with the client up until the final product release, things can either go smoothly and according to plan, or quickly spiral out of control. Over the years, frameworks and procedures have emerged to deal with this task, helping programmers and companies to deliver solid programs alongside steady management, which translates into happy customers.
However, the IT industry is still maturing and some of the management models in place are relics from fellow engineering areas, applied to the challenges of a fast paced, quickly evolving, and always changing world. IT professionals could drastically benefit from a management model suited to the industry reality, and that is where the AGILE methodology with SCRUM comes rushing through the door.
So, what is Scrum?
Scrum is a framework that can help you develop, deliver and sustain complex products. It consists on a set of roles, events, artifacts and rules that bind the framework together to achieve a continuous delivery with the highest possible value. It also gives you the ability to analyze the work that has been done and identify points of improvement for future developments and releases.
Who takes part in Scrum?
Scrum teams are given the ability to choose how to best accomplish their work, rather than being instructed by individuals outside the team. They have a set of elements whose combined expertise assures that goals are accomplished without depending on others outside the team.
This model is designed to improve flexibility, creativity and productivity, so this team should have a specific development team with 3 to 9 elements that combine a set of skills required to deliver a ready and shippable product increment.
The Product Owner is also an important element, because it manages the product backlog and makes sure the development team has a clear understanding of those tasks.
This team is headed by a Scrum Master, who is the servant-leader of the team and educates on the scrum theory, practices, rules and values. It also coaches other development teams and helps the organization to adopt the Scrum values.
Also, it helps the product owner making sure all development teams are in in-sync and aligned, understanding all together the goals, scope and priorities.
When does the Scrum team meet?
Events are an important part of Scrum; in fact, you have a short meeting every day and three more each week. “What?! That’s a bunch of meetings, nobody has time for that! I’m getting out of here…” Wait. All events in scrum are time boxed and optimized to deliver the maximum value in the shortest time. Here’s how:
- Sprint Planning. During planning, the work to be done gets decided and packaged onto an artifact called the Sprint. Sprints are time boxed and should contain fully analyzed tasks with a closed scope estimated from two weeks to one month.
- The Daily Scrum. This is the part where you stretch your legs! Daily scrum is a 15 minutes time boxed event, held every day with the purpose to inspect progress and remove development obstacles, while improving communication between them.
- Sprint Review. At the end of each Sprint, a review is held for showing the produced increment to the stakeholders, with the objective of collecting feedback and give input on additional features that can add value to the product.
- Sprint Retrospective. The cherry on top of the cake! This event is an opportunity to identify points for improvement and work on removing non efficient practices.
Going through this for the first time may seem like a hard process to implement. Maybe you are thinking about the cost of having a scrum master, or the hours spend on scrum events, but if you give it a chance you may discover a process to improve your teams efficiency and the relationship with stakeholders. At Polarising we are using the Scrum methodology every day and already having good results. Read more about scrum on the official scrum guide and give it a go.
Software Engineer at Polarising