In some companies it’s possible to try Agile software development on a small out-of-the way project. This is one of the easiest ways to get started. You try something, show results and then move up to a larger-scale project. But in some companies, there isn’t anyplace out-of-the way, and every project must engage with complex organizational structures and processes. In these companies the best strategy for success may be to choose the opposite kind of project: one that is critical to the company and visible.
Your first Agile project will probably be one of your most difficult.
- A dedicated, full-time team is critical for success. Most organizations who are not structured for Agile, have their people spread across many projects. This will be one of the most difficult obstacles to overcome.
- A strong Product Owner, with deep understanding of what a customer needs, is critical for the project’s success, yet it may be difficult to find someone to fill this role.
- A dedicated team room works best for Agile projects. This might be difficult to secure.
- The role of testers changes dramatically in Agile. Testers are part of the Agile team. Instead of testing at the end of the project, they are testing regularly, alongside the developers.
- The team needs the ability to regularly test new software in an integrated environment. In many companies that is difficult to arrange or the controls around the test environment make it very difficult to test multiple times per day.
- It is likely that the management team will have a format for status reports intended for waterfall projects. Agile teams usually can’t complete these reports since their measures of progress are entirely different. The management team will have to learn a new status reporting methodology.
- There is documentation, but it will most likely not be the same documentation that has been produced in the past. It will take a while for the rest of the organization to get used to the changes.
- Functional managers have been accustomed to moving team members between projects like interchangeable parts, but this will really hamper progress on an Agile team. This will be a challenge for the functional managers to accommodate.
- People are probably used to having a comprehensive set of requirements up-front. Not having this will likely make them uncomfortable.
- Even though project plans are often wildly inaccurate, people are used to having them and will be may be uncomfortable without one until they learn how things are managed on an Agile project.
With all of these challenges you’ll benefit from strong senior management support. You won’t get that level of support if you’re working on a low-visibility project; the burden for solving most the the challenges outlined will fall to the team.
My recommendation is to find a project that is critical to the company and get the management team on board. Let them know what the challenges will be and enlist their support. If possible, have them communicate what you are doing and why you are doing it to the rest of the organization. Use the management support when you need it.
It takes work to change an organization, but if you choose the right project and get the right support, you are more likely to be successful.