Path toward Disposable Outsourcing: S/W Development

There are many very important aspects of SDLC related to s/w development activities which should be implemented whether you outsource or not. Some of them are essential to DOM. Your intermediary whether internal or external must verify that these steps are taken and not just as a checkmark on a  SDLC compliance list, they have to be made consistently and to a degree that satisfies the intent.

The first is the code standards. Of course following language naming conventions goes without saying; there are a few more standards that have to be diligently followed:

  • All names are in English (classes, variables, methods, etc.) ALL
  • Sufficient level of comments, of course in proper grammatically correct English. Developers must understand that they are not required to write essays; they just have to get comments to unambiguous level.
  • Same applies to headers, check in notes, etc.

Next is the documentation. Creating the documentation that could be used to learn about the code and its intent, that doesn’t lose concurrency and go stale, and that doesn’t cost you an arm and a leg is not a trivial exercise. As a matter of fact a detailed design / technical design documentation is one of the most controversial topics in s/w development methodology. In a large degree the documentation’s level of detail depends on the SDLC model employed. In particular the level of documentation details digresses considerably with level of agility of the process. That is often exacerbated by a low level of maturity of organizations electing agile methodology. I do not want to get too deep into this topic at this point, just want to point out several mandatory elements:

  • High level functional and technical design documentation.
  • Functional and technical design documentation at detail level, specific artifacts depend on SDLC methodology, type of the project, rate of change and many other organization specifics.
  • Comments in the code written in a standard way that allow JavaDoc or similar tools to generate meaningful documentation is one of the most important steps. Same goes for DB schema.

A couple relevant notes here:

  • Waterfall style processes with their high degree of details in documentation, staged delivery and isolated hand-offs work naturally with DOM, in particular when the vendor offers a higher level of CMMI maturity.
  • Agile methodologies work exceptionally well DOM unless they are taken superficially. That becomes particular clear in attitude towards documentation. It’s amazing how many times I heard things like “we run agile development process, so we do not do the documentation”, never from anyone who understands agile though.
  • In order to define an appropriate level of documentation for your process you need continuously evaluate value of documentation for the process and for execution on DOM vs. the cost of producing and supporting it.

Next, in no particular order some of great development practices that have been proven to work under broad range of models from clean room waterfall to XP:

  • Unit Test written before the code, at best taken all the way to Test Driven Development. Take a look at www.testdriven.com a site with a lot of good references by Eric Vautier and David Vydra.
  • Continues Integration. There is a plenty of info on CI and supporting tools. In CI builds I strongly recommend include smoke tests, subset of unit test suite, and a number of management reports. CI scope is typically different for check-in runs and nightly builds.
  • Code Review. Somewhat controversial technique which might backfire if not performed properly; I would strongly recommend using tools to facilitate code reviews, in particular I suggest crucible.
  • Frequent progress reviews with live demos; I recommend at least bi-weekly.
  • Collective Code Ownership (CCO). There is however a plenty of controversy associated with this practice, in particular accountability. I see huge value in eliminating blind spots which CCO offers and recommend introducing “feature” or “area” lead. Under that model CCO still is taken to full extent when it comes to work unit allocation and yet there is a single point of contact for each “area”.

Outsourcing in the Light of Bribe Payers Index

Have someone offered you some funny smelling incentive package to close an offshoring deal? You may not be alone…  I just run across an interesting article, not specific to offshore outsourcing but very relevant though. Bribe Paying Export Countries by Daniel Workman talks about some unusual stats – “The 2008 Bribe Payers Index ranks the likelihood of importers receiving illegal monetary incentives from leading export countries.”  Here are the highlights

Countries Most Likely To Offer Payola

Final results from the 2008 Transparency International survey rank export companies from Russia, China, Mexico and India as most likely to bribe.

1. Russia … 5.9 (33% more likely to bribe than Canada or Belgium)
2. China …6.5 (26.1% more likely)
3. Mexico … 6.6 (25% more likely)
4. India … 6.8 (22.5% more likely)
5. Brazil … 7.4 (15.9% more likely)

