Following the traditional norms of a Waterfall model when there are multiple projects lying in the queue, creates bottlenecks for team members at almost every position at some point of time in every organization. It, generally, creates large (or larger) backlogs which managers are unable to keep up with, beyond a certain range.
Practically, when business requirements for any project keep evolving (read changing), during and after the requirement gathering and development phases, holding onto one particular process with the hope of a happy ending to a project doesn’t generally, bring much fruition for a team or company/project. Most projects face incremental requirements irrespective of how much ever perfection might have been achieved in the requirement analysis phase.
We have been implementing CRM systems for some time now, including Dynamics CRM.
A global requirement of the users of a CRM application has been dynamism which demands easy and quick deployment of new functionalities to existing systems. This can be achieved either by deploying unstable new functionalities thus diminishing the credibility of the application and the company catering to it (too big a risk for us) OR being equipped to absorb such demands and deliver them in the least possible timeframe with the best possible quality, thus picking on Agile Technologies.
Apart from standalone CRM systems, a common demand amongst many industries has often been a tool which integrates CRM with a system already in use. Examples could be integration of CRM with accounting systems (like Visma) or resource management system. Generally, such projects bring along issues pertaining to data correctness, performance and usability which the user mostly cannot foresee during placing an order or requirement gathering phase; again, causing a need for a flexible methodology.
Multiple projects have been implemented by us where iterative development was a requirement due to progressive solution evolvements. Under such circumstances, although it was tough for us to follow any defined software model but we also realized that not following any process could lead to harmful consequences like poor quality and service and inefficient resource usage. Therefore, adding tailored-flexibility to traditional processes through XP Agile practices could ensure improved system quality and responsiveness. Amongst the defining characteristics of XP, the ones which we have extensively used are frequent releases in short cycles, simplicity and clarity in code, and frequent communication with client.
The point here is that while turning to Agile Technologies like Scrum, DSDM and XP etc can be beneficial to an organization as they release it from following one single methodology under every circumstance, an agile technology definitely does not refer to what is known as ‘cowboy coding’. Rather, they are modified processes (and not ‘No Processes’) which one can choose to profitably follow only on meeting certain conditional parameters like resources available and number of projects etc.