Software engineering is more than just writing code to implement new features. It also involves project management to help solve complex problems.
Scrum is an iterative and incremental framework for application development.
In software engineering, you'll hear a lot about "Sprints".
A Sprint is a period (usually two weeks) where the team completes a certain amount of activities.
A scrum team has three main characters:
• A product owner, who is responsible for maximizing the product's value.
• The team, responsible for converting the Product Backlog content into working software.
• A scrum master, responsible for ensuring that the team follows the Scrum values.
Scrum has a series of processes (also known as "ceremonies"):
Daily Stand-up meeting: it is a 15-minute event for the team to agree on the activities and create a plan for the next 24 hours.
Sprint Planning: the team plans what to accomplish in the upcoming Sprint. This stage has two parts: in the first half, the team tries to understand what the Product Owner wants and what will be delivered in the Sprint. In the second half, the team questions how to build the functionalities.
Sprint Review: this is a meeting that happens at the end of every Sprint, and the team shows stakeholders what they have done during the Sprint.
Sprint Retrospective: the team analyses the performance of the Sprint and creates a plan on what needs to be improved.
Release Planning: a strategy to turn vision into a successful project. The key points discussed are the estimate of the product backlog, the length and number of the Sprint, and the fixed release date.
Scrum has some artifacts. A good definition of "artefact" is the one found on Atlassian:
Agile scrum artifacts are information that a scrum team and stakeholders use to detail the product being developed, actions to produce it, and the actions performed during the project. The main agile scrum artifacts are product backlog, sprint backlog, and increments.
To go into more details, agile scrum artifacts are:
• Product backlog: it is a list of features the product should have. A good product backlog should be DEEP (Detailed enough, Emergent, Estimated, Prioritized).
** • Release Burn Down:** it is a graph that records the sum of remaining Product Backlog estimated work across time. It shows the progress of the release on a real-time basis.
• Sprint Backlog: it is a picture of the work that the team plans to accomplish during the Sprint. It gets regularly updated by the team.
• Sprint Burndown: it is a graph representing the Sprint Backlog remaining in a Sprint across several days.
It promotes teamwork: team members communicate efficiently and can overcome challenges as a team.
It promotes continuous improvement: the Sprint Retrospective is an excellent opportunity for the team to review the previous Sprint and gather constructive feedback.
It's great for risk management: through Scrum, the team focuses on what they can deliver during a Sprint.
It's great to **release **features more often: with Scrum, there is no need to wait for the entire product to be finished to release the product to customers.
It's great for Return on Investment (also known as "ROI"): because there is a constant feedback loop, the product is more likely to be of higher quality.