Creating a Plan for
Internationalization and
Localization
Tuesday, October 10, 2011

Adam Asnes                  Kent Grave
CEO, Lingoport              Localization Manager
adam@lingoport.com          Cisco Systems
@adamasnes
Lingoport

• Internationalization Services
  –   Assessment
  –   Project planning
  –   I18n development
  –   I18n testing
  –   Localization integration
• Globalyzer
  – Internationalization software
       • Find and fix i18n issues in code
       • Support developer teams
Globalization
• Globalization (g11n) has two components :
  – Internationalization (i18n) : software engineering to
    enable localization – Global Scalability
  – Localization (L10n): culture specific resources
    (translation, etc.) – Market Specificity
Nobody Globalizes Just Cause It’s Cool


• We love revisiting code we’ve already developed
  and paying tons of money to translators!
• Distracting from “Real Work”
Developers: Is It Internationalized?

• Most don’t know the answer
• Developers often underestimate i18n
  requirements
  – Just string externalization, right?
• 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
Organization Issues


• Lots to lose in time, revenue, costs, user
  experience and product acceptance when code
  isn’t well internationalized
• Few systematic tools and support for global-
  ready software development & Localization
• Development moves fast, teams can be diverse
  – Got Agile?
• Poor understanding of requirements
Internationalization is Expensive!


• After development         • During development
  – $100’s of thousands       – Incidental, but still real
    and more for serious        costs
    applications              – Processes
  – Must revisit existing     – Forethought
    code                      – Requirements
  – Months to years delay     – Measurement
Sobering Experience


• 1 million line app?
   – $500K+ dev 18n costs PLUS localization
   – 6 months? Much more? Big delays?
• When presented with i18n costs, timeframes,
  risk
   – Many projects die
   – Many postponed
   – Some companies fade away
Creating an actionable plan

GETTING ORGANIZED
Assessment and Plan Building


• What’s in code           • What’s not in code
  – Strings                  –   Requirements
  – Locale-unsafe            –   Locale Handling
    functions/methods        –   Data operations
  – Programming Patterns     –   Database schema
  – Static References
Traditional Approach                       - repeat,       and   repeat, and repeat,   and repeat




                               Localize and see what
                                  you’re missing




                                                          Ad-hoc scripts,
       Test, Pseudo-Localize
                                                       overwhelm developers




                                            View pages. Pore over
              Externalize and refactor         code for strings,
                    one by one                  methods, etc.
Maintenance of the i18n Process
     Maintenance of the i18n Process



                  STRING IDENTIFICATION
            QA                     Engineering

      Pseudo-Localization
                                         Go through QA report
  Going through each screen
                                    Sift through code to find non-
Identify which string is pseudo-
                                          externalized strings
           localized
                                           Report back to QA
  Report back to engineering




  LOCALE SENSITIVE METHOD IDENTIFICATION
       QA                   Engineering
Go through each screen,
file, report, checking for:              Go through QA report
Character operation                Sift through code to find Origin
Collation                                       of issue
Conversion                                Report back to QA,
Date/Time                                    management
File & Path
Locale and Character set




                                                                       2 weeks
Number Format                                                                    GLOBALYZER SCANS AND




                                                                                                                 Automated
Process control functions                                                             REPORTING
String operations

                                                                                     Scan, report & distribute


                        GENERAL PATTERNS
             QA                       Engineering

                                         Go through QA report
                                   Sift through code to find Origin
Go through each screen,                         of issue
file, report, checking for:               Report back to QA,
 Font                                        management
 Characters
 Database patterns




                     STATIC FILE REFERENCES
              QA                       Engineering

                                          Go through QA report
 Go through each screen,            Sift through code to find Origin
 file, report, checking for:                     of issue
  video                                    Report back to QA,
  images                                      management
  contracts
  html
  configuration files
Globalyzer Server and Clients

                                Server


Client                                   Command Line
Create a Plan


•   Tasks
•   Schedule
•   Staffing
•   Costs

• Requirements doc, assessment or best practices
  are not a plan
ONGOING
GLOBALIZATION
Teams Are Small and Distributed




            Source: Antelink software development survey,
            antelink.com
Organizational Perceptions of G11n

      Developers:                      L10n Managers:
      •Straightforward, simple,        •Issues come up with
      handled                          every release
      •Tier 3 bugs, at best            •Tier 1,2 &3 bugs
      •Features come first             •Not enough support
      •Not enough time                 from dev.
                                       •No way to verify until
                                       localization
                                       •Lack deep knowledge
                                       of code


                       Business Managers:
                       •Sales/biz expectations
                       •Time to market
                       •Over budget and late
Ongoing i18n


• Make measuring i18n part of an ongoing
  process, like a nightly build
• Regular requirement for development – part of
  every cycle, agile or otherwise
• Build an i18n testing strategy that leverages
  Localization testing as well.
  – Pseudo-locales
Catch Bugs Early!
 Source: “Software Internationalization Tools and Solutions” - Xerox



30 x




                                 Architecture and Design




                                                                              Acceptance
15 x
               Requirements




7x


                                                                    Testing




                                                                                                          Maintenance
                                                                                           Localization
                                                           Coding


4x
2x


                                               Development Phase when
                                               an I18N bug is detected
Ongoing Globalization


• Focus on leveraging expertise
  –   Tools help you scale
  –   Staff experts
  –   Training
  –   Keep repeating the globalization value message
  –   Get help repeating the message
  –   Fight Entropy!
