Agile programming is a new way of working on IT projects, the client is involved in each step and the risk of delivering something not expected is minimized and the costumer will get the product it really wants.
Can we apply it to all projects? In my experience there are cases in which is very difficult to apply it, expecially if a project it is already started or the requirements are very strict and cannot/won’t be changed. In this scenario an Agile approach can be applied but it won’t improve the overall result.
Scrum is an efficient way of applying the agile methods to a project and it is being used by several years with excellent results. Using this method the team is aware of what each developer is doing and the collaboration is key to avoid misunderstandings that can lead to unexpected bugg.
For example if one module is developed by A and the output of this will be processed by a service developed by B, it is very important that in all the phases of this process the two developers will have a clear understanding of what they are doing.
Scrum will improve the communication between the team and the knok how will be shared in the team, this will result in an improvement of speed and quality of the final product.
The goal of each developer should be to write long lasting code, that is roboust and reusable, to achieve this it is critical to share with other collegues each step of the projects to get a feedback and prevent bad decisions that will have a high cost if they will be applied.
I am following now the course Long Lasting Software: an Agile approach using Saas and Cloud computing, of University of California, Berkeley, it is a great course and gives depth insights on the right approach to use when dealing with any kind of IT project.
I am using a tool that helps me to organize my projects following an Agile approach, it is FREE and Cloud Based, it is called Team Time Log, you can give it a try.