Countries Least Likely To Grant Illegal Incentives

The BPI survey ranked Canada and Belgium as home to exporting firms perceived as more ethical and therefore apt to avoid illegal payoffs.

1. Canada … 8.8
2. Belgium … 8.8
3. Switzerland … 8.7 (1.1% more likely to bribe than Canada or Belgium)
4. Netherlands … 8.7 (1.1% more likely)
5. United Kingdom … 8.6 (2.3% more likely)

See more figures and supporting material in the original article TI Report: Emerging economic giants show high levels of corporate bribery overseas.

Outsourcing L10N, G11N and i18n

Just read an interesting article somewhat related to offshore on China success stories; while widely promotional and hardly unbiased that site offers great insight which could prove invaluable to those planning to outsource to China. The article Mind The Gap – Localization in China is about localization (L10N using common development lingo) and in particular soft and political aspects of it. “Localization is the process of adapting software for a specific region or language by adding locate-specific components and translating text, and it is further revised and expressed as “A process of planning and implementing products and services so that they can be adapted to specific local languages and cultures”. Yes, L10N means both linguistic accuracy and cultural fitness, the latter is even more important.

I believe that localization, in particular in web world, is one of the areas which could be easily outsourced. It is also one of the rare areas in s/w development which is almost always better off to be outsourced. However, far not anyone who claims to have experience in localization makes a good partner. There are multiple aspects of localization which require skills, knowledge and expertise besides just knowing language and culture.

Some things are fairly obvious – your localization partner need to understand technology and its impact on multiple dimensions of localization. Some are less obvious, for example, consider simple fact – Russian words take approximately twice as much characters than English, that will have it’s impact on the size of the labels and inevitably on screen layout, which ripples into serious impact on usability.

If you are new to L10N, G11N and i18n or even if you dealt with it to some degree you may find the presentation put by good friend and long time colleague Doug Kunz quite interesting…

Outsourcing Trends for ‘09

As I mentioned earlier in ‘08 – the Year of Predictions it’s difficult to not to yield the temptation of making predictions. First, in the uncertainty of today’s economy almost every one is looking for those; second, all of us with strong opinions on the outsourcing have some predictions at least in our minds; and third, personally I am very curious whether I can get any close to what ’09 will eventually show…

Being new to the fortune telling market I have been considering cold reading techniques, the art of creative vagueness, and audacity of stating the obvious. Those all seem like winning strategies and after some considerations I decided to use them all and present my predictions in a form of Outsourcing Trends for ’09, so here we go:

1. India will remain the leading outsourcing destination. How about that? Well, let me add at least something meaningful to this “discovery”. When it comes to India I expect:

  • a notable decrease in the rate of growth, I’d say mid teens to low twenties;
  • minor decrease in a market share;
  • consolidation with many casualties in the low end of the market;
  • improvements in quality of resources and general metrics of the services such as turnover ratio for top providers;
  • we will see a few megadeals mostly from the top tier vendors.

2. China will continue to straggle to grow its IT outsourcing offering:

  • there won’t be substantial growth in IT outsourcing, the figures at best reaching high single digits;
  • there will be some reshuffle of the top tier with some of the current leaders substantially giving up their position; my bet on the biggest loser is Freeborders;
  • the outsourcing for Japan will grow stronger, US business will grow at a lower rate.

3. Russia, Ukraine and Byelorussia will continue loosing their edge:

  • there won’t be any considerable growth in IT outsourcing, the figures will be in low single digits;
  • there will be no reshuffle of the top / second tier; a few of the current leaders will be responsible for the most of the growth figures; companies below second tier won’t show growth and many cease to exist; the big guys will get bigger and stronger, my bets are on Luxoft and ePAM.
  • the outsourcing for Europe will be responsible for majority of the growth, US business will grow at a very low rate.

4. Brazil, Argentina, Mexico will show some positive signs:

  • the growth figures in IT outsourcing will be in a mid to high teens;
  • formation of tier one will create a few prominent names with some companies really pushing for leadership position, in Argentina my bets are on Globant;
  • emerging leaders in LA market will build ODC in smaller or less developed in terms of outsourcing countries;

