Say for example, you are in charge of a particularly large project, with a big time frame, and you and your team decide that Agile would be a better methodology to follow. Is it practical/possible to change from one methodology to another during a project?
It is definitely possible to adopt an Agile approach on an existing traditional project. I have seen this done many times and although the results varied there was always recognisable benefit.
Remember that Agile is an approach to doing development. There are a wide variety of Agile frameworks and techniques that can potentially be useful. You don't have to adopt them all right away.
One thing I would recommend is that you clearly identify the reasons for switching to Agile. Do you want to be more adaptable to change? Do you want to have more frequent releases? This will help you to determine what aspects of Agile you chose to follow.
Things that are likely to provide early benefits include:
- Looking to do interim releases rather than waiting until the end of the project
- Doing regular retrospectives where the team discusses ways they can improve
- Engage regularly with your end users, perhaps using showcases to demonstrate work that is 'done'
- Prioritising your requirements so that the team is working on the most important things first
If it's a particularly large project then agile probably isn't a good idea. However, I think that we could easily be talking about a personal interpretation of 'particularly large'. I use the term to describe 100's of programmers and many more testers, managers, designers, architects, stakeholders, etc. on a multi-year project costing tens of millions of pounds/dollars/euros and spanning many business centres, possibly internationally. I'm thinking of programmes to generate control systems for new nuclear reactors, or the James Webb telescope/satellite. Projects this size shouldn't be agile.
If you mean something smaller then you probably should have been agile to being with -- this is 2016, not 1998 -- this stuff really isn't up for debate any more. What were you thinking by not trying to be agile in the first place?
Anyway, none of that will help. You should change to an agile approach as quickly as possible. Start by breaking your project into features and your requirements down into stories, store them in jira. For each story provide a cost, preferably in money, and a value, also in money. Then have the stakeholders (all of them -- product-owner, business, users, ops, devs, testers) prioritise the stories. Then start feeding the team the stories, tracking how they progress on a kanban board. If you're going too slow, start limiting work in progress and you'll go faster. Practice TDD, BDD, DDD, CI and CD. Feed stories sequentially to the devs via jira, and track their progress the same way.
Do all of this. Do it now. If you hurry you might just save your project and your shareholders might not eat you alive for having failed in your fiduciary duty to control risk (which is what agile is for).
And, above all, have fun. It's meant to be fun.