Object-Oriented Programming and the principles it promotes make a big difference in creating large scale, maintainable code. It allows developers to design and write code in more productive ways than were possible with procedural languages. The same happens with the agile methodologies; agile is a set of methodologies which share development values. Trying to be more specific, i’m going to focus on Scrum.
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value, looking for effective team collaboration on complex products. A scrum team is divided into three roles:
- Scrum Master: is a servant-leader for the Scrum Team. Is responsible for promoting and supporting Scrum. Scrum Masters do this by helping everyone understand Scrum theory, practices, rules, and values.
- Product Owner: is responsible for maximizing the value of the product resulting from the work of the Development Team. How this is done may vary widely across organizations, Scrum Teams, and individuals.
- Development Team: consists of professionals who do the work of delivering a potentially releasable Increment of “Done” product at the end of each Sprint. A «Done» increment is required at the Sprint Review. Only members of the Development Team create the Increment.
Nice, nice, there are roles and good things but, How does exactly scrum works?
Prescribed events are used in Scrum to create regularity and to minimize the need for meetings not defined in Scrum. All events are time-boxed. Once a Sprint begins, its duration is fixed and cannot be shortened or lengthened. The remaining events may end whenever the purpose of the event is achieved, ensuring an appropriate amount of time is spent without allowing waste in the process. The Scrum Events are:
- Sprint: is a time-box of one month or less during which a “Done”, useable, and potentially releasable product Increment is created. Sprints have consistent durations throughout a development effort. A new Sprint starts immediately after the conclusion of the previous Sprint.
- Sprint Planning: is the work to be performed in the Sprint is planned at the Sprint Planning. This plan is created by the collaborative work of the entire Scrum Team. Usually is time-boxed to a maximum of eight hours for a one-month Sprint. For shorter Sprints, the event is usually shorter.
- Daily Scrum: is a 15-minute time-boxed event for the Development Team to synchronize activities and create a plan for the next 24 hours. The Daily Scrum is held every day of the Sprint. At it, the Development Team plans work for the next 24 hours. This optimizes team collaboration and performance by inspecting the work since the last Daily Scrum and forecasting upcoming Sprint work.
- Sprint Review: is held at the end of the Sprint to inspect the Increment and adapt the Product Backlog if needed. There could have been a single deployment or many deployments during a Sprint which lead up to that Increment to be inspected. This is at most a four-hour meeting for one-month Sprints. For shorter Sprints, the event is usually shorter.
- Sprint Retrospective: is an opportunity for the Scrum Team to inspect itself and create a plan for improvements to be enacted during the next Sprint. It occurs after the Sprint Review and prior to the next Sprint Planning. This is at most a three-hour meeting for one-month Sprints. For shorter Sprints, the event is usually shorter.
What is the backlog?
Is a breakdown of work to be done. Contains an ordered list of product requirements that a scrum team maintains for a product. Common formats include user stories and use cases. The requirements define features, bug fixes, non-functional requirements, etc.—whatever must be done to deliver a viable product.
As you could read, Scrum is always focused on the Done, which we are going to call MVP. This is because scrum looks to deliver a functioning viable product after each sprint. This helps with the client satisfaction and to the productivity of the team.
Finally, I hope that reading each scrum activity and with the help of the first image, you have a better idea of what Scrum is and of course, Agile came to revolutionize how the software is made.