Questions & Answers

      Adam Asnes                                       Resources
 adam@lingoport.com                            http://www.lingoport.com
 Twitter: @adamasnes
                                                      Globalyzer
      Kent Grave                              http://www.globalyzer.com
     Cisco Systems
                                                           Blog
                                                  http://i18nblog.com

 •Contact us for a detailed individual presentation, or i18n needs discussion
 •Try Globalyzer at http://globalyzer.com

LocWorld: Building an Internationalization Plan; October 2011

  • 1.
    Creating a Planfor Internationalization and Localization Tuesday, October 10, 2011 Adam Asnes Kent Grave CEO, Lingoport Localization Manager [email protected] Cisco Systems @adamasnes
  • 2.
    Lingoport • Internationalization Services – Assessment – Project planning – I18n development – I18n testing – Localization integration • Globalyzer – Internationalization software • Find and fix i18n issues in code • Support developer teams
  • 3.
    Globalization • Globalization (g11n)has two components : – Internationalization (i18n) : software engineering to enable localization – Global Scalability – Localization (L10n): culture specific resources (translation, etc.) – Market Specificity
  • 4.
    Nobody Globalizes JustCause It’s Cool • We love revisiting code we’ve already developed and paying tons of money to translators! • Distracting from “Real Work”
  • 5.
    Developers: Is ItInternationalized? • Most don’t know the answer • Developers often underestimate i18n requirements – Just string externalization, right? • 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
  • 6.
    Organization Issues • Lotsto lose in time, revenue, costs, user experience and product acceptance when code isn’t well internationalized • Few systematic tools and support for global- ready software development & Localization • Development moves fast, teams can be diverse – Got Agile? • Poor understanding of requirements
  • 7.
    Internationalization is Expensive! •After development • During development – $100’s of thousands – Incidental, but still real and more for serious costs applications – Processes – Must revisit existing – Forethought code – Requirements – Months to years delay – Measurement
  • 8.
    Sobering Experience • 1million line app? – $500K+ dev 18n costs PLUS localization – 6 months? Much more? Big delays? • When presented with i18n costs, timeframes, risk – Many projects die – Many postponed – Some companies fade away
  • 9.
    Creating an actionableplan GETTING ORGANIZED
  • 10.
    Assessment and PlanBuilding • What’s in code • What’s not in code – Strings – Requirements – Locale-unsafe – Locale Handling functions/methods – Data operations – Programming Patterns – Database schema – Static References
  • 11.
    Traditional Approach - repeat, and repeat, and repeat, and repeat Localize and see what you’re missing Ad-hoc scripts, Test, Pseudo-Localize overwhelm developers View pages. Pore over Externalize and refactor code for strings, one by one methods, etc.
  • 12.
    Maintenance of thei18n Process Maintenance of the i18n Process STRING IDENTIFICATION QA Engineering Pseudo-Localization Go through QA report Going through each screen Sift through code to find non- Identify which string is pseudo- externalized strings localized Report back to QA Report back to engineering LOCALE SENSITIVE METHOD IDENTIFICATION QA Engineering Go through each screen, file, report, checking for: Go through QA report Character operation Sift through code to find Origin Collation of issue Conversion Report back to QA, Date/Time management File & Path Locale and Character set 2 weeks Number Format GLOBALYZER SCANS AND Automated Process control functions REPORTING String operations Scan, report & distribute GENERAL PATTERNS QA Engineering Go through QA report Sift through code to find Origin Go through each screen, of issue file, report, checking for: Report back to QA, Font management Characters Database patterns STATIC FILE REFERENCES QA Engineering Go through QA report Go through each screen, Sift through code to find Origin file, report, checking for: of issue video Report back to QA, images management contracts html configuration files
  • 13.
    Globalyzer Server andClients Server Client Command Line
  • 14.
    Create a Plan • Tasks • Schedule • Staffing • Costs • Requirements doc, assessment or best practices are not a plan
  • 15.
  • 16.
    Teams Are Smalland Distributed Source: Antelink software development survey, antelink.com
  • 17.
    Organizational Perceptions ofG11n Developers: L10n Managers: •Straightforward, simple, •Issues come up with handled every release •Tier 3 bugs, at best •Tier 1,2 &3 bugs •Features come first •Not enough support •Not enough time from dev. •No way to verify until localization •Lack deep knowledge of code Business Managers: •Sales/biz expectations •Time to market •Over budget and late
  • 18.
    Ongoing i18n • Makemeasuring i18n part of an ongoing process, like a nightly build • Regular requirement for development – part of every cycle, agile or otherwise • Build an i18n testing strategy that leverages Localization testing as well. – Pseudo-locales
  • 19.
    Catch Bugs Early! Source: “Software Internationalization Tools and Solutions” - Xerox 30 x Architecture and Design Acceptance 15 x Requirements 7x Testing Maintenance Localization Coding 4x 2x Development Phase when an I18N bug is detected
  • 20.
    Ongoing Globalization • Focuson leveraging expertise – Tools help you scale – Staff experts – Training – Keep repeating the globalization value message – Get help repeating the message – Fight Entropy!
  • 21.
    Questions & Answers Adam Asnes Resources [email protected] http://www.lingoport.com Twitter: @adamasnes Globalyzer Kent Grave http://www.globalyzer.com Cisco Systems Blog http://i18nblog.com •Contact us for a detailed individual presentation, or i18n needs discussion •Try Globalyzer at http://globalyzer.com