Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services...

23
Internationalization: Adam Asnes [email protected] +1.303.444.8020

Transcript of Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services...

Page 1: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Internationalization:

Adam Asnes

[email protected]

+1.303.444.8020

Page 2: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Engineering for Locale Support

• Globalization (g11n) has two components :

– Internationalization (i18n) : software engineering to

enable localization

– Localization (L10n): culture specific resources

(translation, etc.)

Page 3: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Lingoport

• Internationalization Services

– Assessment

– Project planning

– I18n development

– I18n testing

– Localization integration

• Globalyzer

– Internationalization software

• Find and fix i18n issues in code

Page 4: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

I18n is Business Driven

• Global initiatives

– Expanding opportunities, New customers

• Competitive pressure

• Lost time to market

• Iterative code fixing, problems keep slipping

through

• Development costs in the hundreds of

thousands to millions of dollars

Page 5: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

I18n Needs: Stakeholders

Our Software must be in

Japanese, French,

German, Chinese, and

Spanish by November

Multi-tiered application?

String extraction?

Database components?

Unicode?

Testing Plan?

Page 6: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Engineering:

Localization is a Downstream Concern

• “Somebody else’s problem” in the world of many

developers

• Creates an opportunity to educate and shepherd

teams through globalization

Page 7: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Is It Internationalized?

• Typically underestimate i18n requirements

• Most don’t know the answer

• Agile or other feature and release requirements

often overrun less formally measured i18n

requirements

• There is a Management Value in being able to

confirm global readiness

Page 8: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Internationalization Challenge

• Software Data Path - it’s not just the display

Display Input Transform

Store

Retrieve Transform

Page 9: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

I18n Architectural Challenge

Database Character

encoding

support

Application Code

e.g. Java, C++, VB

3rd Party Products

U/I

e.g. JSP,

ASP, ASPX

Business Logic

Platforms, Browser Support Requirements

Marketing Requirements Locale behavior

Page 10: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

I18n trouble spots – developer’s challenge

• Embedded Text &

images

• Character set support

• String Concatenation

• Date/time formatting

• Sorting & searching

• Currency

• Transaction process

• User Locale Handling

• Telephone formats

• Postal formats

• Region-specific functions

• Shipping conditions

• Numerical formats

• Page layout

• Reporting, workflow

• Database enabling

• Multi-byte enabling

Page 11: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Practical Challenges

• Sift through hundreds of thousands or millions of

lines of code

• Managing fixing complex problems

• Creating a product that looks, feels and behaves

natively to its worldwide users

• Source code must be adapted to seamlessly

adapt to any language, streamlining support and

updates

Page 12: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Operational Challenges

• Ongoing development

– Agile?

– Code Branching?

– Multiple teams?

Page 13: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Traditional Approach - repeat, and repeat, and repeat, and repeat

Localize and see what you’re missing

GREP, overwhelm developers

View pages. Pour through code for strings,

methods, etc.

Externalize and refactor one by one

Test, Pseudo-Localize

Page 14: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Globalyzer Server and Clients

Server

Client Command Line

Page 15: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Sample Internationalization Issues

Page 16: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Example: Hard-Coded English Text

1 million lines of source code Typically Found:

At least 40,000 Embedded Strings which cannot be efficiently translated

String orderStatus = “Your order has been

processed. A confirmation e-mail will be

sent to you shortly.”;

Page 17: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Sample Code (Java)

Page 18: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Example: Encoding Corruption

Attempted to add a Chinese Unit Name via an example ASP page

Page 19: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Release Path

• Internationalization,

1st Time

– Most of U/I

– Breaks the DB

– Data I/O

– Test entire product

• Feature Release

– 3 week sprint?

– Focus on code subset

– Concentrated testing

• Static analysis with

Globalyzer

Code branch, merge,

testing strategy

Page 20: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Catch Bugs Early!

Source: “Software Internationalization Tools and Solutions” - Xerox

Main

tenance

Localiz

ation

Testing

Codin

g

Arc

hitectu

re a

nd D

esig

n

Requirem

ents

30 x

15 x

7 x

4 x

2 x

Development Phase when an I18N bug is detected

Accepta

nce

Page 21: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Cost of i18n Bugs

• Cisco

– Most bugs found during L10n testing are i18n related

– Cost to fix

• After release and localization - $3500 per bug

• Before in testing - $200

Page 22: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Resource Hours per I18N bug

Avg # bugs per release

Avg product releases/yr

Avg Cost per hour

Cost

L10N Vendor

QA 1 25 60 55 82,500

L10N PM 1 25 60 45 67,500

L10N QA 2 25 60 45 135,000

Core QA 2 25 60 45 135,000

Core Eng 4 25 60 57 342,000

Total Cost/Yr

$762,000

Product I18N bug count

Release :

A 27

B 1

C 15

D 2

E 8

F 3

G 5

H 8

I 34

J 31

K 6

L 0

M 0

N 49

O 85

P 140

Q 46

• When I18N issues are discovered during L10N

testing, time is spent by 5 different groups of workers

•If we avoided I18N errors, we could save $762K /yr

•If we caught I18N errors at the source, we could save

$420K/yr

Cost of Fixing I18N Issues During Localization

Page 23: Adam Asnes +1.303.444 - Lingoport · 2009. 2. 9. · Lingoport •Internationalization Services –Assessment –Project planning –I18n development –I18n testing –Localization

Questions and Answers

Adam Asnes

[email protected]

Resources

www.lingoport.com

Whitepapers, newsletter & articles

http://i18nblog.com

You never stop internationalizing