Scott Ambler, author of books and articles on agile methodologies in software development, wrote an article in the May 2005 issue of Software Development magazine about his visit to offshore software development companies. He was giving a series of lectures on agile methodologies and outsourcing. He made some powerful arguments for why agile methodologies were more suitable for outsourcing than traditional ones.
In the area of business process outsourcing, especially offshore, there is currently a lot of interest in moving away from a full-time equivalent (FTE) model of billing (creating a team of agents for a business process and getting paid for the whole team on a time and materials basis). Many buyers and sellers preferred paying or getting paid by the transaction instead.
In both of these cases, over the long haul, agile methodologies such as agile software development and continuous process improvement may be the answers to long-term success, both for buyers and providers of these services. Here are some reasons why.
For anyone outsourcing or offshoring, even for the first time, agile methodologies may be a better fit than traditional ones for getting things done efficiently and effectively. Invariably, the buyer and seller of outsourcing services have differences in the internal methodologies they use, whether for software development or business process execution. Agile software development and continuous process improvement offer the chance to make fine adjustments continuously on both sides to accommodate for these differences. Traditional methodologies in software development will almost always lead to fixed price contracts since the buyers of those services will insist upon it. However in the longer run, agile methodologies may provide them with a less expensive solution. This is because they may get a solution with more capabilities and a better fit due to the extensive feedback loops executed with frequent releases and testing.
Bridging Communication Gaps
George Bernard Shaw wrote, “England and America are two countries divided by a common language.” If that’s the case with England, you can imagine the differences in language between the United States and India or the United States and the Philippines! Add to this the differences in time zones, culture and work habits. Communication becomes a major bottleneck. Agile software development ensures that frequent releases bridge these communication gaps quickly. If you have a requirements gathering and design phase that runs for six months, it may be too late for gaps in communication to be fixed before software development starts. Continuous process improvement and lean Six Sigma efforts — when combined with outsourcing — enables bridging the communication gaps quickly in business process outsourcing.
Perfection Is an Iterative Process
Whether it’s software development or business process outsourcing, when two disparate organizations work together, success can be achieved only iteratively with as many feedback loops as you can design into the effort as possible. Agile software development and continuous process improvement offer both buyers and sellers of outsourcing services the opportunity to achieve perfection iteratively. Continuous process improvement embodies the Plan-Design-Collect-Act (PDCA) cycle of iterative process improvement.
Service providers can move to using agile software development methodologies or billing customers on a transaction basis only if the sellers of these services aren’t just executing a project or process but building expertise in that area. If you have built banking software solutions for a number of banks, then the buyer of software development solutions may be more comfortable moving to a time and materials basis and not insist on a fixed price contract. If you’ve processed mortgage loans for more than one company, then you have enough expertise to be confident enough to move to a transactional way of billing.
Responsiveness to Change
Software requirements change over time. Business processes are evolving everyday due to competitive pressures as well as changes in the law. If a new law passes providing debtors with more protection, suddenly bill collection processes will change or additional process steps will need to be executed. Agile methodologies are needed in outsourced software development to keep the development effort synchronized with changes in requirements. Traditional methodologies suffer when new requirements pop up. You have to document change requests and may have to renegotiate the fixed price contract. By emphasizing constant change and improvement, lean Six Sigma and continuous process improvement build an environment where change is expected and routine. If business processes change, these are the organizations best suited for responding rapidly and smoothly.
Building Longer Term Partnerships
Building a partnership with your software development service provider makes it easier and better the next time you have another major software development effort come up. Your vendor may already have a lot of knowledge necessary for doing a good job on the new project. For the service provider, obtaining new business from an existing customer is always more efficient and profitable than dealing with a new customer. The same applies to BPO. If you’re already executing the claims process for your insurance industry customer, you may already have a lot of the knowledge necessary to execute underwriting business processes also. You may already be familiar with your customer’s communication styles, methodology approaches, etc.
Agile methodologies achieve something that is counterintuitive at first glance. You build things faster, but by doing so, you ensure better quality. This is only counterintuitive when you realize one of your own false assumptions: Taking longer builds quality! Agile methodologies address serious problems in ways humans communicate. They do this by allowing faster and quicker feedback cycles so that course corrections are made as soon as possible. Software quality is ensured in agile methodologies by the mere fact that you have more development cycles — and, hence, more testing cycles! Of course, with lean Six Sigma and continuous process improvement of business processes, the whole rationale is to improve them on all dimensions — speed, cost and quality — all at the same time. That’s precisely what makes these business processes agile!
Use of agile methodologies in software development and business process outsourcing is inevitable, particularly if the buyer of such services wants to optimize its resources spent on such efforts and the seller of such services wants to compete effectively against lower labor cost countries! There are a number of aspects about agile methodologies that contribute to this situation much better than traditional ones. Understanding how and why this is so can help you manage these efforts more effectively.
Scott Ambler’s May 12, 2005 Software Development/Dr. Dobb’s column, “Agile Outsourcing.”