FRAMINGHAM (01/22/2004) - One of the hottest topics in IT is offshore application development -- and you'll be hard pressed to find anyone without an opinion on the topic: from the IT worker who fears losing his or her job to the corporate executives who talk about the possible cost savings. Most of the focus of the debate has been about the cost savings. My question is, cost savings compared to what?
Maybe it's time to compare apples to apples. Here's an example of what I mean. I recently attended a government procurement conference sponsored by my local Tech Council. The final session of the day was a panel discussion about offshore development. The panel members included a business development manager for a U.S. company that provides offshore development services; an attorney for a state agency; and two IT directors for state agencies that have used offshore development services.
The business development manager -- who used the forum to highlight most of what he perceived to be the positive aspects of using offshore services, like cost savings, quality, etc. -- spoke at length about how having a stateside presence is critical to the success of any offshore project. He also pointed out some of the negatives -- security/privacy, cultural issues, etc., most of the common things people talk about.
Next up was the attorney for the state agency, who presented his thoughts on what to consider when looking at using offshore services, legalities like contract structure, intellectual property, warranties, insurance and data system access. He spoke about data privacy concerns as well as intellectual property from an international law perspective, such as which countries' laws govern the IP of the software.
Finally, the IT directors from the two state agencies spoke about their experiences, and both were positive. The first spoke at length about the cost savings, estimated at about 25 percent, and the schedule reduction -- or the time to develop -- of roughly 30 percent. The second director echoed the comments of the first and reiterated the importance of good project management as being a key to success.
As the discussion moved along, I got more and more frustrated by the lack of balance on the panel. At the conclusion, I approached the two directors of the state agencies and asked them a very simple question:
"What development methodology did you use prior to using offshore services?"
Their answer: None.
I asked a second question: "You mentioned the importance of a full-time project manager. Have you always used a full-time project manager on your projects?"
Their answer: No.
There I was, speaking with two IT decision makers who sent jobs overseas. They had just sat in front of a room full of people and talked about the cost savings. I think this was a disservice to the debate as a whole.
I am not a protectionist. In fact, I feel protectionism is wrong in any form. But, sending jobs overseas is not the only answer if you want to reduce the cost or increase the speed of application development. There are so many things a company can do improve the overall chances for success of a software development project. Here are some of them.
Methodology: Any methodology will help you lower the cost of application development. Some may be better suited for one organization over another, but developing applications without a methodology is like running a business without any processes in place. Going into detail about any specific methodology is outside the scope of this article, but since cost, quality and time to market are universally appealing, I would suggest looking at one of the Agile methodologies, like Extreme Programming.
Component Based Development: typically, applications are built in a "make-to-order" fashion, where every application is built from the ground up. CBD helps facilitate "assemble-to-order" development, where applications are assembled from a library of pre-built, pre-tested components. Experts have proven that CBD can lower development costs by as much as 60 to 70 percent and reduce the time to market for applications by as much as 30 to 40 percent. In the interest of full disclosure, CBD is not inexpensive. There is a cost associated with building or buying the components. The math is quite simple; the cost of acquiring or developing the component versus how many times and in what context the component is used. The return on investment is measured in months and years, not days and weeks. Over time, as more components are added, the inventory becomes useful in real terms from a cost saving standpoint for all future application development. In other words, the more you use the components, the more money you save.
Standards: Whether it is a common set of tools, architecture, or both, having standards helps speed the process of application development. If nothing else, standards provide a common glossary that enables project team members to speak the same language. In addition, standards facilitate bringing on new team members more rapidly.
The following story illustrates some of these points:
During the keynote speech at the Third International Conference on Extreme Programming (a software development methodology) in 2002, Jim Johnson, Chairman of the Standish Group, told an attentive audience the story of Florida vs. Minnesota as they each developed their Statewide Automated Child Welfare Information System (SACWIS):
In Florida, system development started in 1990, and was estimated to take 8 years and cost US$32 million. In 2002, when Johnson spoke, Florida had already spent $170 million and the system had not been completed. It was estimated that the system was to be completed in 2005 at a cost of $230 million. Meanwhile, Minnesota began developing essentially the same system in 1999 and completed it in early 2000, at a cost of $1.1 million.
That's a productivity difference of over 200:1.
Johnson credited Minnesota's success to a standardized infrastructure, minimized requirements, and a team of eight capable people.
There are many factors that contribute to the success of an application development project -- by only focusing on the perceived cost saving of offshore, you may be missing an opportunity to build a staff capable of delivering unbelievable results like the team in Minnesota.
One final thought. An often-overlooked aspect of sending work overseas is the impact that it has on innovation, which, based on history, is truly the engine that drives the economy. The main reason that people don't think about innovation is that it is hard to envision and quantify. This is not a dollar-and-cents, balance-sheet-based item that is easily calculated. This is a long-term realization that is measured by improvements and revenue in the next three, five, ten or more years from now.
By sending jobs overseas, we are limiting the potential for innovation that employees acquire when working and gaining domain expertise in a company. When we decrease the number of people exposed to the challenges and issues that exist, we subsequently limit the opportunity for innovation. By limiting the number of technology jobs in this country, we diminish the appeal of the profession for people attending universities. The ultimate consequence will be that we will have fewer people with the skills necessary to deliver innovative solutions.
It is easy to look at the hourly rate of offshore programmers ($10-$20 an hour) and assume that Offshore Equals Cost Savings. However, as the saying goes, there's more than one way to skin a cat. As I've outlined, there are options available to lower the cost, increase the speed and improve the quality of application development besides just sending jobs overseas.