Scrum is a development methodology that allows the development team to focus on a specific set of functionality within a time-boxed iteration to reach a development goal. At Soliant, we use Scrum in our development work to help us move projects forward effectively. We set goals for our team to get specific development tasks done within a specified time frame.
Scrum Components
Scrum has quite a few facets that help keep a project moving forward and running smoothly. These are:
- Sprint – Time-boxed iteration, usually 1 or 2 weeks long.
- Sprint Planning – This is where we plan and create development goals to be worked on within a sprint.
- Sprint Retrospective – This is done at the end of a sprint to reflect on the past week or two to determine what we’ve been doing well, what we want to continue doing, and what we want to revise.
- Backlog – This is the list of all the development tasks that the team can work on.
- Backlog Grooming – This is organizing, prioritizing, and understanding the development tickets queued up to be worked on.
- Daily Standup – This is a quick meeting with the team to regularly review what the team has worked on since we last met, what we plan to work on until our next meeting, and if anything is stopping us from getting work done.
- Forecasting – This uses data from the development team to understand the velocity between the team and the tickets being worked on to estimate the size and timeline of the project. This is based on historical data of the team working on the project.
- Client Demo – This is where we show the work in progress and completed to our clients for feedback.
Scrum Helps Show Our Work
Now, why does Soliant use Scrum? We’ve chosen this development methodology because it helps us focus on the tasks at hand. It supports setting development goals for the team to focus on and track progress. It allows us to consistently show our progress to our clients so they are in the loop and involved.
For example, as we finish development tasks, we send them to the client for testing. This helps to get the work in front of the client’s eyes as soon as possible. By doing this, they can see the progress we’re making, and can provide feedback early and often. As our clients test our work, they sometimes decide to make changes or additions to the functionality we have not previously discussed. Since they can test as soon as the work is ready, they can identify these needs sooner. We can then have discussions on change management for the project. It allows us to add the functionality they want while understanding changes that might be made to the timeline or budget. They often happily add the functionality, allowing us to deploy the entire project while aligning with all of the client’s needs.
Scrum Helps Us Measure Our Progress
Through Scrum and our forecasting tools, we can track the project in terms of size and timeline. We update our clients regularly with this information to let them know how the project is progressing. We have run into a situation with a client where the project was tracking a little larger than originally desired. Since we caught this in development early on, we were able to discuss this with the client and make modifications to the scope to address the project size and any overarching concerns. We were able to continue with the development and deployment of the project. The client still uses it and gets support on it today.
We can also see if tickets are taking a while to move through the development and testing process. This allows us to identify an issue and analyze it for course correction. One time, we noticed that tasks were sitting in the client QA column for a significant period of time. We had a discussion with that client to help them understand that as those tasks sit in QA, we won’t be able to better define where the project will end up. Testing could reveal needed changes. We can’t know this until testing is done. It creates a fair amount of uncertainty for the outcome of the project. Once we explained this to the client, they could find time to finish their testing and create certainty about the project’s completion.
Scrum Helps Us Identify Blockers
As part of our check-in progress with both the client and the team internally, we can identify blockers that prevent the team from moving forward. Given our consistent communication, we can discuss issues that prevent us from continuing work almost immediately as things come up. These things could range from needing access to a server or database to needing questions answered internally or with the client. Since we have our regular Scrum artifacts, we can bring it up and hopefully resolve it quickly.
Working with a Partner Who Prioritizes Scrum
The different aspects of Scrum all have the end goal of delivering quality and valued work to our clients. It provides a series of checks and balances to ensure the project is tracking the way it needs to. It allows us to check in with the team regularly to track projects and make sure the team has what they need. We follow up with the client consistently to ensure we build what they need for their business in the best way possible. At the end of the day, we are a group of passionate people striving to develop quality code to help our clients operate their businesses more effectively. Contact us if you’d like to learn more about our work and process or if you’d like to explore working with our team.