Infosys delivers concept-to-market software engineering services across the engineering value chain. Our blog will discuss the latest trends in software product engineering, outsourcing, technologies, and address business challenges.

« Defect Prevention in SDLC Phases | Main | Internationalization - Concepts of String Collation and approach »

Enhancing Productivity of the Internationalization Process

Staffing for i18n/L10n projects is normally done by bringing in people who have prior experience of Internationalization along with a team which is well versed in the technology underneath (Java, C++ etc). In these cases, there is generally the overhead of training the team on i18n and L10n concepts. Unless the whole team fully understands the Internationalization process, they will not be very productive. In the real world, it is almost impossible to get a perfect team which has good Internationalization experience in addition to the required technical skills. Also, with tight deadlines looming over us, most of the times it is not possible to invest a lot of time in training the team on i18n/L10n concepts. So the best way to execute the project is to improve the productivity of the team by using Software Productivity Tools and in turn enhance the productivity of the Internationalization process itself.

We were once working on a proposal to internationalize a few products for a leading Fortune 500 company. During the effort estimation stage, the plan was to estimate for the effort to internationalize the products by analyzing the corresponding source code. There were well over 10 million lines of C++ and Java code with only 3 days planned to complete the activity. In this kind of situation there is intense pressure to finish the work on time. In addition, one also needs to ensure that the analysis is accurate enough to enable an effort estimate which is realistic enough for the development team to finish the project. Deadlines are tight and there are unrealistic expectations from the people doing the exercise. In such scenarios, the productivity of the team can be enhanced by making use of Software Productivity Tools specifically designed for i18n/L10n projects.

These Software Productivity tools remove most of the manual effort that developers have to put in during i18n analysis and increase their productivity multiple folds. A typical i18n exercise generally consists of line by line analysis of the code to check for hard coded strings, non-Unicode APIs etc. The code size can run into millions of lines; which makes it practically impossible for a team to complete this activity manually. In fact, doing the analysis would be an entire project in itself. i18n static analysis tools automate this activity by scanning the entire code and generating reports which clearly segregate the hard coded strings and areas of the code which are not i18n aware. The tools can also give information on the number and usage of non-Unicode API's and data types, date/time formatting etc. This activity, which usually would have taken days to complete, can be done in a few hours. In addition, some tools also provide options to make changes to the code by automatically moving all hard coded strings to a resource file, substituting non-Unicode APIs and data types with their Unicode equivalents (depending on the target encoding) etc. By taking care of the low level activities involved during the internationalization process automatically, these tools enable developers to focus in improving the product quality by working on more specific issues.

At Infosys, we use an in-house developed i18n tool which automates the entire process of analyzing the source code for areas which are not i18n aware. The reports which are generated, help in the effort estimation exercise, product analysis, design and testing. A rule engine allows developers to set specific rules for code analysis in order to get reports based on the desired encoding to be supported, additional functions and keywords, filters etc. Multiple projects have benefitted by using the tool; which has helped in increasing the teams' productivity, accelerating product development and in turn ensuring faster and quality deliverables to customers. Currently the tool supports C/C++ code and is being enhanced to support a variety of programming languages like Java, C# etc along with better features in order to enhance competitiveness  as compared with some of the commercially available tools

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/apps/mt-tb.cgi/3184

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.