Everyone has their own way of doing things, hence the many different software development methodologies out there. Agile and Scrum are among the most popular out there, and they are what we follow. Below we share the pros and cons of each, then share how we utilize the approaches at Upstate Interactive.
Agile is sort of an umbrella term for several development methodologies, but what they all have in common is that they take an iterative approach. This means that rather than doing all the prep and planning at the beginning, development happens in smaller stretches (known as sprints) and each iteration is based on feedback from end-users.
Developed in 2001, the Agile Manifesto has 12 principles. Among them includes placing the customers’ needs above all else, embracing change where needed, promoting sustainable development for team members, and prioritizing face-to-face communication.
- Projects can begin before they’re fully fleshed out. Shorter development cycles and frequent feedback from users can help you gain clarity over what your goals should ultimately be, and the team can develop accordingly.
- Flexible development. Changes don’t cause development to get set back. Without planning the full project at the start, there’s no risk of losing time or money if the dev team needs to switch gears in response to user feedback.
- Customers get what they truly want. Making their feedback the highest priority, and receiving it routinely, ensures that end-users’ needs are continuously being met.
- Software is higher quality. The dev team can find and fix bugs more quickly with each iteration, rather than waiting until the software is fully developed to find them.
- It can be difficult to estimate time needed to complete the project. Since iterations are dependent on user feedback, the original completion date may end up being pushed back to account for improvements. This also means the dev team has to keep their schedule open indefinitely if they’re going to stay committed to the project.
- Documentation may take a back seat. One of the principles of the agile methodology is to focus on providing working software first and foremost, so sometimes detailed documentation can fall to the bottom of the priority list.
- The dev team needs to wear several hats. Agile teams are usually quite small, so it’s important that each member has a broad skill set. This makes recruiting more difficult with the extra requirements.
Scrum is a framework for software development that operates under the agile umbrella, whereby people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
It’s a specific set of rules followed by three stakeholders: the Product Owner, Scrum Master, and Scrum Team. The Product Owner functions in a similar role to a film producer and director, managing both the business side and the overall creative vision for the project, while the Scrum Master manages the details that contribute to that vision and ensures the team sticks to the scrum rules.
As we mentioned above with agile teams wearing many hats, the Scrum Team forgoes the usual titles (designer, engineer, etc) in favor of a more collaborative environment where everyone contributes where needed. Every scrum team follows specific scrum “events” during a sprint:
- Sprint planning (determining the length of the sprint, which cannot be changed, and what will be done)
- Daily scrum stand-up meetings
- Sprint review meeting where the team demos their work
- Sprint retrospective meeting to review what worked and what didn’t, and what may be done differently in the next sprint
Along with the pros of the agile method, scrum provides:
- Greater transparency and efficiency. Daily meetings with the team keep the project on track and tackle any issues that arise right away.
- More money saved and higher quality. By being able to address issues so quickly, bugs and other problems can be fixed early, also increasing the quality of the final product.
Agile cons apply here as well. In addition:
- The wrong team members can upend the process. Some folks work better on their own, but that won’t fly in this environment where there are no defined roles and it’s essentially a group project. Everyone on the Scrum Team has to be a team player committed to collaboration. This includes the Scrum Master, who is not a team manager with authority over the others, but rather a manager over the process instead.
- Daily meetings can be frustrating. Could that meeting have been an email? Sometimes that’s the case, but if you’re sticking to the scrum process properly, the daily stand-ups have to happen, especially if you’re working on a distributed team where face time is even more important.
At Upstate Interactive, we use the agile scrum method. UI partners Zoe Koulouris and Peter Smith have been certified as Product Owner and Scrum Master, while also currently being part of the Scrum Team.
We’ve written about our process before, and this Discovery phase fits into the scrum process by allowing us to determine deliverables, including revising and prioritizing items on the product backlog — the artifact that guides development.
“When we adopted agile scrum, our ability to service our clients, and communicate that service to our clients, improved,” says Peter.