You must have heard all kinds of theories on the state of offshore software development by now. Maybe you have experienced it firsthand? I believe the offshore software development discussion, learning opportunities and evolution will continue for some time. It is one of the reasons I created this site: Flat World Software Development.
Most often this site deals with the here and now of offshore software development. It intends to provide an environment for immediate reference and community exchange. In this post, I’d like to tell a story on the evolution of value in software development. It is a fictional, but it is based on true events. I’m curious to hear your thoughts. Here’s the story….
In the not so distance past, a web development company determines there is a market need for pure backend software development services. You know, not user interface design, not usability testing - just functional programming. Their clients often say something similar to: “just program the functionality please - here’s what we want it to do, now make it work”. The client doesn’t particularly care if it is Smalltalk or C or C++ or .Net or PHP or Java or ASP or TCL or PERL or Ruby on Rails or New ShinyLanguage. They just want it to work and and work well in their environment.
One day, web development company receives a request for proposal for a new client software development project. For this particular project, web development company creates a proposal based on resources of one developer architect and full-time employee(s) and/or one local software development programming contractor(s) to produce the software. In order to determine the proposal price of the project, development company looks at essentially two factors: perceived delivered value and operational cost. For value, the web development company is essentially delivering on two points: strategic design of “functionality” from the software architect and tactical implementation of the programming language/code. Also, included in the price of the project are applicable operational cost factors - monthly office space rent, employee salaries, contractor hourly rates, phones, internet access, insurance, etc.
Proposal Cost = $xyz
Client accepts and everyone is reasonably happy. Time rolls on, spring arrives, the sun shines, leaves turn colors, it rains, it snows.
Now, if web development services are inline with most other types of businesses, project fees should decrease over time. Not fall like the rain, but essentially the same service costs should decrease over time. Right? Simply put, client should expect to pay less than $xyz in a year from now for the same type of service. Notice this expectation has nothing to do with software quality determinations or h-1b visa or offshore software vs. inshore vs. rural source. There is an expectation from client that costs should decrease over time.
Now, if the paying client expects prices to decrease over time, something has to give for the web development company. Perhaps, the web development company needs to lower operational costs or promote an alternative, more cutting edge technical solution to keep project fees the same. (Selling the latest b/leading edge technology without significant increase in functional value just to maintain rates to clients is unethical and is partly the fault of the client for buying it. It is also a different topic entirely.)
To cut operational costs, web developer company decides to keep arcitectural design in-house and offshore the tactical development.
Cost = $xyz * .35
Cost is 35% lower and the client accepts the proposal.
Client wins- web development company wins - offshore software developer(s) wins. Win * 3. So, who doesn’t “win”? Frankly, the person who is at risk of negative change is the one who doesn’t see evolution trend the software development value chain. In this story, it is the developer who refuses to see offshore software developers as a viable option for tactical level programming. In this story, the local tactical programmer’s value is decreasing when web development company is attempting to “win” new engagements. It follows a similar trend line to the the client’s expectation of lower cost over time.
Now, hopefully, there are many openings to discuss this story on all kinds of levels. For example, a point could be made that web development company could focus on providing education resources to local tactical developers. This will increase skill sets which should lead to development time savings. Time savings implies lower cost. Or, client should not expect prices to lower over time or this story is based on waterfall development process and doesn’t jive with XP or Agile or suggesting software modelling tools to generate tactical code or somehow fit the old build vs. buy talk into the mix. But, I’ll leave these and many more openings to you. I attempted to write the story from an unbiased perspective, because I’m interested in hearing your thoughts. Leave comment or trackback with your thoughts.
PS - Check out the Cynosural blog from JosephDP who has some interesting posts regarding offshore software development.