Agile software development or Agile programming supports the evolution of the transformation process in the life cycles of software development projects. Agile also have a unique number of pros and cons.
Nhật Khang – Newspaper: PC World Viet Nam, Jan, 2011
Most of Agile methodology are aimed to minimize the risks by keeping the software development process to a really short time; a process called the redundancy step. The redundancy step is similar to a small software development project. It includes all of the necessary tasks for the software upgrading process. That’s why the rate of creative activities will be very high in each redundancy step although the results could be very different in each agile activity. It‘s goal is to fullfil the requirements of the customer or the software development team. The goals or requirements are indentified at each redundancy step
Based on the theory of traditional software developing methods (especially the water-fall model) the standard requirements rarely change in the overall development process and usage. However, in practice, especially on the internet working based environment, those requirements need to be changed much more rapidly. Therefore, the time factors can have strong impacts to the quality and usage. Moreover, in some cases, they need to redesign the whole structure of software development process to be suitable with the new requirement. In the time of Web 2.0, the applications on the Internet also are needed to evolve continuously to adapt with a variety demands in sharing information and community usage. The requirement of fast adaptation in the application also makes the Agile model to become more and more popular because of the evolution attributed to this change.
Another sector with a huge potential for this appllication in software management is the software testing industry. Testing projects are usually designed for many different levels or many different periods. The structure of the project is combined with the design structure of software testing. By deploying Agile methodology in each period, it will allow any testing unit to self check and develop software facilities much faster. Moreover, the transformation process happens continuously throughout the redundancy step to help the company create a software testing system automatically with many variations of the database. As a result, time and efforts of the implementation for software testing projects will be reduced significantly.
Wasting of resources
There is no methodology that can always be 100% effective. One of the critical requirements of Agile projects is that all team members must have the same high skill level in their abilities. They must have a high working aptitude and self disciplined to satisfy the requirements for personal creativeness and continuous development. Moreover, the offshore model will cause a variety of problems because of the differences in geographic locations between the project owner, customer representative, and the development teams. That’s why, to implement Agile successfully, the customer representative must work in the same location with the software development team. This person will have time to answer any questions immediately if any issue arises to guarranty the process is still on the right track. If the speed of creativity is fast but the response time is too low it could lead to a wastefulness inresources. Doctor Cem Kamer, professor of Florida Institute of Technology thinks that the biggest advantage of Agile is its ability to give and follow various ways of the development process. However, that ability could also become a disadvantage. “The wrong process will hinder many resources of the project and most of what’s wasted is time. When applying Agile methodology, we usually have to wait until the minor procedures (redundancy steps) tofinished to indentify whether our new method is suitable or not. Therefore, if a lof communication time is wasted between the offshore team and customer’s representative, the project’s implementation will step backwards. In practice if the customer is overseas, it will cause many difficulties in communication because of the large gaps between the time scale and geography. Therefore, this situation will render Agile methodology useless.
Difficult to apply in large projects
The experts in the software field agree that Agile is usually difficult to apply in large scale projects. Agile is not suitable for large software projects which contain a large number of team members. These large projects are usually get divided into many smaller scale projects that has a concrete structure and does not have place for a lot of mistakes. The software development team will also need a very high synchronized alignment with regards to the project’s vision and development strategy. These requirements will leave little room for creative ideas although it needs to get through many discussions to put the plan into practice. With these types of large scale projects, the offshore team will be a major part of the master plan which can be controlled directly by customers.
The above points are an argument against the attributes of Agile. It would be very difficult to manage a project with a staff in the thousands. Thus, these agile methods are suitable for mid-level or lower scale projects such as web application, phone applications, and off-shore software testing in or outside of the country.
Overcome the weaknesses of Agile Software Development
Michael Hackett, Sr. Vice President of LogiGear Corporation, software testing company:
“The offshore team that would like to apply Agile Software Development should have expertise, experience, good communication skills, inter-cultural understanding, trust and understanding between members and groups and with each other.”
Quang Tran, Prof. of Information Technology, RMIT Vietnam International University: “Requirements for customer representatives to work with a software development team is quite high. That person has to have professional knowledge, understand the project’s initial vision, and the most important thing is, must have the authority to make decisions.”
In the offshore model, if the project’s representative cannot be physically present to supervise or track the development team, he or she needs to be present at a fixed period of time everyday and communicate via mail, chat, VoIP, phone, etc… to answer questions immediately.