5. Supply of IT resources will increase across the world:

  • there won’t be any considerable growth in IT outsourcing in gross volume sense, the figures will be in low to mid single digits;
  • the new outsourcing players such as Egypt, Morocco, Nigeria won’t make any ripples or bring anything substantial to the market just a few 100K of additional resources that will play in the low end of the market;
  • while overall number of IT resources will go up, the rate of growth will go down, with less interest in the IT arena across the world;

6. IT outsourcing volume from US, UK, Germany, Japan, and other large IT consumers will grow at very low pace:

  • there won’t be any considerable growth in IT outsourcing in gross volume sense, the figures will be in low to mid single digits;
  • there will be however increase in percentage of work outsourced across the industry;
  • geographical pie chart won’t change dramatically yet it will show more aggressive outsourcing to new destinations and nearshore.

7. ’09 will be a buyer’s market:

  • Closing new deals, renewing existing and retain current customers will become increasingly more challenging; companies that do not invest in “farmers” and solid account management will pay for that dearly.
  • The price wars and cost pressure will affect everyone; boutique shops with typical sales pitch “we do not compete on price” or “we are not the most inexpensive but we have excellent people” will need to adjust their message or get ready to face dwindling revenue stream.
  • Vendors catering to small companies need to be ready for a wild ride, especially in the first couple quarters of ’09 – many contracts will broken, payments delayed, AR will grow and cash flow degenerate; even “good clients” will develop hearing problems and it will take much longer for US mail to deliver checks.

8. Rates on average will fall slightly or stay the same:

  • the disparity in rates among offshore destinations will narrow: rates from Asia will grow while Latin America and Eastern Europe rates will fall;
  • the average ratio of US “full time” rate to Offshore rate will slide notably;
  • the gap between freelance rates across the world will continue to narrow.

9. One of the most interesting trends with some tangible events will come from top tier vendors going outside of their native land:

  • The trend will be led by Indian outsourcers building ODCs in Asia (other than India) and Latin America. I would expect top destinations being China, Philippines, Brazil, Chile, and Mexico in no particular order.
  • There will be some moves in opposite direction, e.g. China companies opening centers in India. The volume of those would be rather small.
  • We’ll see some promising cross country hiring, in particular in sales and executive roles; this activities are likely for many vendors even outside of top echelon.

10. Engagement structure, contracting approaches and model usage will generally remain the same with a few emerging trends:

  • We will see more large corporations with substantial offshore engagements buying those engagements from the vendors. Some companies will execute of their BOT strategy, some will approach vendors with “offers they can’t refuse”, some, especially smaller companies won’t be too generous and would cut the relationships without giving much warning.
  • The new contracts will become more complex and will aim for accounting for currency exchange volatility, political instability, changes in standards of living, etc.
  • We will see more usage of Disposable Outsourcing Model mainly driven by readers of this blog.

Well, that is a lot of trends, and some are neither sufficiently vague nor 100% obvious. We’ll see how well the world of outsourcing performs on a challenging task of meeting my expectations. The trick is of course will be in measuring the performance versus my objectives… Some of the stats should be available in late ’09 / early ’10, some would be very difficult to find, I guess I will run some polls or try other bullet proof methods of gathering BI…

’08 – the Year of Predictions

End of year is usually also the busiest time of the year… unless it’s 2008. Moving deals across the finish line, inking contracts, pushing code into production to meet contractual obligations and milestones, writing employee performance reviews … there are fewer of those this year. Well, many of us are still extremely busy, it’s what we are busy with is a bit different. Some update their resumes, some dive head first into networking, some pull out dusty crystal balls to become fortunetellers. I would say this year could be called the year of predictions, at least it feels like everyone either making those or looking for them, even though we all know the value of predictions we just can’t yield the temptation. And it’s no surprise that when I am looking in my immediate neighborhood in the blogosphere I see some great posts in one or another way linked to predictions:

