When we begin a new project, the number one priority is to understand the client’s requirement, and identify resources for that. Now traditionally, the client will provide a document stating all the specs, and we as a team will try to identify the system requirement, capability of the resources and the business context. Also, we will work on the design phase, where we create modules and architectures etc. But often, clients are not involved in this and later on when the requirement document is submitted, often the market dynamics have changed or the clients’ specification change. Also, because a significant amount of effort would have already been spent in identifying requirements, hence encompassing too many changes will not be entertained.
To avoid this entire hassle and make lives easier for everyone, AGILE was developed. It focussed very strongly on Customer interaction, so that customers feel accountable and hence provide early feedback, so that changes can be incorporated quickly. The basic philosophy of Agile is to embrace change, not resist it. And it also advocates embracing planning, not a plan. What it means is that within Iteration, the teams are allowed to tinker with an existing plan as per the priority of the customers, but no additional feature can be added to a given iteration.
Another reason why more and more companies starting looking the Agile way was the huge cost savings that resulted due to less bugs and less rework. Immediate feedback was followed by implementation, smoke testing and demo, parallel integration with existing code as well. What this meant was that there was less possibility of committing a big error, which earlier used to cost millions and negative feedback as well.
The most important difference that teams realized that Agile would make is that features can be prioritised (within iteration) according to customers’ requirements. This is a delightful technique which will make the customers happy and appreciate the efforts of the development team. According to their business needs, their requirements can be prioritised.
Also, a lot of team members never participate in discussions and suggest improvement in a traditional method, as they always work in silos. But Agile advocates a collaborative approach wherein everything is discussed among the team members and everyone is in a way accountable for all the tasks. This also helps build transparency and trust among team members, and everyone tries to help others as well.
So, the above mentioned factors were primarily responsible for many organizations switching to Agile Methodology of Project/Product management.