“Agile is all prevalent, and every organization is adopting it, so let us adopt agile.”
“The Client has told us he would prefer executing all future projects in agile mode, so let’s go agile.”
Not all the projects and not every organization needs to go agile. And even if an organization is thinking of adopting agile, it’s better to conduct these checks before going moving ahead.
Decide the Objectives
First and foremost, organizations need to decide why they want to adopt agile. Some crucial questions that need to be answered first are: Is it for better and faster project delivery? Is it because the client mandated it? Will it help in improving communication? How will we measure success?
Decide on the objective(s) to achieve, which isn’t achievable with the current method of project execution. Evaluate if agile is going to help you with it, or will it end up being an overhead.
Organizations also need to be cognizant of the efforts and time it will take to implement and adopt agile in a project, program, or across the board.
Mindset Shift
Agile is a philosophy and not a tool which will magically increase productivity.
The most important question to ask is ‘are we ready for a mindset shift?’. Agile implementation can’t happen amongst one set of people or within a few departments. Agility needs to pervade in every corner of your organization and in the manner of doing things for it to succeed.
If the development team is agile, but the client is not ready to participate in meetings or give timely feedback, it will fail. If management doesn’t trust the employees or believes they are not skilled enough to take project-related decisions, it will fail.
Unlearning the old ways of executing the project is one of the essential steps of adopting agile.
Project Types
It doesn’t make sense to implement agile to all the projects across the board. If there are projects that are working without issues or client complaints, then the current system works. Brilliant! “Don’t fix it, if it ain’t broken.”
Fixed bid projects, projects with defined deadlines and scope, support projects on a need basis, such projects need not implement agile.
Make a proper assessment before starting, why a project should be done in an agile manner, and would it benefit from it?
Agile Experience
Create awareness among team members and different departments about the agile process. It should answer their doubts and questions about how their work change, the expectations from them, where can they look for support.
Experts should be ready to answer their hundreds of ‘why’ and ‘what if’ questions and do initial handholding for them to trust the methodology and participate wholeheartedly.
Agile Methodologies
There are different agile methodologies; you need to be aware of to make the right choice for your project(s).
Scrum:- Scrum is a more prevalent agile methodology. It provides a framework for agile implementation and deals more on the management side of it (fixed sprint, burndown charts, retrospective, etc.).
XP:- Extreme Programming (XP) focuses mostly on software engineering processes (continuous engineering, continuous deployment, pair-programming, etc.). The iterations differ slightly from the scrum.
Kanban:- Kanban framework is less rigid than the scrum. It’s beneficial when the unpredictability level of requirements in a project is high. Instead of fixed sprint or iterations, it focuses on continuous workflow structure and visualization at any stage by the help of the Kanban board.
It’s difficult to follow any framework strictly due to the sheer variation in the manner of project execution and people skillset in every organization. That’s where the agile experts can help to come up with a customized agile framework that works for your organization. E.g., practicing scrum and combining some of XP practices.
Team Structure
Agile highly recommends cross-functional teams. A developer should also be able to write automated test cases. There are no separate UI/UX, DBA, Operations teams the scrum team should be able to manage everything amongst themselves. There are no rigid phases, and a work item moves to the next stage (e.g., development to testing) as soon as it is finished. A lot of tools should be used that help in such continuous delivery. The team takes all the key project decisions, and the team is held responsible for the success or failure of a sprint.
Assess if your teams are ready for such a role or at least for this mindset shift. If not, then find out if the organization will train and coach such team members. It will help to make them understand and grow agility in their manner of working as well