Phil Fersht offers an interesting high level forecast of trends in his Horses outsourcing predictions for 2009 with some interesting thoughts with very clear messages – Survival of the fittest. Let’s not beat around the bush here… we’re in for a very tough economy, budgets are being cut across the board and companies won’t be increasing their spending on IT and business operations.

James Wheeler in his The Dao of Outsourcing tells about how Chinese software services revenue predictions fall short.  Here is just one of his observations – ‘02 Gartner prediction of the software services revenues for 2006 from China with 0.6 probability – $27.1 billion, reality – $12 billion…

Dean Stevens does something completely unusual – ranking his last year predictions. He got 46 out of 100 which he is not impressed with “Not so good, hunh? I both underestimated the severity of the global slowdown, and overestimated the progress that Chinese vendors would make this year. Sigh…” Well, as far as I am concerned that’s amazing considering the rollercoaster we’ve seen.

Jamie Liddell offers a great sentiment on value of predictions in his The Perils of PrognosticationWho could have foreseen only a year ago that by the turn of 2009 we would be living in a world where the US president-elect was an African-American with the middle name “Hussein”; where several western governments – including that bastion of economic liberalism, the United States – had effectively nationalised major financial institutions; where oil prices would stand at the end of the year at effectively one-third of what they were halfway through it; and where Oprah had finally turned her back on dieting for good?

Well, whether it’s a right thing to do or not I guess I will jump on the bandwagon of predictions and do my best as well, in a separate post though.   And I will be happy if I can get close to 50% by the end of ’09.

Steps towards Disposable Outsourcing

If you imagine a graph representing extended cost of outsourcing (cost that includes your out-of-pocket expenses and the internal cost associate with enabling outsourcing) over time you will see substantial spikes in the beginning and end of the relationship. Minimizing or eliminating these spikes is one of the goals of DOM, the first spike of course can not be avoided. The cost could be minimized or eliminated for the first spike on consequent engagements. There other benefits of the model related to quality of work, impact of staff turnover, and so on. DOM can be applied to many engagement models and by all means worth efforts you put in getting to it. Below are some of the best practices that help immensely in building outsourcing relationships in DOM manner.

General. These are some of the best practices which apply to outsourcing engagement independently of the content of the engagement, technology, and scope.

  • Multisourcing. The term is typically used when multiple vendors are used across engagements. The first, most important benefit of multisourcing comes from “the best tool for the job” model. A particular vendor can offer great services in .NET development while another company has expertise in localization, and another in security monitoring. In terms of DOM I recommend taking multisourcing to another level, specifically using multiple vendors for the same task, of course if the size of engagement allows. For example QA team of 20 people can be easily outsourced to two vendors.
  • Cross-sourcing. I have to admit – there is no such term and I can use some ideas on how to name the following best practice. The idea is to use different vendors on different stages of SDLC, for example development is done by one vendor and QA by another. The objectives here go beyond “the best tool for the job” model aiming for vendors keeping each other honest.
  • DOM Planning. You need to develop your plan for execution of DOM, in particular for engagement termination and switching vendors. Even very large initiatives and comprehensive long term engagements sometimes have to undergo drastic changes. The level of planning and complexity of organization that supports it depends on the size of the outsourcing initiative.
  • Testing. I mean testing the DOM itself, verifying whether your outsourcing partner is indeed disposable. It’s impossible to overestimate the importance of testing DOM. Compare it to a Disaster Recovery planning. You may have a great plan, offsite storage of backup tapes, backup generators, etc. and yet if you never tested the process when disaster strikes that will be a disaster. The generators won’t start, the backup tapes won’t restore, etc. An example of efficient testing could be using two teams on the same engagement (see multisourcing above) and switching the teams. And that can happen to anyone.  See Satyam banned from offshoring work with World Bank, and consider what World Bank had to go through.

There inherit inefficiency in each of these practices. This inefficiency is of the same nature as inefficiency of Disaster Recovery Planning. Why would someone invest in second data center, backups, etc.? Sorry for one of those “blindly dumb questions”. Just consider the expense and impact on the business a large outsourcing initiative gone sour could cause.

