Skip to main content

Benefits of Developing World-Ready Software

Technical Decision Maker

If you are developing software for a specific language market -- including English -- why not plan and develop software for customers worldwide? The benefits of developing world-ready software are many, including lower development costs, lower test costs, and lower customer support costs. When your software is world-ready, you can create new product versions in additional languages without needing to re-engineer or recompile the source code. In addition, the ease of updating world-ready software increases customer satisfaction.

On This Page

What is World-Ready Software?What is World-Ready Software?

Business Reasons for Adopting a World-Ready ModelWhy Develop World-Ready Software?

How Building World-Ready Software Benefits Business and CustomersHow Building World-Ready Software Benefits Business and Customers

How to Build World-Ready SoftwareHow to Build World-Ready Software

What is World-Ready Software?

At the core of world-ready software is a culturally neutral code base that supports users worldwide. This is accomplished by taking the following steps as you plan your software product:

  • Building a single binary version of the code base that is identical across all languages.

  • Supporting Unicode as the encoding standard for storing and representing characters, culture, and market-specific features.

  • Removing all hard-coded strings, constants, and localizable elements from the source code, then storing all localizable elements in satellite DLLs or other types of files.

  • Designing the infrastructure so it supports linguistic and cultural needs (e.g., keyboard/input method, fonts) required by users.

  • Making the software extensible to allow the customization of your product that look and feel as if the software was designed just for that specific customer.

To highlight the dramatic results that can be achieved by committing to and working toward world-ready software, the following table compares the shipping schedules of localized Windows 2000 and Windows XP versions after the English versions were released.

LanguageWindows 2000 -- Number of days after English releaseWindows XP --Number of days after English release
Brazilian Portuguese4320
Chinese (Simplified)4321

Top of pageTop of page

Why Develop World-Ready Software?

A world-ready software infrastructure supports a wide variety of linguistic and culture needs, such as different keyboards, input methods, and fonts required by users. Developing world-ready software results in substantial cost-savings and benefits for development, testing, and customer support.

All your language versions can be shipped almost simultaneously, which means your sales force can capture more revenue from these versions.

Shipping one functional core binary to all platforms and for all different language versions significantly reduces your development overhead and costs. Conditional compiling is unnecessary. It is unnecessary to maintain separate source code bases and multiple development teams to support them.

Software updates are simpler because service packs and patches can be applied to all languages with no additional engineering effort. Global Information Technology (IT) departments only need to deploy a single service pack instead of many different versions.

Top of pageTop of page

How Building World-Ready Software Benefits Business and Customers

Building world-ready software allows you to take advantage of its many benefits to your business and customers, including the following:

  • Culturally neutral

  • Localizable

  • Lower development costs

  • Lower testing costs

  • Lower product support costs

  • Increased customer satisfaction

World-Ready Software is Culturally Neutral

Culturally neutral source code is the key prerequisite for creating world-ready software. This means that all language editions share the same core source files. Maintaining separate source files for different language editions of the same product is error-prone, a waste of time and disk space, and unnecessary for code that has been made world-ready.

World-Ready Software is Localizable

Localization is the translation and adaptation of the software to a different language than the one in which the software was originally developed. When hard-coded strings and constants have been removed from the code and the localizable elements of the project from the code have been isolated and stored in resource DLLs, it becomes relatively easy to hand off these files to localization vendors to perform translation.

As an example, Microsoft greatly improved the international features of its products by steadily removing locale-specific functionality and localizable resources from the source code. As a result, key Microsoft products such as Windows XP, Office System 2003, and others are based on a single source code, rather than a different code base for each language or market.

The following graphic illustrates the convergence of the source code to a single world-wide binary for Microsoft Word.

Illustration of the gradual convergence of localized versions of Word into a single, world-ready binary.

World-Ready Software Lowers Your Development Costs

Creating world-ready software requires an initial investment and a change in development processes. First, it is important to develop a plan for the product features and then identify how these features are valuable to users around the world. As you plan for international support and how to build it into the core of the product, using Unicode as the standard encoding to represent and process data will make this possible.

By developing source code that is identical across different languages and supporting Unicode as the encoding standard, your software will support most of the world’s written languages (and some that are not so widely used). Supporting Unicode means you don’t have to worry about the character set or the language of the data being sent or received by your software program. For encoding conversions, cultural data such as currency and date formatting and sorting order, the software can take advantage of international services, APIs, and classes offered by Microsoft Windows and .NET Framework.1

The net result is that the world-ready code does not require recompiling when creating localized editions of your software program. Very large programs take hours to compile, even with powerful processors. Building debug and non-debug executables from scratch for each language takes significantly longer (unless you buy a number of expensive machines) and requires large amounts of disk space.

If you are developing for other platforms, it is important to make sure your software program has all the features necessary to be valuable and usable in multiple markets, languages, and cultures because they may not support all possible kinds of language-specific operations.

World-Ready Software Lowers Your Test Costs

When software is developed so that each language version has its own code base, testing requires human, technical, and financial resources. These resources are multiplied by the number of planned languages. Each language version of the product requires a 100% test pass because each one may behave differently or include different features. For example, the spellchecker in word processors is a feature for English and most European languages, but does not apply for Chinese or Japanese.

As an example, let’s say you need to test English, Japanese, and Arabic versions of your product. To do so, you must hire testers with both technical knowledge of the product and linguistic skills in the target languages. You will need test automation tools for each different language version. Defects found by these testers may compete for the time of a single development team, which means that managers will be burdened with additional communications and potential conflicts. As the shipping date approaches, the pressure on test resources grows. Once the product ships, many of these same test resources become redundant, which may result in staff reductions.

Testing the product code is much easier with a single binary version of the code base that supports Unicode encoding for storing and representing characters, localizable resources in satellite DLLs, as well as cultural and market-specific features componentized outside the core product. The code base is capable of handling any supported language’s data. The system recognizes any character represented by Unicode encoding and handles any errors consistently regardless of the actual language of the data.

The testing process also becomes more stable and sustainable, as you do not need to add testing staff, and then reduce it according to shipping cycles. You can retain an experienced test team that has gone through several product test cycles and is deeply familiar with the product’s core functionality.

To test language-specific and market-specific features, tests can be automated or outsourced to vendors who have specific language skills.

World-Ready Software Lowers Your Customer Support Costs and Increases Customer Satisfaction

A single world-ready code base can potentially reduce the time and effort needed to ship minor updates such as patches to fix bugs and vulnerabilities in shipped products. This increases your product’s security and reliability, thus increasing customer satisfaction.

Top of pageTop of page

How to Build World-Ready Software

For complete information on how to build world-ready software, see the following reference:

1In addition to Unicode, complex script languages like Arabic, Hebrew, Thai, and Hindi also require contextual shaping and layout for proper display. The Uniscribe engine in Windows XP and Windows 2000 is responsible for rendering complex script text.

Top of pageTop of page