In our last agile project management post (What is agile project management) we looked at the agile project lifecycle and the 6 distinct stages – pre-project, feasibility, foundations, evolutionary development, deployment and post project.
Agile is an umbrella terms for multiple methods and practices that can be used. The aim of agile is to pick the right method to deliver the product in increments, working in cross functional teams and receiving regular customer feedback.
So now we understand the lifecycle lets take a look at the methodologies we can use in an agile project and review the top 5:
Scrum
Scrum is designed to be a simple framework for complex projects. The project is broken down by the product owner and scrum master into sprints which typically last 2-3 weeks. During this development period a daily stand up will occur with the scrum master and developers to ensure everything is on track and to address any concerns.
At the end of the sprint a retrospective meeting will happen including the team, scrum master and product owner. This meeting is a chance to reflect in the sprint and discuss the next steps forward.
Scrum has a strong focus on quality and can break down a complex project into smaller pieces of work. The scrum master can plan and prioritise the sprints whilst development is happening. I’ve seen scrum used very well in support environments to work through bugs and minor changes.
However, there are some downsides to scrum as it can be hard for developers to see the bigger picture of the project and only focus on one aspect. This can result in the developer not seeing how two elements have to work together.
Kanban
Most people recognise Kanban for the visual board it produces, broken down into columns. Tasks are moved across the columns until they are completed. In web development you will typically have backlog, scoping, development, testing, UAT, production.
Kanban is a great visual process and when everyone can see the board it helps to increase knowledge and communication within the team. Continuous development is encouraged with Kanban to keep moving through the tasks.
There are no set timeframes with Kanban which can be its downfall. Also, it does relay on people keeping the board up to date for everyone to see the progress and understand their roles. If someone doesn’t move their task along from say development to testing how does the testing team know it's ready?
Hybrid
Hybrid methodology brings together agile with another project management methodology. This second option is typically more fixed such as waterfall or Prince2.
With hybrid you may have some flexibility with the scope, but the deadline and budget may be fixed for example. This method gives you the opportunity to use agile to break a project down and use sprint development but still deliver on a set date. This means you can take the best elements from both methodologies to deliver your project.
As you can communicate and show the customer more of the work through hybrid you do need to be careful of scope creep and any fixed deadline. All parties need to be clear on the type of hybrid you will use and the principles you are taking out of each method.
Lean
The core principles of lean are to increase process efficiency and product quality by minimising cost and waste. Lean project management looks at continuous improvement for the business process.
Lean promotes fast software development with less work. The development cycle (work in progress) is as short as possible and the team analysis the workflow. You are always looking to improve the development process and reduce all unnecessary work.
People are empowered to manage the process – the team make the process work not the other way round. Collaboration and communication are important for lean working. Lean is often embedded into a company's culture and becomes a way of working for all tasks not just projects.
Extreme programming (XP)
The XP methodology is good for high technical risk projects and changing environments. You will see developers working together for continuous code reviews and feedback. This promoting team working and shared learning.
A good working environment is required for XP and it can be difficult for remote teams to work in this way. Also, with the focus being so high on development quality the design aspect can slip or be forgotten.
The constant testing and reviewing means it is more agile than other methodologies. Alongside this the team's talent can increase through continuous learning. The customer satisfaction is also prioritised so when changes come in last minute they are accepted and the scope adapted. A great method for complex or changing environments.
Conclusion on agile methodologies
As we can see agile covers a number of different methodologies and no one is suitable for all projects. When planning your project take the time to think of the type of project you are taking on, the level of change, the working team and any fixed elements that cannot be adapted.
From here you will find the right agile methodology to fit your project.