What is SCRUM ?
Scrum framework is an excellent answer to the old fashion way of software development called waterfall.
Scrum principles are outlined in the document called Agile Manifesto. Most essential principles from this document are:
Individuals and interactions, instead of processes and tools.
Working software instead of comprehensive documentation.
Customer collaboration instead of contract negotiation.
Responding to change instead of following a plan.
Currently, the scrum approach is well recognized, and it's an industry standard.
If you want to be sure that you are practicing agile software development within your own company in the correct way, there are techniques that you should ensure you and your employees are following.
Scrum Methodology has been used by many big companies like Microsoft, Airbnb, Google, IBM, etc. and for various purposes, including commercial software, in-house development, contract development, and even non-software projects.
Very important in Scrum is that teams are responsible for answering a question of HOW they are going to implement a feature. Very important is that they focus on delivering business value instead of features defined at the beginning of the project.
The next important thing is that SCRUM teams are self-organizing and that they work in a series of typically two-week timespans known as "sprints." The items to be completed are listed in the "Product Backlog."
In Scrum are defined following roles:
At the most basic level, a product owner is a leader responsible for maximizing the value of the products created by a development team.
The Product Owner defines the features of the product with team and business support. The Product Owner makes the decisions on scope and schedule, and achieving the business goals of the project is the responsibility of the Product Owner. The Product Owner prioritizes the product backlog. Based on the business needs, the Product Owner adjusts features and priorities every sprint, and the work results at the end of each sprint are accepted or rejected by him.
The Scrum Master
The Scrum Master is an owner of the process and takes care of proper execution. He is also responsible for scrum values and practices and to help removes impediments. He also improves the team's productivity, enables close cooperation across all roles and functions, and shields the team from external interference.
The team is responsible for execution. Typically consist of three to 10 people, including developers, testers, analysts and designers. The team is self-organizing, and the membership should only change between sprints.
During sprint planning, the product owner, together with the team, decide which items they include in the following sprint. Added items should be chosen mainly on the value which they will deliver to the product. It is one of the essential principles of Scrum. Instead of developing feature by feature team focus on delivering biggest value based on current business goals. One notable thing done in sprint planning is that tasks are measured in time (whereas before, it was done in story points).
Very important during sprint planning is to set up a sprint goal. It helps the whole team to focus on one goal during a sprint.
The daily Scrum meeting is held daily for about 10-15 minutes. It is not a problem-solving meeting. The daily Scrum helps avoid unnecessary meetings. In the daily Scrum everyone answers three questions, the questions are:
What did you do yesterday what is helping in achieving a sprint goal?
What will you do today, what will help the team to achieve a sprint goal?
So you see any impediments which can be blockers in achieving a sprint goal?
The whole team is responsible for helping in fixing potential impediments. It is a massive difference in comparison to the waterfall approach, where people are working together but very often not as a team.
In the sprint review (or review & demo), the team presents what they achieved during the sprint. It is a demonstration of new features or the existing architecture. It is an informal presentation, and the entire team participates in it. But this is not the most important. The main goal for a sprint review is to discuss the actual state of the product with stakeholders and decide what should be done next. How everything looks according to current business goals. This is a very crucial meeting where the team can decide about changes in priorities based on current information from business.
It' s a meeting when the team is talking about collaboration and processes. It's very similar to the after-action review. The first team discusses what was right during the last sprint, why it was good, and how the team can improve it in the future.
Also, the team touches challenges and answer questions about what went wrong, why it went wrong, and how to change it in the future.
Answering all these questions is very helpful in team self-development and self-organizing.
A product backlog is a place where the team stores all issues, requirements, and tasks listed as items or work on the project. Items should express the value they provide for the product. Items that are on the top of the product backlog provide more value than items from the bottom.
The sprint backlog consists of items on which the team is working in a current sprint. The team updates the backlog every day, and each item has its own status. In the sprint, backlog work is never assigned before the start of the sprint. Team members decide which tasks they choose to work on. This is a collaborative work. Very often item during sprint goes through many hands and finally moved to the DONE state.
What are the benefits of Scrum? First, it provides structure without unnecessary bureaucracy or hoops to jump through. This structure regiments communication and makes room for conversations that might otherwise not take place, resulting in less miscommunication. Reduced miscommunication often results in fewer defects and mistakes.
Very important in Scrum is that this framework is product-oriented instead of a typical project-oriented waterfall approach. It allows the team members to take more responsibility because team members are responsible for defining how items will be resolved and done. Unsurprisingly, this results in higher employee retention and satisfaction. Regular interactions help make things visible and transparent earlier than they may with more traditional, heavyweight processes. The output is also considered more valuable than input, which means that Scrum helps teams focus on big picture metrics like ROI, not how busy they are or look to managers. Therefore, Scrum helps us make more stuff that works for all the reasons above.