Agile, anyone?
For those of you that are not Agiled, you are really missing out on something. Agile development/process came into existence quite sometime back and it took me quite sometime to really understand what all it offered but now I am totally into it, realise all it's benefits and can recommend it to one and all!
It can and should be customized to your needs just as its name suggests. Being Agile is to adapt and adopt the Agile methodologies to your software development process. Ummm..I will differ on that. We are not just talking about the software dev process. Software Project Management would be equally benefited from Agile.
Agile methods are a family of development processes, not a single approach to software development. They may not be panacea although I would like to say that some practices can be accommodated irrespective of what platform, language you are on or the size of the team. An instance of that would be continuous integration on the development side. Continuous Integration is a very active process and believes in giving developers clear and constant feedback on their coding changes. Lots of other aspects can be integrated with this, for instance acceptance testing, code coverage, complexity reports, unit tests blah blah. I see the major benefits from CI and Unit testing.
Project Management practices like continuous feedback to the customer through frequent demonstrations is another thing that could be followed by every project. The best thing about this is that the customers have a say in what they want and what they don't and get their most critical components built first. This will enable them to cut their time to market and will allow them to release features in a phased manner. Basically, they have more control and are writers of their own destiny!
There are many other aspects that I am in support of like story points, standups, less documentation but I feel that one should moderate the use of these and not let them slip out of control!
All in all, I see many benefits of using the Agile process (much better than waterfall and RUP processes) and see it as the direction most of the development should move towards. I have heard of people say that to see Agile thrive, co-location is required but I really have to negate that. I feel the best part of Agile is that it helps a lot when co-location is "not possible", just by the nature of software projects these days (most of them technically outsourced and functionally here). The whole process is conducive to remote management and surely gives the resources of the project a feeling of belonging! There is a lot of knowledge sharing and a meaning to development! Go Agile!!!