Is Agile right for every project?
With “every” in the question, you should immediately be suspicious.
My company has a software product that is in the neighborhood of 12 years old. I’m sure it has gone through a number of revisions, some of which were probably major. FishEye is telling me that our repository has several million lines of code in the trunk. The product is used by hundreds, maybe thousands, of people every day for critical tasks. Should we follow agile practices? Maybe. Fact is, we don’t, and it’s not a bad thing.
Many developers swear up and down over agile methodologies for developing software. In many respects, I agree with that mindset. Obviously there are always benefits to both sides. In my opinion, a large portion of the reasoning in which methodology to adopt lies in the industry you serve. Take the financial business for instance; does it make sense for weekly iterations with online banking software? Again, maybe, but I lean towards no because of the risk involved. What about mission critical health care systems? Same idea.
Now, you may not be agile in your deployment cycle in these industries and that’s understandable. But, you can certainly follow agile practices in your internal development cycles. Instead of pushing weekly iterations to production, push them to your QA or staging environment. You can still follow the processes of continuously integrating your work with your peers. You may not push to production every week, but your stakeholders might need to be involved in the process so you don’t get too far down the wrong path. In both of the industry examples above, do you think the teams could benefit from weekly iterations to a testing environment? I hate to say it again, but, maybe.
I believe that having daily meetings, pushing for progress in small steps, and developing features in isolation lead to a more refined development team. Doing these things reduces the amount of wasted cycles, keeps developers pushing forward, and helps them see progress with small steps of success.
My takeaway from this is to evaluate your needs, project environment, and industry. Every situation is different and a single methodology doesn’t work for each instance. Find ways to boost team morale and keep the project moving forward.