Methodology. There are many best practices that apply to the methodology and/or the process of product / service development which also contributes to building DOM. Using software development lifecycle (SDLC) as an example I would like to point out just a few:

  • Project Management Office and many PMBOK style project management techniques
  • Pragmatic approach to documentation – producing just enough of it
  • Templates and style guidelines across all development artifacts, e.g. naming conventions
  • Automated Build & Deploy, Continues Integration and QA Automation
  • Many techniques from agile methodologies such as Test Driven Development
  • Comprehensive for SDLC management such as requirements management tools
  • Wiki, MS Sharepoint, and other project collaboration and knowledge management tools

This list in a large degree falls out of the scope of this blog as it relates more to building solid sustainable software development process independently from outsourcing. I will cover some of the most important elements of it in a separate post(s).

Infrastructure. Similar to the methodology above there are many best practices that apply to creating efficient infrastructure for supporting outsourced activities that also cater well to DOM. And similar to the list above it in a large degree falls out of the scope of this blog. I will cover some of the most important elements of building outsourcing infrastructure in a separate post(s).

Disposable Outsourcing: Caveat Emptor

As any other outsourcing model Disposable Outsourcing has its pros and cons and there are a few caveats worth discussing. Probably the most important one is a role of intermediary.

First, intermediary is not mandatory it is one of the best practices. There are a few tangible benefits that middleman offers here, the most important being isolation: Establishing working relationship with each vendor is a unique process, take for example MSA, the likelihood is it will be dramatically different from one vendor to another, and even if you use your own template the chances are you would have to negotiate on different clauses. There are plenty of other activities such as setting up environment, associate interviewing / screening, security, etc. that would require a significant investment. Using intermediary shields you from many of those. Isn’t it very similar to using some of well-known design patterns (adapter, façade)?

Another important reason for having the intermediary is a conflict of interests: It is unreasonable to expect that a vendor would make itself dispensable, as a matter of fact most of outsourcing companies are known for being extremely skilled in making themselves indispensable. Intermediary specifically charged with a task of enabling DOM has a responsibility and vested interest in making it happened.

There are more reasons I’ll mention just one more– intermediary is critical in supporting you through the offshore enablement and transition. These activities even with help of the third party are very challenging. In many cases that support alone justifies using a third party.

Now back to the caveat: Finding a good intermediary is absolutely critical for making DOM work and it is not at all easy. There are a few big names in the industry which play this role, in particular IBM that offers resources from smaller companies all over the world via its outsourcing wing. In a large degree it appears to be the best possible combination, unfortunately it comes with IBM price tag, as well as with many liabilities of a large company. Finding a properly sized, reliable and competent intermediary is the most significant challenge of the model.

In case you can not find a good intermediary the best approach is to build the intermediary team in-house. That could be less expensive than using 3rd party. The main challenge would be finding people with appropriate skill set, experience and knowledge. Another challenge would be setting up the group in a way that it has the authority and flexibility to do the right thing.

Another caveat of the model is a very significant challenge of creating the processes and procedures that would enable DOM. That is especially serious challenge for small to mid-sized companies and companies with low maturity of the processes in CMMI or ISO sense. I will cover the main dimensions and steps of what it mean “get it right” in a separate post. To some degree the intermediary can be a great help in this process yet still the bulk of the load falls on the customer.

One more important caveat or should I say trap associated with DOM is complacency. As I mentioned running DOM creates positive energy, has many benefits, and gets vendor to perform better. So inevitably you see the vendor as a solid partner, not someone who ever needs to be replaced… and the model starts to deteriorate: cutting corners gets more aggressive, little issues accumulate (entropy always increases), and before you know you are tethered to the vendor and eventually at their mercy. The disposability is gone along with its benefits and the only thing you have left is a higher cost of the resources that you could have got in the first place. Again, to some degree the intermediary can be a great help in preventing this from happening yet still the bulk of the load falls on you.