What are the different types of Agile methodologies?
There is a lot of buzz about Agile in the software development environment. It is used by established IT companies, including itCraft, to eliminate distractions, organize the workflow and achieve better results when it comes to project management and other aspects of building web and mobile apps. Whatever you have in your product backlog, we can use Agile for fast delivery and spectacular outcomes.
Table of contents
- At itCraft we love Agile
- What is Agile?
– What are the main rules of Agile?
- Different types of Agile methodologies
– Agile Scrum Methodology
– Lean Software Development
– Extreme Programming (XP)
– Dynamic Systems Development Method (DSDM)
– Feature Driven Development (FDD)
- Agile Software Development – which flavor should I pick?
- Agile content on our blog
At itCraft we love Agile
Methodologies and frameworks are applied to such processes because once the collaboration between the product owner and a software house begins, we need to control a lot of resources. Every project lasts a significant amount of time. There are numerous team members involved. Each stage has its own tasks that have to be accomplished. It all requires exceptional management and organization. And Agile is a perfect solution.
But Agile comes in many shapes and forms. If you ever heard of Agile, you probably also know Scrum. It’s one of the main approaches practiced in software houses. But there are so many ways to apply Agile and various methodologies we can use as inspiration that we decided to showcase them all to you.
Let’s start with the basics.
What is Agile?
Why should we explain it again, when you can find a definition in our article about Agile software development:
In its most general sense, agile represents the approach to changing requirements. It’s the ability to adapt to a constantly evolving environment and respond to it with understanding and composure. Introducing such an attitude towards daily tasks helps every employee “keep calm and carry on” even when stressing situations occur or fiercely interrupt their workflow.
Although Agile was created by developers to enhance their work, it is now applied to different business areas like project management, decision-making, data analysis and more. That’s because almost any process can benefit from agility. There are core values that an Agile company incorporates into its operations and principles it follows to make sure that everyone knows what to do. Only then team members can deliver spectacular results their clients expect.
What are the main rules of Agile?
To understand what Agile is all about, we recommend checking two primary documents that perfectly describe Agile’s rules and ideas. We even wrote articles that explore and analyze them in detail. Thus, you can understand better why we use Agile and how it influences our daily work.
The first document we recommend to check out is the Agile Manifesto. Four main values included in it set out the direction for all companies that want to run every project effectively and successfully. Here are the rules of the Agile Manifesto:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation
- Responding to change over following a plan
In the article, you will learn more about each Agile Manifesto values and how they can be applied to any software development project. To understand Agile even better, you should dig deeper and read about Agile 12 Principles:
- Customer satisfaction by early and continuous delivery of valuable software.
- Welcome changing requirements, even in late development.
- Deliver working software frequently (weeks rather than months).
- Close, daily cooperation between business people and developers.
- Projects are built around motivated individuals, who should be trusted.
- Face-to-face conversation is the best form of communication (co-location).
- Working software is the primary measure of progress.
- Sustainable development, able to maintain a constant pace.
- Continuous attention to technical excellence and good design.
- Simplicity—the art of maximizing the amount of work not done—is essential.
- Best architectures, requirements, and designs emerge from self-organizing teams.
- Regularly, the team reflects on how to become more effective and adjusts accordingly.
More detailed explanations of the four rules and 12 principles will give you a better insight into using Agile in the development process.
So now you know the core rules of Agile. We can discuss the most popular methodologies that are used in software houses. Many call them “Agile Flavors” because they are so diverse and each offers different ideas. Let’s see which ones are appreciated the most and what their benefits are.
Different types of Agile methodologies
Before we start, you should also remember that many software development companies use so-called “hybrid” Agile methodologies – and you can, too. What does it mean? Basically, they pick advantages of various “flavors” and create their own Agile project management framework that meets their unique needs and goals.
Knowing the widely accepted methodologies within the industry will give you an idea of what you might need and which one is the most suitable for your brand. Keep in mind your working style, the type of projects you run and your team’s expectations. Then pick the principles and concepts that will promote productiveness and cooperation. You will be able to achieve spectacular results.
So here are Agile methodologies you should know about. We will talk about Scrum, Kanban, Lean, XP, Crystal and more. Pick your favorite flavor – or mix them as you please.
Agile Scrum Methodology
There is no other methodology in Agile software development that gained so much recognition. Scrum is definitely the favorite, picked by teams around the globe. It is perfect for every project that requires several teams to work together to achieve the final outcome. Its attitude towards change and uncertainty allows team members to focus on finishing their tasks and releasing the product by the predicted deadline.
Agile project management is the main priority of Scrum. The product owner needs to be an integral part of the project – bringing expertise, customer feedback and other industry insights to the table. This person becomes an equal team member and has a role to play in the development process. Parts of the project are delivered in Scrum sprints – which are periods of work, usually lasting two weeks to one month. Iterations are organized to discuss everything that was done already and plan the team’s work for the next sprint.
In Scrum, all features that require Agile development are listed in the product backlog. The owner of the product should be confident that everyone understands what is in it and how to deliver each part correctly. Teams can use the product backlog as a “to-do list” to guide their activities. The product backlog can be found not only in Scrum methodology but also in Kanban and other Agile flavors.
Why do software development companies like Scrum?
Because it allows project management teams to detect occurring problems quickly and address them to improve the process. Each development stage is transparent and with daily meetings, team members can report their progress and talk about issues. Scrum is often blamed for being too obsessed with visible results, no matter what their quality is. A well-organized team with conscious project management will be able to tackle such problems and apply solutions that will promote delivering working software products instead of doing tasks without any context and value.
Many industry insiders claim that Scrum is a revolutionary Agile methodology that transformed the software development field. The iteration-based approach was the remedy to a chaotic process that wasn’t always able to deliver things on time. The cooperation between teams and the decisiveness of each team member was also very much liked by innovative IT companies. Not to mention the inclusiveness of the product owner and other stakeholders – which gives them a chance to become an integral part of the project and actively contribute to it. This kind of approach was slightly different from what other methodologies offered. Of course, that doesn’t mean it doesn’t have any drawbacks. As we said – not using Scrum with caution can result in providing a faulty product – and no one wants that.
Another interesting thing about Agile methodology called Scrum is one particular role that has to be present in any project – and that’s a Scrum Master. It’s not an ordinary project management expert. This person needs to know Scrum principles and teach the team and the client about the correct Scrum process. Their duties include project management as well, but they have to make sure everything is going according to the rules of Scrum methodology.
The Scrum team is also a little bit different from your ordinary squad. Of course, they are all software development experts specializing in programming, design and quality assurance, but their soft and hard skills should complement each other to achieve seamless collaboration. A Scrum Master needs to notice each person’s potential when composing a perfect team for a concrete project. Usually, the team in Scrum consists of 5-8 people. Their ability to cooperate and communicate will be priceless – and also in harmony with Scrum rules.
If you want to learn more about Scrum, you should definitely check out our articles about it:
Agile project management with Scrum – All the basics of Scrum methodology in one place. We explain everything about it to help you incorporate Scrum into your software development project. Working with itCraft means you will use it for sure.
Scrum Retrospective – best practices and a fun alternative – Scrum Retrospective is a type of meeting where all the team members discuss what was good and what needs improvement. Usually happens after the project is done. In this post, you can learn how it works and what are the benefits of Scrum Retrospective.
Product Owners’ guide to Agile Scrum. Part 1 – The growing difficulty of change & Product Owner’s guide to Agile Scrum Part 2 – Single point of contact – These two articles are full of information about Agile methodology called Scrum. They are dedicated to our current and future clients that want to understand better how our team organizes every software development project.
Scrum is our favorite Agile methodology and we mindfully apply it to all of our collaborations. But it doesn’t mean there is no place for adjustments – other methodologies are also inspiring. The main point is that they need to offer something that will grow our productivity and effectiveness. Let’s see what else is there.
Lean Software Development
This approach evolved from Lean Manufacturing – a set of principles and tools that were adapted to the reality of software product development. It originated from the 1970s when Japanese enterprise Toyota decided their main goal is to reduce all kinds of waste in their car manufacturing process. They identified different types of waste to eliminate and afterwards their business skyrocketed. Soon all carmakers adopted the principles of Lean into their operations.
Then, there was a book by Tom and Mary Poppendieck, where the authors explained how to incorporate Lean Manufacturing into software development. They believed that the value of the product is the most significant priority and everything that doesn’t contribute to it should be not be cared about.
There is a lot of confusion around Lean and Agile. These two methodologies are often mixed up and the terms are used interchangeably. Although Agile, Scrum, Lean and many other methodologies share their overall goals, we should remember about technicalities and rules that belong to a specific Agile framework.
There are seven principles of Lean:
- Eliminate waste
- Build quality in
- Create knowledge
- Defer commitment
- Deliver fast
- Respect people
- Optimize the whole
As you can see, their meaning resonates with Agile and Scrum. What are the examples of using these principles in product development? Eliminating waste means improving workflow by canceling smaller, unnecessary tasks and not organizing feedback sessions when there is no need for them. The development process should be based on tests and cooperation between programmers to ensure the product’s quality. Every project should create knowledge – and for software development that’s storing code on repositories like GitHub for others to access it when needed.
Deferring commitment is all about flexibility and mindful response to change. No decision should be set in stone – because every project can experience sudden evolution of requirements and conditions. Having Agile sprints where teams can decide what should be prioritized is the best way to apply this principle. The “Deliver Fast” rule is nothing more than prototyping, building MVPs and PoCs. You can read about it in our article: MVP app development – Lean and agile way to develop anything. You should start with a small, basic version of your product and expand it based on customer feedback.
When it comes to respecting people, it is all about equality between team members. They all should be treated with respect and compassion during the recruitment process, while being onboarded, when the conflicts are solved and the work is planned. Each person in the team can speak up about issues and propose solutions. Last but not least, we have the optimization part. A cross-functional and self-organized team can solve problems better and adjust their activities to their shared goal.
So as you can see, Agile, Lean and Scrum have so much in common, although you have to remember they are not precisely the same. For example, in Agile Scrum, individual interactions between team members are more important, while Lean is focused on the team as a whole. In Agile and Scrum, the outcome matters the most. For Lean, it’s the process you should pay attention to.
As we mentioned before, you can pick from all the methodologies we describe here and create your own Agile project management and Agile software development system.
Another Agile methodology that often blends with Scrum and Agile itself. And it also originates in Japan. The name comes from the Japanese word for “card” or “visual sign”. The main advantage of Kanban is that it’s easy to introduce – it can be a part of your existing workflow and doesn’t need complicated implementation. Instead of substituting your process, it adds useful tweaks to it.
The idea behind Kanban is controlling the amount of work that the team has at the moment. Adding new tasks can happen only when there’s space for it. This way, the team can be productive and not overloaded with work. Kanban is an Agile methodology that was inspired by supermarkets. The shelves are filled with goods to meet the demand – and the product is added only when the shelf is empty.
The efficiency of Kanban in Agile teams is that it provides a concrete organization of tasks and at the same time, it keeps the space for changes. It is a transparent process where everything is in place. Kanban is based on a tool called Kanban board, which started as a physical board with post-it notes and now is usually created in one of the online apps (Jira, Trello, etc.).
The Kanban board consists of columns – in the most basic version of Kanban, there are three columns called “To Do”, “In Progress” and “Done”. In a software development project, usually there are more columns to reflect the production stages. There’s the product backlog, design, coding, testing, waiting for approval and more – everything depends on the team’s individual needs. Each Kanban card represents a unit of work and is moved between columns when its status changes. The cards can also be color-coded if there’s a need for that.
Kanban, as an Agile methodology, is easy to understand and can be added to the project workflow in no time. That’s why software development teams often use it – even when their main Agile framework is Scrum or any other flavor. With Kanban, the delivery is quick and the amount of waste reduced to a minimum.
The main disadvantage of Kanban is usually associated with the misusage of the Kanban board. It should be continuously updated and properly handled – every task should be in the right place and moved every time it changes its state. Kanban boards do not have deadlines or timeframes, so it is also important not to prolong the production phases too much.
What’s great about Kanban is that it visualizes the work and allows the team to see how many tasks they have and what is their current progress. This also helps the project management team to detect potential problems as fast as possible. There is one particular rule that Kanban teams should remember about – setting limits to their work in progress. A concrete number of tasks should be allowed to this column – best practices usually suggest picking the minimum and the maximum number of cards that can be moved to it. This way, every Agile project will benefit from Kanban in terms of productive workflow and delivery.
Agile, Scrum and Kanban have a couple of differences, but they also share many principles and have multiple common points. Always remember that you can mix the Agile methodologies to obtain a perfect framework for your needs. Kanban and Scrum are made for each other.
Extreme Programming (XP)
Another Agile methodology that can be perfectly utilized in any software development project is Extreme Programming (XP). It is dedicated to coding teams and underlines the quality of the product. Unlike Scrum or Kanban, Extreme Programming was created to invent best practices for any Agile project.
When can XP be the best choice? On its straightforward but explanatory website, the author of the methodology Don Wells says: “In many software environments dynamically changing requirements is the only constant. This is when XP will succeed while other methodologies do not.”. He created the approach as an alternative to Scrum and Crystal (which we will discuss below). Wells also claims that Extreme Programming is suitable for any project with a fixed deadline that the team doesn’t want to miss. It will be beneficial for small and extended dev teams and when the product is highly testable. Not to mention productivity, which is a core priority for XP.
As you can see, Extreme Programming (XP) is suitable for a specific working environment. Unlike Agile methodologies like Scrum and Kanban, it can’t be applied to any project. Still, you can make fair use of it if you fulfill the criteria.
There are five values glorified by XP. They are: Simplicity, Communication, Feedback, Respect and Courage. The first one means that the team doesn’t do more than is required and takes small steps to achieve a high-quality product. The second one underlines the importance of daily, personal communication between team members and encourages them to solve problems together. The third rule describes how iterations should look like and that every team member should deliver working software that can be evaluated and improved. The fourth rule doesn’t only mean mutual respect between team members, but also with the product owner that can offer many insights. And finally, there’s the last rule that encourages teams to speak the truth, be driven towards success and adapt to changes.
Along with these values, we also have a couple of best practices that distinguish XP as an Agile methodology. If you work in Scrum, you might already know some of them because they are also used by Scrum teams. It shows how Agile frameworks often adopt principles from one another. Thus, every software development project can thrive.
There are five categories of practices in XP: planning, managing, designing, coding and testing. They correspond with a typical production process in any software house. Let us describe a couple of most important best practices.
Writing user stories
User stories are also present in other Agile frameworks like Scrum and Kanban. Each feature is presented as a short sentence, “a story” – it saves a lot of time when it comes to creating specifications. User stories can be put on a board or in an online document. They can even serve as tasks themselves. Each story needs an estimation of the deadline and required resources.
If you want to learn more about user stories – we recommend our article: User story – a useful tool in agile development. It explains how the stories look like, how to write them correctly and why they are so crucial for Agile teams.
Continuous integration means that the team should update the code in one repository as often as possible – preferably every hour or so. Introduced changes should not wait more than one day. It is an excellent tool for teams with multiple developers working on a product when they want the pieces of code to be compatible. It is also worth mentioning that in XP, every part of the project is coded by a pair of developers (pair programming). The members of the pair are both responsible for continuous integration.
XP strongly focuses on testing. This kind of approach is called test-driven development. Each part of the code needs its own unit test and only after all of them are passed, the product can be released. Acceptance tests are included in user stories and they define when the feature works according to project requirements. Every time a defect is detected, the testing procedures are implemented to improve the code. Test-driven development is a good practice that can be crucial for the product’s success.
There is also a separate Agile flavor called Test Driven Development (TDD), which emphasizes the assumptions described above.
An Agile methodology that includes various versions of the framework – the most popular being Crystal Clear, which applies to small teams of less than eight people. It was created by Alistair Cockburn – one of the creators of the Agile Manifesto. No wonder Crystal became an expanded version of a particular Agile value.
Which value was that exactly? Crystal highly prioritizes people over processes. It means that software development teams work together to resolve problems and conflicts instead of following strict policies. How is it different from Scrum?
Scrum is a relatively fixed methodology where all the rules apply to a team that chose it. Crystal is more flexible – it adapts to the team’s individual work style and unique project requirements.
Each framework in the family is suitable for different-sized teams. Crystal Clear, as we mentioned, is applied when teams have less than eight people. Then there’s Crystal Yellow for 10-20 people working on a product. Crystal Orange is used when there are 20 to 50 team members. And Crystal Red is great for big teams of 50 to 100. As you can see, there is a version for all kinds of Agile software development projects.
Communication is everything in Crystal. Team members can contact each other directly, which removes a need for extensive project management. The autonomy of Crystal teams is what makes them Agile – they can look for resolutions on their own and apply them to fix issues. This freedom will be perfect for more experienced teams, as product development beginners that never self-organized might get confused, which will result in delivery delays.
Crystal, as an Agile methodology, is significantly flexible, but teams should be cautious about their workflow – without documentation and reporting, the project might become chaos. No structure can be an advantage, but also a drawback.
Dynamic Systems Development Method (DSDM)
Agile software development is not free of issues. With that in mind, Dynamic Systems Development Method was born. This methodology can be used for IT and non-IT solutions. The main goal of DSDM is to tackle the most popular problems in product development – like exceeding the budget, delaying time-to-market or not collecting customer feedback.
DSDM is a more strict Agile approach, where the product lifecycle is the main focus and every project has to follow rigidly established goals. It’s a methodology based on eight principles, which are the best practices for quick results that don’t waste the budget and are delivered within the deadline:
- Focus on the business need
- Deliver on time
- Never compromise quality
- Build incrementally from firm foundations
- Develop iteratively
- Communicate continuously and clearly
- Demonstrate control
Iterations and constant involvement of the user and/or customer are essential for DSDM methodology. There are also 12 key roles that have to be fulfilled when working in this framework. They are divided into three categories to underline their contribution to the Agile project they are involved in. But the main benefit of DSDM is that it takes business needs very seriously – which helps it deliver results that represent real value.
Implementation of DSDM can be rather pricey and requires many resources, which can be difficult for smaller companies to deal with. Also, there is not much space for creativity and invention in the team, as every product must strictly follow the specifications.
Feature Driven Development (FDD)
As the name states, Feature Driven Development (FDD) basically means being focused on specific functionalities that need to be developed to create a complete product. This Agile flavor can speed up the process of creation thanks to the five stages it is based on.
At first, the team has to create an overall model that acts as a draft of the product. A feature list is then agreed upon – they are similar to user stories you might also know from other flavors like Scrum or XP. All the work in Feature Driven Development is planned using this list. Then they are designed and built one by one based on the plan.
Agile project management in FDD is easy – it focuses on particular tasks without too many distractions. Every product is divided into small components, which can also be beneficial for the team as it removes unnecessary work. The process in FDD is transparent and feedback-driven to deliver robust results.
Agile Software Development – which flavor should I pick?
Your product backlog might be complex and full of features, or it can have only a few positions. itCraft teams work together to deliver extraordinary results – no matter what’s the size of the project and what are your business requirements and expectations.
We usually use Scrum as our central Agile methodology, but we are open to other solutions like Kanban and the frameworks discussed above. Our goal is to create a perfect product that will help your brand shine and become a market leader.
So which Agile flavor should you pick? That depends. If you want to implement Agile into your operations, think about your company’s size and the most significant issues you face on a daily basis. Maybe you need more structure? Or, on the contrary, more freedom? Do you hire teams of not more than ten people, or perhaps you manage almost a hundred? All that will matter when picking the best Agile methodology for your own company.
As for collaboration between you as a client and a software house, remember to pick one that uses effective tools and practices and can approach each project with flexibility and open-mindedness. Using a particular flavor is one thing but adjusting it to all the conditions that we face is another. At itCraft, we scoop all the best stuff from Agile, Scrum, Kanban and other frameworks and we create an easy-to-navigate environment where every involved party has a chance to share their thoughts, doubts and ideas.
Agile content on our blog
You should definitely take a closer look at our Agile articles. They are full of knowledge about this subject. You will learn about popular tools and how we incorporate them in our process at itCraft.
Agile software development – This article is an essential guide to Agile in creating web and mobile applications.
The Agile Manifesto – Imagination, empathy, emotion – Here, we analyze Agile principles.
Agile project management with Scrum – Our favorite Agile flavor in detail.
Scrum Retrospective – best practices and a fun alternative – All about retrospective meetings organized in Agile Scrum.
User story – a useful tool in agile development – In this post, we explain one of the main Agile tools we use in every project.
MVP app development – Lean and agile way to develop anything – We talk about Minimum Viable Product – another useful tool in Agile methodologies.
And if you need help with app development – do not hesitate to contact us. We will take your product backlog and transform it into a working web or mobile software that will become a central part of your business growth strategy. Check out our services page to find out what we can do for you. In the portfolio tab, you can see our previous deliveries. Let’s collaborate using Agile to achieve great success!