You've just been assigned to a Scrum team and you don't know what's going on.
What is Scrum? Why do we have sprints? How do I take part in the development process?
Many teams use the Scrum framework to develop software, but the problem with Scrum is that it's not easy to understand for junior developers (or anyone else). You'll probably feel a bit lost at first.
This blog post explains everything you need to know about Scrum and gets you up to speed quickly so that you can start taking part right away.
We'll cover all the need-to-knows about sprints, iterations, user stories, backlogs etc., so that you know what's going on from start to finish.
We'll first go through Scrum basics and then give you specific tips and action steps that you can use as a software developer to make the most out of Scrum.
If you're just getting started with Scrum - or even if you've been doing it years - read on because there might be one thing in here that will help improve.
Why Scrum for software development?
The Scrum process involves breaking down software development project into sprints, which are two-week periods with specific goals and deliverables.
There can be several sprints in one month, so if you're working on a large software, Scrum will help break up the work into manageable chunks that make sense for your team’s workflow.
Scrum is important for software developers because it:
- Empowers people and teams to decide and take responsibility for their work.
- Provides visibility of progress, alerting stakeholders when they need to help or do something differently.
- Allows software developers to develop solutions quickly in response to change, with Scrum ceremonies that are short enough not to create bottlenecks
Who is involved in Scrum?
The Scrum framework has three main accountabilities: the product owner, Scrum master and product development team.
- Product owners are in charge of defining what needs to be done on a project. They work closely with teams and provide direction for future work as needed. Product owner tasks can include defining the product's vision, prioritizing features, and resolving conflicts.
- Scrum masters aren't directly involved with creating or developing anything but make sure that everyone knows what is going on in the project, keep track of progress and help remove any roadblocks along the way when necessary.
- Development team does all the actual designing, coding, and testing for software projects. Development teams usually have developers, designers, and testers. They make sure they understand the requirements, have everything they need to do their work and keep track of what needs doing.
Intro to Scrum terms for software developers
Scrum is a framework to deliver a product. Scrum is lightweight, which means there aren't any unnecessary rules or steps that don't serve a purpose.
Scrum is not about doing things faster, it's about making the process better and developing high-quality software.
Scrum means delivering more of the right software to customers at a predictable time with less risk. It also means knowing when code meets customer needs without all the uncertainty of a traditional software development model.
Let's look at some of the terminology of Scrum that will help you get up to speed.
Sprint is a time boxed effort, typically one to four weeks long.
During a sprint the team delivers all its software-related work and includes it in an increment of potentially releasable functionality that is then tested by stakeholders.
Daily Scrum is an important time during the sprint cycle, where a team gets together to understand how they are progressing towards the sprint goal.
The daily Scrum is a meeting that happens at the same time every day, usually in the morning. It lasts about 15 minutes.
Daily Scrum is important because it helps the team to know what they are doing, how well they're working together and if there’s anything preventing them from achieving their goals for that sprint. It also gives everyone an opportunity to air any concerns or issues in a safe environment so that they can resolve these before they become problems.
The Scrum master runs this daily meeting and directs any relevant discussions that come out of it. They also ensure that everyone is on track with their tasks for the current sprint.
Product Backlog is a list of work that needs to get done. It is what the team does during the sprint. They come up with ideas for features, requirements, enhancements and fixes and then put them on the Product Backlog.
The product owner constantly revisits and adjusts the product backlog. As we learn more or as the market changes, some items may no longer be relevant or problems may get solved in other ways.
Sprint Backlog is the list of items, user stories, or bug fixes, selected by the development team for implementation in the current sprint cycle. Before each sprint, in the sprint planning meeting (which we’ll discuss later in the article) the team chooses which items it will work on for the sprint from the product backlog.
A sprint backlog may be flexible and can change during a sprint. However, the fundamental sprint goal—what the team wants to achieve from the current sprint—cannot be compromised.
Increment (or Sprint Goal)
Increment is the unit of work that the team creates in each sprint. It is a set of results or outcomes from which the Scrum teams can measure progress, and it contains an integrated software increment (or application version), plus supporting increments such as design assets, documents, and data sets, created during the time boxed period of one sprint cycle.
Sprint planning is identifying the work to include in an upcoming sprint. The Scrum team defines a list of tasks that they'll complete over the course of the sprint, known as a "sprint backlog".
The goal is for every member on the team to commit to what they can deliver during this time frame.
During the planning meeting, the Scrum team should agree on three things:
- What we will build in this sprint?
- How much of work can we commit to for this sprint?
- Who is going to do what by when?
It's important that the team takes skill sets, roles, and responsibilities into account during sprint planning.
Sprint review is a Scrum meeting that happens at the end of a sprint. The goal is to inspect and adapt what the team did during the sprint period.
Sprint review is a meeting where team enjoys a sense of accomplishment for their work.
Sprint retrospective is a Scrum meeting that happens at the end of every sprint. The goal is to do a review and identify what went well, what didn't go so well, and how the team can improve their performance in future sprints.
The Scrum master facilitates this meeting by promoting discussion within the group about matters that came up during the previous sprint, issues with productivity or process improvement opportunities.
Product owner is the person who has the responsibility for maximizing the value of a product. Product owner does not have to have technical skills. They can come from different backgrounds and professions.
Product owner is the one who has to keep up with all the product's features and identify what is coming next for the product.
They are also responsible for maximizing the value of a product by collaborating with stakeholders and making sure that customers will be happy.
Definition of done
Definition of done is a Scrum principle that identifies what it means for a product to be ready for release.
Visit the home of Scrum at Scrum.org for an even more in-depth explanation of these terms.
Who is the developer in terms of Scrum?
The Scrum Developer is the person who makes the project deliverables. The person works together with the rest of the Development Team.
The Development Team is a group of people who plan, create, and test software against user needs. They ensure high-quality products while being able to adapt quickly when things change throughout the project life-cycle.
The freedom for software developers to self-manage means the developer does not have managers telling them what tasks do next but choose which task he/she will start working on based on self evaluation.
Every person on the Scrum team has their responsibilities.
Developers are typically accountable for many things in a Scrum cycle. Their specific responsibilities may vary depending on their job's domain, but all Developers should adhere to:
- Making a plan for the Sprint and what needs to be done in it.
- Instilling quality by adhering to a Definition of Done;
- Every day, they will adapt their plan to meet the goal.
- Hold each other accountable.
Responsibilities of Scrum Developer in software industry include:
- collaborate with rest of the development team so they can create high-quality products quickly when needed.
- Create software that is testable, workable, and of high quality.
- Provide guidance on how to create User Stories.
- Keep track and estimate the time spent on User Stories.
- Gathering feedback from stakeholders about the solution.
- Meet the goals for each sprint.
- Take part in sprint review meetings to discuss work and show progress.
- Take part in retrospective sessions with the Scrum Team.
- Identity impediments they come across.
- Self evaluation—deciding what task should start next based on priorities.
- Understand the importance of continual improvement. They should always look for ways to do things better, more efficiently and with less effort.
Product Backlog & Sprint Backlog
The product backlog contains everything that the Scrum team needs in order to complete an iteration of work. It may include new user stories and tasks outside development.
What does product backlog include?
- new user stories and tasks that the Scrum team needs to complete an iteration of work
- requirements outside of development
What is in product backlog?
- New user stories and tasks that the Scrum team needs to complete an iteration of work.
- Requirements for other departments, such as marketing or customer service. The Scrum master will decide what should be prioritized based on how important it is for success with customers. If a developer has time, they might also be able to do some research into these areas so that they have more knowledge about them when talking with people in those positions later on.
Developers should be familiar with the product backlog because they will implement the tasks from it.
They should also know what is in development and not in a particular sprint so that they can prioritize their time accordingly.
Action step: As a developer, spend some time every day reading through the backlog items. Being familiar with the backlog will help you know what's coming.
Who owns the product backlog?
The Scrum master owns the product backlog.
They prioritize tasks during each sprint and make sure that it stays up-to-date with changing priorities. They will have a lot of contact with stakeholders an d developers to do this task.
It’s important for the product owner and Scrum master to ensure all items are well described so they can be easily understood by anyone on the team who has knowledge about what should be done.
Developers should be told about the backlog items, even if they aren't assigned to them. This will allow developers to help out where needed and build a better understanding of the project as well as share relevant information with each other.
- PO selects needed features, prioritizing them according with stakeholders’ wishes; SM helps PO capture these requirements outside of sprints
- The Product Backlog often starts out
How to deliver Scrum updated?
It's your time to give your daily Scrum update. What do you say? First couple of weeks might seem intimidating, but it gets easier.
The goal of your Scrum update is to provide progress and obstacles that the team has faced since the last meeting.
- What have you completed since our last meeting?
- How are things going? What's disrupting your work?
Action step: Answer these questions on paper before the meeting starts. Keep your answers short and to the point because Scrum meetings are time sensitive.
How detailed should my Scrum update be?
Software developers often get into weeds of implementation details, but Scrum meetings are not the place for that. Keep your update to high-level items (e.g., what you accomplished since last meeting).
Tip: When an issue in the project has a need for more time or involves different stakeholders, Scrum master can help you schedule a different meeting to address them.
- Talk about the work you did yesterday
- What your plan is for today and tomorrow
- Sum up what you accomplished so far, what are the obstacles in the way of reaching your goal.
The Scrum meeting is NOT the time to talk about implementation details.
Action step: Before the Daily Scrum, write brief bullet points about what you are going to say. That will help you deliver concise Scrum update.
Before we dive into Scrum-specific processes, it's important to listen during Scrum meetings.
Tips to help you be a skilled listener:
- Remove all distractions (email, messenger, music)
- Speak up when you have questions
- Don't interrupt the speaker
- Take notes to remind you of what team members said in a meeting
In Scrum all work should be done at a "team level".
Doing work at team level means that the team does not isolate tasks between different people. Specific team members own work items, but everyone on the team makes sure that the work gets done.
Action step: Offer help. If your team members are struggling with their work items, be sure to listen to their problems. The daily Scrum is a great time to listen for problems that your team members might be experiencing. If you think there's something you can contribute, offer help. Remember that we are all working towards the same goal.
Keep your progress visible
Scrum team members should always keep work items updated by having their tasks completed. It helps everyone be clear what the next steps are and how progress is being made on a project.
Action step: Take 5-10 minutes every day and go through work items that are assigned to you. Make sure you've marked all the done items as "Done", updated the remaining work, and added relevant comments. That will help with keeping the agile Scrum board updated and show progress.
If tasks are stuck in progress for more than two days without any updates then it's worth checking back and making sure that no one needs help.
Software developers often run into unpredictable problems that aren't easy to solve. These are unknown unknowns that the team didn't know about during sprint planning.
If work tasks take longer than expected, the team needs to adapt.
If there's an issue with a task, it can help to break down the big problems into smaller pieces so we're not overwhelmed by them.
Action step: Tackle blockers as soon as they arise, don't let them pile up and become too much of a problem. Running into problems is part of being a software developer but it's important not to ignore them because the more we delay working out the solution, the worse it becomes for everyone involved in the project. When you run into issues, talk to the Scrum master and team about how to solve the problem together.
Communicating with Product Owner
Software developers should communicate with product owner daily during Scrum sprints. This will help the developer stay on top of new requirements and bug fixes that have come in since their last meeting.
The Daily Stand-up is where developers should update the Product Owners on any issues they are currently working on, what they’re going to work on next.
Action step: As a software developer, talk to the product owner often so they can help you build software that's useful for the business. Get their feedback early by sending them screenshots, proof of concepts, or even prototypes of software you're building.
Work with the Scrum Master
Software developers can get help from the Scrum Master by removing any impediments that are preventing the work from being completed. The Scrum master is there to help remove those obstacles when they arise and provide guidance on how to overcome them, including determining which tasks need extra attention in terms of focus or time investment.
Action step: Next time you run into a complex obstacle, remember that Scrum Master is there to help. Message the Scrum master with a brief description of the issue that you are facing and in which areas you need help.
In self-managed software development teams, each team member decides how to best accomplish the work within a sprint and does so on their own with no external interference.
Self managed software development teams are more productive and produce higher quality work because it empowers each team member to make their own decisions about how best to accomplish the work within a sprint with no micromanaging from managers, no need to track down dependencies on tasks.
to self organize
Understand agile software development
Agile software development is a method of developing an application.
The process emphasizes responding to change while retaining flexibility, and delivering incremental product to the end users at various stages in the project.
Scrum is an agile method for managing software development, with the Scrum master and team members working together on a “sprint”.
Agile Scrum methods promote adaptive planning because it allows changes or corrections without having to start completely over from scratch as would be necessary with more traditional predictive management techniques that rely heavily upon analysis-paralysis but underperform when faced with rapid decision making scenarios like those found in software design processes.
Is Scrum good for software development?
Like anything else in software development — It depends.
Scrum is not for everyone. If your software development process requires making lots of adjustments mid-sprint, Scrum may be too rigid for your needs.
Some developers thrive in environments with a lot of freedom. For these people, Scrum may be just too constraining and they will not like the process or enjoy their work if it's using Scrum as an approach.
But it depends...
A good deal of successful software development teams use Scrum as a framework for their process.
Scrum is great for teams new to software development and agile methods, as it sets clear expectations of what work the team should do each sprint, how long it takes to complete work items, and the level of communication required.
Software development teams that use Scrum are more responsive to change and don't get stuck waiting for their next release cycle, which can be a lengthy process under traditional software development methods.
Try it out and see if it is helping your team build a better software.
Make Scrum your tool for success
Scrum teams are using Scrum to do both incremental and radical innovation in the software development process. Using Scrum, the team will break down their work into short sprints that can be completed in about a month with daily standup meetings and Scrum planning sessions to make sure they are on track. Scrum is an agile management strategy where teams take small, incremental steps towards completing product development cycles.
If this post has convinced you that Scrum is not as hard as it might seem, then we've done our job.
Software developers are often the driving force behind a company and if they're equipped with all the right tools for success, their chances of building something great skyrocket.
If you are looking to grow your career as a software developer, then brush up on Scrum's many benefits.
So take some time to go over these topics again and see what parts really make sense to you. The more you practice Scrum, the more natural it will feel.
Scrum and other agile methodologies are becoming popular in all industries today. As a software developer, being familiar with agile and Scrum techniques will give you an edge over your peers.
The more you know about Scrum, the more valuable you'll be to your company as a software developer.
Consider becoming a certified Scrum practitioner if you want to feel confident in your Scrum knowledge. Several organizations, including Scrum Alliance, offer the Certified Scrum training courses and certifications.
- Published on