Choosing the Right Agile Framework for Your Project
The Agile method is one that many Project Managers use. But did you know there are different kinds of Agile approaches? Which is the right approach? Well, that depends. Read on to learn more.
This article is part of the Project Management Fundamentals Series. Learn more in the blog or see my video series!
Agile has been a buzzword in the digital and software development industries for years. In the Agile Statement, the following principles are well-established and explicitly defined:
"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, as the Agile concepts grew in popularity, it became evident that these were values and scaled agile framework principles, not a fundamental structure - not a one-size-fits-all approach. This has driven organizations and people to develop delivery methodologies that work for a diverse set of project dynamics.
How to choose the right agile framework?
Today, Scrum is often regarded as the most popular approach, so it is easy to overlook the other options. But what are these options, and how do they stack up to Scrum?
Forcing a particular Agile methodology on your project is a terrible idea. Suppose you can't follow the rules of your chosen method consistently and successfully. In that case, the project will become a jumbled mess, which will annoy the development team and prevent you from delivering a great product to your client.
Let's look first at some of the key criteria for a method review. Which method will provide:
The Project Clients the best possible service and value for money
The Project Team with a method that fits their skills and way of working
The Project Product with an approach that will support the best possible outcome with the least amount of total effort and rework
The required documentation and sign-off which are needed to approve the final product
A sustainable and maintainable end product based on the initial work done
A method that is tried and tested within the organization
Project Management groups have been discussing the frameworks and methodologies options over the years. Here is a summary of some of the popular and a few lesser-used approaches and some use case information.
Scrum
The Scrum model is a well-known methodology for assisting teams in delivering complicated projects in fixed, incremental iterations. Each iteration is referred to as a sprint, and it lasts about two weeks (although this does vary). The development team focuses on a specific task without being disrupted. There are clearly defined agile framework roles (Product Owner, Scrum master, cross-functional teams), routines (backlog refinement, sprint planning, daily stand-ups, sprint review, sprint retrospective), and tools (scrum board, user stories, icebox).
When should you use Scrum on your project?
When delivering a vast and complex project with a clear vision of the final product.
When your team communicates effectively and is self-managing.
When the entire team is on board with the process and fully committed to it
When all stakeholders are accessible to discuss progress and answer questions
When you need to get a minimum viable product out the door as soon as possible
Kanban
Toyota was the first to create Kanban in the 1950s in Japan. It emphasizes continuous delivery while not putting a tremendous burden on the development team. Unlike Scrum's iterations, the Kanban framework offers a constant, flexible workstream. The three fundamental concepts of Kanban are visualizing your workflow, reducing the amount of work in progress (at each phase), and improving flow (where new items are continuously pulled in from the backlog).
When should you use Kanban in your project?
When the project's scope is constantly changed due to "high priority" or "emergency" situations
When your project necessitates flexibility and frequent priority shifts
The primary purpose is to provide continuing maintenance and support, usually, post-launch
When your project necessitates regular or sporadic releases
Feature Driven Development
Feature Driven Development is a short-iteration, model-driven process. It all starts with deciding on a general model shape. The project then moves on to a series of two-week iterations called "design by feature, build by feature." The features are minimal, yet they produce "useful in the client's eyes" effects. Unlike other agile methodologies, FDD outlines critical, extremely brief work stages that must complete separately for each feature.
When should you use Feature Driven Development in your project?
When your project necessitates a "model-centric" strategy
When user stories are key to the outcome
When you need numerous teams to work on the same project in parallel (multi-track workstreams)
When you want to provide one feature at a time on a large project
When you want specific team members to share responsibility for particular components
Extreme Programming
Extreme Programming is a method primarily focused on software projects but can also work for other kinds of product development projects. It encourages significant customer involvement, rapid feedback loops, continuous testing, planning, and close teamwork. Pair programming, continuous integration, unit testing, and code review are all heavily emphasized in extreme programming practices. It essentially pushes the boundaries of software development best practices. Driven by an Iteration-by-iteration basis, the development team estimates, plans, and delivers the highest priority user stories.
When should you use Extreme Programming in your project?
When your project necessitates a high level of flexibility and frequent priority shifts
When numerous releases per week or per day are required
When you need a high quality, error-free product
When a code-first strategy is needed (as opposed to process first)
When you need a reliable, low maintenance solution
When development is test-driven
How to Choose the Right Agile Approach
The right project outcome and product often start with the right choice for the project framework. Every good Project Manager needs to know about the framework options and how to choose the right one for their project. To learn more about Project Management and Project Methodologies, see my blog for more articles in my Project Fundamentals Series.
Which of these Project Approaches have you used? Did I miss anything? Please let me know in the comments below.