Why We Use Scrum Methodology
There are a number of software development methodologies that companies around the world employ. Some of them are more popular, others are less. One thing we can say with certainty is that there is no “one-size-fits-all” formula when it comes to software development. Each company can evaluate the pros and cons of each one and make a decision based on its needs. We did that at Ideaction a while ago, and in the end we have settled on Scrum.
How Many Software Development Methodologies Are There?
It’s probably hard to estimate the exact number of software development methodology, as each one can be branched into new variations. Often companies adjust one methodology to their particular needs. Then they give it a new cool-sounding name and it has a good chance of sticking around.
In the end, the IT Knowledge Portal Identifies 13 Software Development Methodologies:
- Agile Software Development
- Crystal Methods
- Dynamic Systems Development Model (DSDM)
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Joint Application Development (JAD)
- Lean Development (LD)
- Rapid Application Development (RAD)
- Rational Unified Process (RUP)
- Systems Development Life Cycle (SDLC)
- Waterfall (a.k.a. Traditional)
Even if you are in software development, it’s most likely that you’ve heard about five or six of them and have no idea about the rest.
However, even if you are not working with software development, you most likely have heard about one methodology: Agile. In fact, Scrum, which we use at Ideaction, as well as more than half of the other methodologies listed above use Agile as their foundation.
What is Agile Software Development?
Agile is the most popular software development methodology. An online survey conducted by HP in 2016, which included 601 IT professionals showed that more than half of them are using methodologies that lean towards Agile. Another 16% said they use pure Agile.
It is also one of the most commonly used among Fortune 500 companies. Tech giants such as IBM, Cisco and Microsoft employ Agile methodology in their product development.
The Agile movement goes back to 2001, when a group of software developers gathered together to discuss various approaches to software development. Their joint collection of values and principles was summed up in the Agile manifesto:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
However, Agile is much more than just a methodology. It represents a framework, which many other methodologies use. Crystal, DSDM, XP, LD, and of course Scrum are some examples of Agile-based methodologies.
How Is Scrum Different from Agile?
Scrum is a variation of Agile that has a number of unique features. One of the main aspects of Scrum is that it uses fixed-length iterations for developing a product. Each iteration is called a Sprint and it usually has a duration between two weeks and one month.
In addition, Scrum focuses on real-world results rather than theory and speculation. Through iterations it adopts an “inspect and adapt” approach. The product is in a potentially-ready state all the time. After each sprint, team members meet and discuss the changes they made and plan the next steps.
Why We Use Scrum at Ideaction
For us, Scrum is the best approach for a number of reasons. Since we provide software development services to other companies and startups, we need to show results to our clients as soon as possible. Scrum’s approach to have a ready-for-shipping product after each sprint is the best fit for us.
Another thing we like is that project roles are clearly defined under Scrum. There are three main roles: Product Owner, Scrum Master, and Team.
The Product Owner is responsible for the project, has authority and must always communicate his vision and priorities to developers.
The Scrum Master facilitates the communication between the Product Owner and the Team. They are not managing the team. Instead, they organize scrum meetings, set up each sprint and take care of the delivery flow.
Last but not least, the Team is responsible for completing the work included in sprints. The team usually consists from up to nine developers. In Scrum, the team does not require managing. It must be self-organized. All members must together decide how they will complete each sprint.