Everyone in tech is talking about it – Move faster, reduce costs, discover a problem, react immediately, improve, rinse and repeat. All of this is part of an Agile development process. But what does it mean, how is it implemented and why do we like it? Let’s start with the basics:
What is Agile Methodology?
It’s a philosophy that means breaking projects down into small goals and working towards those goals while adding new goals. It’s set-up so a software development system can react well to changes.
Agile Development was introduced in 2001 by when 17 software developers got together at a ski resort in the Wasatch mountains of Utah, and wrote 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
That is, while there is value in the items on the right, we value the items on the left more.”
The manifesto has been translated into over 60 different languages around the world.
Who Uses Agile Development?
According to a survey in TechBeacon, over 50% of companies, large and small, are leaning towards adopting the Agile Methodology, and 16% have transitioned into purse Agile companies. They believe it’s more efficient and effective when designing robust applications. For example:
Old vs. New: The Waterfall Method vs. Agile
The Waterfall Method:
This method was developed over 30 years ago and it focuses on planning and documenting.
Pro: It enforces clearly defined requirements upfront, and it is easier to plan budgets and timelines.
Con:Validation occurs too late and change is costly.
The Agile Methodology:
Developed less than 20 years ago, and it focusses on being flexible in development, while still moving forward.
Pro: Agile is more adaptable
Con: Less structure and planning makes project planning, budgets and timelines are harder to predict.
What is Scrum?
Scrum is the most popular implementation of the Agile Methodology. It’s a framework that breaks down complicated projects into a prioritized list which is then tackled one-by-one in a given timeframe, known as a “Sprint.” The team has a “ScrumMaster” that manages the team and helps them keep the end result in mind. After a sprint, the shippable product is reviewed. Then the next thing on the list is taken down and organized into the next sprint.
Read about the players and the game here: Product management skills: Scrum