SlideShare ist ein Scribd-Unternehmen logo
1 von 66
Downloaden Sie, um offline zu lesen
Lingoport, Inc.
3985 Wonderland Hill Ave.
Boulder, Colorado
USA 80304
+1 303 444 8020
www.lingoport.com




               Successful I18n Project
         Planning using Static Analysis

  Olivier Libouban          Adam Asnes
  G11n Lead                 Grand Poisson




                                     Copyright: March 2011
                                     Please do not reproduce without authorized permission
Lingoport

• Internationalization Services
  –   Assessment
  –   Project planning
  –   I18n development
  –   I18n testing
  –   Localization integration
• Globalyzer
  – Internationalization software
       • Find and fix i18n issues in code
Agenda

•   Business Case
•   I18n issues
•   Static Analysis Background
•   Requirements Gathering
•   Static Analysis Detail
•   Project Plan Example
•   Agile planning
•   Continuous Integration for i18n
Engineering for Locale Support

• Globalization (g11n) has two components :
  – Internationalization (i18n) : software engineering to
    enable localization
  – Localization (L10n): culture specific resources
    (translation, etc.)
Business Case:
Nothing gets internationalized or localized just cause
                                      it would be cool
I18n Needs – Biz vs. Tech


 Our Software must be in
 Japanese, French,
 German, Chinese, and
                           Engineering thinks about…
 Spanish by November
                              1.   Multi-tiered web application?
                              2.   Complex Interface?
                              3.   Database components?
                              4.   Embedded Strings?
                              5.   Locale aware application?
                              6.   Can it manage multiple data formats?
                              7.   I18n testing plan?
                              8.   Tactics to get it done
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
You Need a Plan – Scope 1st, design later
• Project becomes real with $$$
• CFO thinking in terms of ROI
  – Deal Based
     • Revenue – Costs = Profit
  – Strategic
     • Revenue over X years – Costs +
       effect on equity – risk
     • Leverage global investment of
       organization
  – Cost of Time to Market
     • If you‟re late or lousy, that has
       significant opportunity cost
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
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
Example: Hard-Coded English Text


1 million lines of source code
Found:
  20,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.”;
Character Sets/Encodings
• Character set (e.g. Unicode)
   – A set of characters used to support a given language or series of
     languages
• Character encoding (e.g. UTF-16, UTF-8)
   – A set of code points that defines numeric values for each
     character within a character set (coded character set)
Character Sets and Encoding


• This is broken:
Sample Code (Java) – i18n Examples
I18n Engineering Considerations

•   Locale Handling                                       •   Honorific titles
•   Character encoding                                    •   Telephone formats
•   Strings                                               •   Postal formats
     –
     –
         External, Grammar, Segments, Plurals, Wrapping
         String Handling (char *, etc.)
                                                          •   Region-specific functions
     –   Tabs, spaces, delimiters, etc.                   •   Shipping conditions
•   Resource management –                                 •   Numerical formats
    centralized, normalized, re-usable                    •   Page layout, LTR, RTL
•   Dates - Calendar                                      •   Fonts and attributes
•   Times                                                 •   Icons, colors
•   Sorting & searching                                   •   Reporting, workflow
•   Currency                                              •   Database support
•   Transaction process                                   •   Multi-byte enabling
•   Character set conversions                             •   Business logic
•   On line help                                          •   Measurements, units
•   Sounds                                                •   Input Methods
                                                          •   Data exchange
Internationalization Challenge


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


        Display     Input     Transform
                                          Store




                  Transform   Retrieve
New Internationalization Project!
• What to do?
  –   Large amount of code
  –   Change in requirements
  –   Change in architecture
  –   Change in development practices
  –   Change in testing requirements
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
Code Review
• What to Identify
   –   Embedded strings
   –   Locale-Sensitive methods/functions/classes
   –   Image references
   –   Unsafe programming constructs (ex: regular expressions
       needing US Alphabetical Order, Pointer arithmetic and more)
Code Analysis

• How to Identify Issues
   – “Brute force”
       • Engineers search for and resolve known issues
       • Count display pages
       • Pseudo-localization
       • Scripts and page by page analysis
   – Globalyzer-assisted review, static analysis
       • An I18n code analysis tool is employed to examine source
         code for a large range of potential and known issues
       • Issues can be identified and resolved in a more systematic
         fashion
Traditional Approach                       - repeat,      and   repeat, and repeat,   and repeat




                               Localize and see what
                                  you‟re missing




                                                       GREP, overwhelm
       Test, Pseudo-Localize
                                                         developers




                                               View pages. Pour
              Externalize and refactor     through code for strings,
                    one by one                   methods, etc.
Globalyzer Server and Clients
    Static Analysis on the Source Code
                                            Server


Client                                               Command Line




    Globalyzer is methodology agnostic. Project Managers may
        use it in a „traditional‟ approach or Agile approach.
Globalyzer Principles - Customization

• Globalyzer Server manages Rule
  Sets Configuration
   – Globalyzer Rule Sets are used to
     identify i18n issues in the code base
   – Rules embody the i18n issue
     detection logic
   – One rule set targets one
     programming language (& variant)
   – Default rule sets are based on
     research and years of experience
   – Rules must be tailored to a specific
     project
   – Rules can be shared amongst team
     members
Globalyzer Principles – Desktop Analysis




                   • Globalyzer desktop client:
                      – Scan source code using
                        Globalyzer Rule Sets
                      – Detect and report i18n potential
                        issues
                      – Manage i18n issues
                      – Assist Fixing the code to become
                        i18n compliant
Globalyzer Principles - Automation

• Globalyzer Command Line
   – For integration in the overall software process to run at given
     frequencies
   – Generate reports once a setup has been established
   – Different strategies
       • Segment the code base into small scan projects that
         reflect the i18n effort
       • Focus on i18n scope
I18n Processes

• Planning
   • Market Requirements Analysis
   • Architectural Requirements Analysis
   • Code Review
• I18n Design
• I18n Implementation
• Testing
• And beyond…
   • Localization
   • Support
Merging Requirements and


• Architectural Changes • Code Analysis
What‟s not in the code  What‟s in the code
  – Locale support           – Strings
  – Changes to how data      – Refactoring Locale-
    is passed around           limiting
                               methods/functions
  – Discuss and Analyze
    technical requirements   – Find and count issues
I18n Architectural Challenge               – what’s not in the code




                  Marketing Requirements
                        Locale behavior


 Database     Application Code
  Character   e.g. Java, C++, VB                   U/I
  encoding
   support                                      e.g. JSP,
                                               ASP, ASPX
                  3rd Party Products

 Business Logic
                   Platforms, Browser Support Requirements
COMPLICATIONS
Operational Challenges


• Ongoing development
  – Agile?
  – Code Branching?
  – Multiple teams?
Release Path


• Internationalization,      • Feature Release
  1st Time                     – 3 week sprint?
   –   Most of U/I             – Focus on code subset
   –   Breaks the DB           – Concentrated testing
   –   Data I/O                   • Static analysis with
                                    Globalyzer
   –   Test entire product


                   Code branch, merge,
                     testing strategy
Factors to Plan On

•   Programming languages
•   How many tiers, what do they do
•   Database support
•   Locale Requirements
•   3rd Party Products – support for Unicode?
•   Size of Application – Lines of Code
•   Amount of Embedded Strings to be Externalized
•   Estimate of concatenation
•   DB refactoring
•   Methods/Functions/Classes replacement
Tiers and Technologies


     • Java
 1   • C#

     • JavaScript
 2   • VB

     • C++
 3   • Older languages: e.g. RPG
     Time and effort increase
Other Issues

• Stability of the build
• Quality of the code
   – History
• Focus of the developers
• Source code management approach
• New concurrent development introducing new
  i18n problems
Questions & Answers

    Adam Asnes                   Resources
 adam@lingoport.com      http://www.lingoport.com

    Olivier Libouban             Globalyzer
                         http://www.globalyzer.com
 olivier@lingoport.com

                                     Blog
                            http://i18nblog.com
Lingoport:
Requirements and Planning



Adam Asnes        Olivier Libouban
President & CEO   Globalization Lead
Lingoport         Lingoport
Why go through requirements?


• I18n work is software engineering
• To determine the scope of the i18n work, the
  i18n cannot simply look at the code and come
  up with an i18n project
• Scope also leads to planning, cost, resources

• How to describe i18n requirements?
Focus on one requirement: Locale


•   One product instance per locale?
•   Multi-locale support
•   Locale detection?
•   User account support?
Ex: WebSphere Portal Locale
Determination
 – User logged in: display user‟s preferred language
 – No preferred user language: look for user‟s browser
   language
    • If supports of that language, displays in that language.
    • If browser has more than one language defined, uss the first
      language in the list to display the content.
 – If no browser language can be found, for example if the
   browser used does not send a language, the portal
   resorts to its own default language.
 – If the user has a portlet that does not support the
   language that was determined by the previous steps,
   that portlet is shown in its own default language.
One-Time Locale Selection
System based Locale Detection
More of the typical i18n requirements

• Target date(s)
• System requirements
• Existing & potential use cases for UI text entry,
• Text display
• Text processing
• Collation
• Handling of locale-sensitive data (dates,
  numbers, currencies, etc.).
• Client Installer considerations
Architectural Discussion


• Thorough Product Demo

• Walk through major architecture components
Conceptual illustrative architecture

                          Specific development and integration

                                                              CODE
                                                                 UI
                                                             Business
                                                            Persistance


                                                    RDBMS           LDAP     CMS




                                         Workflow
           Web Services   Rules Engine                        JMS          3rd Parties
                                          Engine




April 19, 2011 – p 45
Specific i18n software engineering focus
                                                              Specific development and integration

                                                                                                  CODE
                                                                                                     UI


       • UI : html, server side, JavaScript,
                                                                                                 Business
                                                                                                Persistance


                                                                                        RDBMS           LDAP     CMS

         input forms, css, content
         presentation, etc.                    Web Services   Rules Engine
                                                                             Workflow
                                                                              Engine
                                                                                                  JMS          3rd Parties




       • Business logic, searches,
         comparisons, data exchange with
         external systems
       • Persistence : exchanges with
         RDMBS, Content Management,
         LDAP, file based persistence
         (xml, etc.)


April 19, 2011 – p 46
Specific development i18n issues
                                                              Specific development and integration

                                                                                                  CODE


      • String externalization (outside of
                                                                                                     UI
                                                                                                 Business
                                                                                                Persistance



        code) and i18n resource bundles                                                 RDBMS           LDAP     CMS




      • Locale sensitive methods :             Web Services   Rules Engine
                                                                             Workflow
                                                                              Engine
                                                                                                  JMS          3rd Parties



        searching, retrieving, sorting, date
        and time, string operations,
        character operations, etc.
      • Code resources (images, etc.)
      • Overall programming language
        specifics




April 19, 2011 – p 47
Data stores i18n issues
                                                                    Specific development and integration


      •
                                                                                                        CODE

            PL/SQL                                                                                         UI
                                                                                                       Business
                                                                                                      Persistance



      •     Encoding                                                                          RDBMS           LDAP     CMS




      •     Locale files (xml, xls, csv, etc)        Web Services   Rules Engine
                                                                                   Workflow
                                                                                    Engine
                                                                                                        JMS          3rd Parties



      •     Database specific issues, date/time,
            conversion, sorting, soundex, etc.
      •     Storing and retrieving local data in local
            language (vs. a “generic” schema)
      •     User entered data
      •     Columns requiring translation
      •     Attributes, user names, postal
            addresses, etc
      •     Database design

April 19, 2011 – p 48
Content Management i18n issues
                                                     Specific development and integration

                                                                                         CODE
                                                                                            UI
                                                                                        Business


      • Accessing the proper locale
                                                                                       Persistance


                                                                               RDBMS           LDAP     CMS




                                                                    Workflow
                                      Web Services   Rules Engine                        JMS          3rd Parties
                                                                     Engine




      • Encoding of content




April 19, 2011 – p 49
External system i18n issues
                                                     Specific development and integration

                                                                                         CODE
                                                                                            UI
                                                                                        Business



      • Modality of data exchange /
                                                                                       Persistance


                                                                               RDBMS           LDAP     CMS




        data loss                     Web Services   Rules Engine   Workflow
                                                                     Engine
                                                                                         JMS          3rd Parties




      • Accessing the proper locale
      • Encoding/persistence of
        content on external system




April 19, 2011 – p 50
I18n Engineering Considerations

•   Locale Handling                                       •   Honorific titles
•   Character encoding                                    •   Telephone formats
•   Strings                                               •   Postal formats
     –
     –
         External, Grammar, Segments, Plurals, Wrapping
         String Handling (char *, etc.)
                                                          •   Region-specific functions
     –   Tabs, spaces, delimiters, etc.                   •   Shipping conditions
•   Resource management –                                 •   Numerical formats
    centralized, normalized, re-usable                    •   Page layout, LTR, RTL
•   Dates - Calendar                                      •   Fonts and attributes
•   Times                                                 •   Icons, colors
•   Sorting & searching                                   •   Reporting, workflow
•   Currency                                              •   Database support
•   Transaction process                                   •   Multi-byte enabling
•   Character set conversions                             •   Business logic
•   On line help                                          •   Measurements, units
•   Sounds                                                •   Input Methods
                                                          •   Data exchange


                                                                       April 19, 2011 – p 51
Process requirements:
how to fit into an existing environment

•   Lifecycle          •   Build
•   Documentation      •   Source control
•   Integration        •   Branching
•   QA                 •   Reporting structure
•   Type of meetings   •   Review boards
                       •   JUnit
                       •   Globalyzer
                       •   Bug Reporting
Questions & Answers

    Adam Asnes                   Resources
 adam@lingoport.com      http://www.lingoport.com

    Olivier Libouban             Globalyzer
                         http://www.globalyzer.com
 olivier@lingoport.com

                                     Blog
                            http://i18nblog.com
Static Analysis Detail

Globalyzer example – Running and Reporting




Adam Asnes                Olivier Libouban
President & CEO           Globalization Lead
Lingoport                 Lingoport
Example Project Plan

     Looking at a plan from a service project
Example Project Plan
Combine:
•1 Part Architecture
•1 Part Code Metrics
•1 Part Experience
Lingoport:
Agile & Internationalization



Adam Asnes        Olivier Libouban
President & CEO   Globalization Lead
Lingoport         Lingoport
Agile in one slide (smallest nutshell)
• Roles (Product Owner, Scrum Master, Team)
• Product Backlog
• Sprints (user stories are designed, implemented,
  tested in a „short‟ timeframe, e.g. 3 weeks)
• Sprint Backlog
• Daily Scrums
• Demonstrable
• „Shippable‟
i18n and Agile Challenges

• Traditionally, Legacy i18n has followed a waterfall
  model:
   – i18n cuts across the code, for instance:
       • Encoding problems …in all the code
       • Formatting issues … in all the code
       • Externalize strings …
   – i18n needs a systemic approach
   – I18n tend to have long project life cycles
   – (L10n: must get an entire locale done)
• From a methodology perspective Agile:
   – is feature driven
   – runs in “short” Sprint
• Sometimes a Hybrid approach works best
Agile & i18n Process Challenges
Lingoport Project Assessment - Legacy

• Uncover i18n potential issues from 2 perspectives:
   – Code perspective: Globalyzer reporting/metrics
   – Architectural: Locale/technical i18n requirements
• Allows to create the initial „i18n product backlog‟
• Can, but does not need to be part of a Sprint
• Allows to have an overall scope and effort
  estimate
• Can feed into a number of processes
   – TDD, ADD, Waterfall, … Agile
• Involve the Product Owner: communication
  resource
Lingoport Project Organization
Backlog identification and Scoping

• The i18n product backlog is a prioritized list of
  requirements, stories, features, etc.
• What the customer wants, described using the
  (Product Owner‟s) customer‟s terminology
          ID Name                           Imp   Est   How to demo           Notes
                                                                              If no login before,
          1   Locale Setting and Tracking   30     5    Log in,               default locale

                                                        Splash screen for     If first time, otherwise
                                                        Locale                remembers
                                                        …                     …
                                                        …                     …

                                                        Log in for an 'en US'
          2   Locale for languages          10     8    user                  Locale is default
                                                        Go to page 'www.'
                                                                              Check pseudo
                                                        Change Locale         localization
                                                        …                     ..
Lingoport Project Organization
Sprint Management


• i18n code branching
• Agile typically uses development build, CI
  environments
• Must pass „regular‟ dev criteria
• Must be able to push i18n code branching easily
  and vice versa
• I18n tests must be available to other teams in CI
• Some items are more sensitive than others
   – Database schema changes and implications on all source
Continuous Integration - Basics


      Team 1


      Team 2


      Team 3


      Team 4


      Team 5
CI & Scan Results Summary
CI & Scan Details Results
Questions & Answers

    Adam Asnes                   Resources
 adam@lingoport.com      http://www.lingoport.com

    Olivier Libouban             Globalyzer
                         http://www.globalyzer.com
 olivier@lingoport.com

                                     Blog
                            http://i18nblog.com

Weitere ähnliche Inhalte

Ähnlich wie Wordware 2011: Lingoport i18n Planning & Static Analysis

High Performance Software Internationalization
High Performance Software InternationalizationHigh Performance Software Internationalization
High Performance Software InternationalizationAdam Asnes
 
Business intelligence-solutions 2012-english
Business intelligence-solutions 2012-englishBusiness intelligence-solutions 2012-english
Business intelligence-solutions 2012-englishStratebi
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use itMark Windholtz
 
Advanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big DataAdvanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big DataPerficient, Inc.
 
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRAWikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRAzAgile
 
TejaSoft Code Audit Case Studies
TejaSoft Code Audit Case StudiesTejaSoft Code Audit Case Studies
TejaSoft Code Audit Case StudiesRaja Nagendra Kumar
 
Continuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesContinuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesAdam Asnes
 
企业开发领域的语言特性
企业开发领域的语言特性企业开发领域的语言特性
企业开发领域的语言特性jeffz
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglotTugdual Grall
 
Unlock the Power of Machine Translation
Unlock the Power of Machine TranslationUnlock the Power of Machine Translation
Unlock the Power of Machine TranslationRDC
 
Sergata Ltd. - Innovative Software Development
Sergata Ltd. - Innovative Software DevelopmentSergata Ltd. - Innovative Software Development
Sergata Ltd. - Innovative Software DevelopmentTsvika Kleinman
 
Building a Giant Atlassian Universe to Take Over the World
Building a Giant Atlassian Universe to Take Over the WorldBuilding a Giant Atlassian Universe to Take Over the World
Building a Giant Atlassian Universe to Take Over the WorldAtlassian
 
Central Registry for Digitized Objects: Linking Production and Bibliographic ...
Central Registry for Digitized Objects: Linking Production and Bibliographic ...Central Registry for Digitized Objects: Linking Production and Bibliographic ...
Central Registry for Digitized Objects: Linking Production and Bibliographic ...Ralf Stockmann
 
A Lap Around Visual Studio 11
A Lap Around Visual Studio 11A Lap Around Visual Studio 11
A Lap Around Visual Studio 11Chad Green
 
G Bisanz Resume Jan2012
G Bisanz Resume Jan2012G Bisanz Resume Jan2012
G Bisanz Resume Jan2012Gregory Bisanz
 
Generative Software Development. Overview and Examples
Generative Software Development. Overview and ExamplesGenerative Software Development. Overview and Examples
Generative Software Development. Overview and ExamplesEelco Visser
 
Reed Technology Melbourne
Reed Technology MelbourneReed Technology Melbourne
Reed Technology MelbourneReedTechnology
 

Ähnlich wie Wordware 2011: Lingoport i18n Planning & Static Analysis (20)

High Performance Software Internationalization
High Performance Software InternationalizationHigh Performance Software Internationalization
High Performance Software Internationalization
 
Business intelligence-solutions 2012-english
Business intelligence-solutions 2012-englishBusiness intelligence-solutions 2012-english
Business intelligence-solutions 2012-english
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
 
Advanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big DataAdvanced Logging and Analysis for SOA, Social, Cloud and Big Data
Advanced Logging and Analysis for SOA, Social, Cloud and Big Data
 
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRAWikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
Wikidsmart PM: Requirements Management within Confluence, Integrated with JIRA
 
TejaSoft Code Audit Case Studies
TejaSoft Code Audit Case StudiesTejaSoft Code Audit Case Studies
TejaSoft Code Audit Case Studies
 
Continuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesContinuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar Slides
 
企业开发领域的语言特性
企业开发领域的语言特性企业开发领域的语言特性
企业开发领域的语言特性
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
Unlock the Power of Machine Translation
Unlock the Power of Machine TranslationUnlock the Power of Machine Translation
Unlock the Power of Machine Translation
 
Sergata Ltd. - Innovative Software Development
Sergata Ltd. - Innovative Software DevelopmentSergata Ltd. - Innovative Software Development
Sergata Ltd. - Innovative Software Development
 
Building a Giant Atlassian Universe to Take Over the World
Building a Giant Atlassian Universe to Take Over the WorldBuilding a Giant Atlassian Universe to Take Over the World
Building a Giant Atlassian Universe to Take Over the World
 
piyush_
piyush_piyush_
piyush_
 
Central Registry for Digitized Objects: Linking Production and Bibliographic ...
Central Registry for Digitized Objects: Linking Production and Bibliographic ...Central Registry for Digitized Objects: Linking Production and Bibliographic ...
Central Registry for Digitized Objects: Linking Production and Bibliographic ...
 
A Lap Around Visual Studio 11
A Lap Around Visual Studio 11A Lap Around Visual Studio 11
A Lap Around Visual Studio 11
 
Shifting Left Webinar Slideshow
Shifting Left Webinar SlideshowShifting Left Webinar Slideshow
Shifting Left Webinar Slideshow
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
 
G Bisanz Resume Jan2012
G Bisanz Resume Jan2012G Bisanz Resume Jan2012
G Bisanz Resume Jan2012
 
Generative Software Development. Overview and Examples
Generative Software Development. Overview and ExamplesGenerative Software Development. Overview and Examples
Generative Software Development. Overview and Examples
 
Reed Technology Melbourne
Reed Technology MelbourneReed Technology Melbourne
Reed Technology Melbourne
 

Mehr von Lingoport (www.lingoport.com)

Internationalization Conference, Webinars, Events, Book Discount and More!
Internationalization Conference, Webinars, Events, Book Discount and More!Internationalization Conference, Webinars, Events, Book Discount and More!
Internationalization Conference, Webinars, Events, Book Discount and More!Lingoport (www.lingoport.com)
 
Leading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert DiscussionLeading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert DiscussionLingoport (www.lingoport.com)
 
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...Lingoport (www.lingoport.com)
 
JavaScript Internationalization I18n for Efficient Software Localization
JavaScript Internationalization I18n for Efficient Software LocalizationJavaScript Internationalization I18n for Efficient Software Localization
JavaScript Internationalization I18n for Efficient Software LocalizationLingoport (www.lingoport.com)
 
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...Lingoport (www.lingoport.com)
 
Worldware: Software internationalization and globalization conference summary...
Worldware: Software internationalization and globalization conference summary...Worldware: Software internationalization and globalization conference summary...
Worldware: Software internationalization and globalization conference summary...Lingoport (www.lingoport.com)
 
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...Lingoport (www.lingoport.com)
 
Internationalization (I18n) and Localization (L10n): A Study
Internationalization (I18n) and Localization (L10n): A StudyInternationalization (I18n) and Localization (L10n): A Study
Internationalization (I18n) and Localization (L10n): A StudyLingoport (www.lingoport.com)
 
Business Perspectives on Internationalization (i18n)
Business Perspectives on Internationalization (i18n)Business Perspectives on Internationalization (i18n)
Business Perspectives on Internationalization (i18n)Lingoport (www.lingoport.com)
 
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...Lingoport (www.lingoport.com)
 

Mehr von Lingoport (www.lingoport.com) (19)

Staying Global in an Agile World Presentation
Staying Global in an Agile World PresentationStaying Global in an Agile World Presentation
Staying Global in an Agile World Presentation
 
Internationalizing a Multi-Layered Application
Internationalizing a Multi-Layered ApplicationInternationalizing a Multi-Layered Application
Internationalizing a Multi-Layered Application
 
Shifting Left Webinar Slides
Shifting Left Webinar SlidesShifting Left Webinar Slides
Shifting Left Webinar Slides
 
Internationalization Conference, Webinars, Events, Book Discount and More!
Internationalization Conference, Webinars, Events, Book Discount and More!Internationalization Conference, Webinars, Events, Book Discount and More!
Internationalization Conference, Webinars, Events, Book Discount and More!
 
Keyboards and Internationalization
Keyboards and InternationalizationKeyboards and Internationalization
Keyboards and Internationalization
 
Internationalization & Localization Process
Internationalization & Localization ProcessInternationalization & Localization Process
Internationalization & Localization Process
 
Leading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert DiscussionLeading Globalized Software Effort: An Expert Discussion
Leading Globalized Software Effort: An Expert Discussion
 
Unicode Primer for the Uninitiated
Unicode Primer for the UninitiatedUnicode Primer for the Uninitiated
Unicode Primer for the Uninitiated
 
Static analysis for multiple programming languages
Static analysis for multiple programming languagesStatic analysis for multiple programming languages
Static analysis for multiple programming languages
 
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
Lingoport internationalization-i18n-and-localization-l10n-e newsletter-septem...
 
JavaScript Internationalization I18n for Efficient Software Localization
JavaScript Internationalization I18n for Efficient Software LocalizationJavaScript Internationalization I18n for Efficient Software Localization
JavaScript Internationalization I18n for Efficient Software Localization
 
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
Internationalization (i18n) Primer: Solving Coding Issues Equals Competitive ...
 
Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)Introduction to Internationalization (I18n)
Introduction to Internationalization (I18n)
 
Worldware: Software internationalization and globalization conference summary...
Worldware: Software internationalization and globalization conference summary...Worldware: Software internationalization and globalization conference summary...
Worldware: Software internationalization and globalization conference summary...
 
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
Enhancing Internationalization Productivity: I18n Tools Support Software Loca...
 
Outsourcing Internationalization (i18n) Services
Outsourcing Internationalization (i18n) ServicesOutsourcing Internationalization (i18n) Services
Outsourcing Internationalization (i18n) Services
 
Internationalization (I18n) and Localization (L10n): A Study
Internationalization (I18n) and Localization (L10n): A StudyInternationalization (I18n) and Localization (L10n): A Study
Internationalization (I18n) and Localization (L10n): A Study
 
Business Perspectives on Internationalization (i18n)
Business Perspectives on Internationalization (i18n)Business Perspectives on Internationalization (i18n)
Business Perspectives on Internationalization (i18n)
 
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
Internationalization (i18n) and Localization (l10n) - Partners in Successful ...
 

Kürzlich hochgeladen

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 

Kürzlich hochgeladen (20)

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 

Wordware 2011: Lingoport i18n Planning & Static Analysis

  • 1. Lingoport, Inc. 3985 Wonderland Hill Ave. Boulder, Colorado USA 80304 +1 303 444 8020 www.lingoport.com Successful I18n Project Planning using Static Analysis Olivier Libouban Adam Asnes G11n Lead Grand Poisson Copyright: March 2011 Please do not reproduce without authorized permission
  • 2. Lingoport • Internationalization Services – Assessment – Project planning – I18n development – I18n testing – Localization integration • Globalyzer – Internationalization software • Find and fix i18n issues in code
  • 3. Agenda • Business Case • I18n issues • Static Analysis Background • Requirements Gathering • Static Analysis Detail • Project Plan Example • Agile planning • Continuous Integration for i18n
  • 4. Engineering for Locale Support • Globalization (g11n) has two components : – Internationalization (i18n) : software engineering to enable localization – Localization (L10n): culture specific resources (translation, etc.)
  • 5. Business Case: Nothing gets internationalized or localized just cause it would be cool
  • 6. I18n Needs – Biz vs. Tech Our Software must be in Japanese, French, German, Chinese, and Engineering thinks about… Spanish by November 1. Multi-tiered web application? 2. Complex Interface? 3. Database components? 4. Embedded Strings? 5. Locale aware application? 6. Can it manage multiple data formats? 7. I18n testing plan? 8. Tactics to get it done
  • 7. 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
  • 8. You Need a Plan – Scope 1st, design later • Project becomes real with $$$ • CFO thinking in terms of ROI – Deal Based • Revenue – Costs = Profit – Strategic • Revenue over X years – Costs + effect on equity – risk • Leverage global investment of organization – Cost of Time to Market • If you‟re late or lousy, that has significant opportunity cost
  • 9. 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
  • 10. 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
  • 11. Example: Hard-Coded English Text 1 million lines of source code Found: 20,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.”;
  • 12. Character Sets/Encodings • Character set (e.g. Unicode) – A set of characters used to support a given language or series of languages • Character encoding (e.g. UTF-16, UTF-8) – A set of code points that defines numeric values for each character within a character set (coded character set)
  • 13. Character Sets and Encoding • This is broken:
  • 14. Sample Code (Java) – i18n Examples
  • 15. I18n Engineering Considerations • Locale Handling • Honorific titles • Character encoding • Telephone formats • Strings • Postal formats – – External, Grammar, Segments, Plurals, Wrapping String Handling (char *, etc.) • Region-specific functions – Tabs, spaces, delimiters, etc. • Shipping conditions • Resource management – • Numerical formats centralized, normalized, re-usable • Page layout, LTR, RTL • Dates - Calendar • Fonts and attributes • Times • Icons, colors • Sorting & searching • Reporting, workflow • Currency • Database support • Transaction process • Multi-byte enabling • Character set conversions • Business logic • On line help • Measurements, units • Sounds • Input Methods • Data exchange
  • 16. Internationalization Challenge • Software Data Path - it‟s not just the display Display Input Transform Store Transform Retrieve
  • 17. New Internationalization Project! • What to do? – Large amount of code – Change in requirements – Change in architecture – Change in development practices – Change in testing requirements
  • 18. 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
  • 19. Code Review • What to Identify – Embedded strings – Locale-Sensitive methods/functions/classes – Image references – Unsafe programming constructs (ex: regular expressions needing US Alphabetical Order, Pointer arithmetic and more)
  • 20. Code Analysis • How to Identify Issues – “Brute force” • Engineers search for and resolve known issues • Count display pages • Pseudo-localization • Scripts and page by page analysis – Globalyzer-assisted review, static analysis • An I18n code analysis tool is employed to examine source code for a large range of potential and known issues • Issues can be identified and resolved in a more systematic fashion
  • 21. Traditional Approach - repeat, and repeat, and repeat, and repeat Localize and see what you‟re missing GREP, overwhelm Test, Pseudo-Localize developers View pages. Pour Externalize and refactor through code for strings, one by one methods, etc.
  • 22. Globalyzer Server and Clients Static Analysis on the Source Code Server Client Command Line Globalyzer is methodology agnostic. Project Managers may use it in a „traditional‟ approach or Agile approach.
  • 23. Globalyzer Principles - Customization • Globalyzer Server manages Rule Sets Configuration – Globalyzer Rule Sets are used to identify i18n issues in the code base – Rules embody the i18n issue detection logic – One rule set targets one programming language (& variant) – Default rule sets are based on research and years of experience – Rules must be tailored to a specific project – Rules can be shared amongst team members
  • 24. Globalyzer Principles – Desktop Analysis • Globalyzer desktop client: – Scan source code using Globalyzer Rule Sets – Detect and report i18n potential issues – Manage i18n issues – Assist Fixing the code to become i18n compliant
  • 25. Globalyzer Principles - Automation • Globalyzer Command Line – For integration in the overall software process to run at given frequencies – Generate reports once a setup has been established – Different strategies • Segment the code base into small scan projects that reflect the i18n effort • Focus on i18n scope
  • 26. I18n Processes • Planning • Market Requirements Analysis • Architectural Requirements Analysis • Code Review • I18n Design • I18n Implementation • Testing • And beyond… • Localization • Support
  • 27. Merging Requirements and • Architectural Changes • Code Analysis What‟s not in the code What‟s in the code – Locale support – Strings – Changes to how data – Refactoring Locale- is passed around limiting methods/functions – Discuss and Analyze technical requirements – Find and count issues
  • 28. I18n Architectural Challenge – what’s not in the code Marketing Requirements Locale behavior Database Application Code Character e.g. Java, C++, VB U/I encoding support e.g. JSP, ASP, ASPX 3rd Party Products Business Logic Platforms, Browser Support Requirements
  • 30. Operational Challenges • Ongoing development – Agile? – Code Branching? – Multiple teams?
  • 31. Release Path • Internationalization, • Feature Release 1st Time – 3 week sprint? – Most of U/I – Focus on code subset – Breaks the DB – Concentrated testing – Data I/O • Static analysis with Globalyzer – Test entire product Code branch, merge, testing strategy
  • 32. Factors to Plan On • Programming languages • How many tiers, what do they do • Database support • Locale Requirements • 3rd Party Products – support for Unicode? • Size of Application – Lines of Code • Amount of Embedded Strings to be Externalized • Estimate of concatenation • DB refactoring • Methods/Functions/Classes replacement
  • 33. Tiers and Technologies • Java 1 • C# • JavaScript 2 • VB • C++ 3 • Older languages: e.g. RPG Time and effort increase
  • 34. Other Issues • Stability of the build • Quality of the code – History • Focus of the developers • Source code management approach • New concurrent development introducing new i18n problems
  • 35. Questions & Answers Adam Asnes Resources adam@lingoport.com http://www.lingoport.com Olivier Libouban Globalyzer http://www.globalyzer.com olivier@lingoport.com Blog http://i18nblog.com
  • 36. Lingoport: Requirements and Planning Adam Asnes Olivier Libouban President & CEO Globalization Lead Lingoport Lingoport
  • 37. Why go through requirements? • I18n work is software engineering • To determine the scope of the i18n work, the i18n cannot simply look at the code and come up with an i18n project • Scope also leads to planning, cost, resources • How to describe i18n requirements?
  • 38. Focus on one requirement: Locale • One product instance per locale? • Multi-locale support • Locale detection? • User account support?
  • 39. Ex: WebSphere Portal Locale Determination – User logged in: display user‟s preferred language – No preferred user language: look for user‟s browser language • If supports of that language, displays in that language. • If browser has more than one language defined, uss the first language in the list to display the content. – If no browser language can be found, for example if the browser used does not send a language, the portal resorts to its own default language. – If the user has a portlet that does not support the language that was determined by the previous steps, that portlet is shown in its own default language.
  • 41. System based Locale Detection
  • 42. More of the typical i18n requirements • Target date(s) • System requirements • Existing & potential use cases for UI text entry, • Text display • Text processing • Collation • Handling of locale-sensitive data (dates, numbers, currencies, etc.). • Client Installer considerations
  • 43. Architectural Discussion • Thorough Product Demo • Walk through major architecture components
  • 44. Conceptual illustrative architecture Specific development and integration CODE UI Business Persistance RDBMS LDAP CMS Workflow Web Services Rules Engine JMS 3rd Parties Engine April 19, 2011 – p 45
  • 45. Specific i18n software engineering focus Specific development and integration CODE UI • UI : html, server side, JavaScript, Business Persistance RDBMS LDAP CMS input forms, css, content presentation, etc. Web Services Rules Engine Workflow Engine JMS 3rd Parties • Business logic, searches, comparisons, data exchange with external systems • Persistence : exchanges with RDMBS, Content Management, LDAP, file based persistence (xml, etc.) April 19, 2011 – p 46
  • 46. Specific development i18n issues Specific development and integration CODE • String externalization (outside of UI Business Persistance code) and i18n resource bundles RDBMS LDAP CMS • Locale sensitive methods : Web Services Rules Engine Workflow Engine JMS 3rd Parties searching, retrieving, sorting, date and time, string operations, character operations, etc. • Code resources (images, etc.) • Overall programming language specifics April 19, 2011 – p 47
  • 47. Data stores i18n issues Specific development and integration • CODE PL/SQL UI Business Persistance • Encoding RDBMS LDAP CMS • Locale files (xml, xls, csv, etc) Web Services Rules Engine Workflow Engine JMS 3rd Parties • Database specific issues, date/time, conversion, sorting, soundex, etc. • Storing and retrieving local data in local language (vs. a “generic” schema) • User entered data • Columns requiring translation • Attributes, user names, postal addresses, etc • Database design April 19, 2011 – p 48
  • 48. Content Management i18n issues Specific development and integration CODE UI Business • Accessing the proper locale Persistance RDBMS LDAP CMS Workflow Web Services Rules Engine JMS 3rd Parties Engine • Encoding of content April 19, 2011 – p 49
  • 49. External system i18n issues Specific development and integration CODE UI Business • Modality of data exchange / Persistance RDBMS LDAP CMS data loss Web Services Rules Engine Workflow Engine JMS 3rd Parties • Accessing the proper locale • Encoding/persistence of content on external system April 19, 2011 – p 50
  • 50. I18n Engineering Considerations • Locale Handling • Honorific titles • Character encoding • Telephone formats • Strings • Postal formats – – External, Grammar, Segments, Plurals, Wrapping String Handling (char *, etc.) • Region-specific functions – Tabs, spaces, delimiters, etc. • Shipping conditions • Resource management – • Numerical formats centralized, normalized, re-usable • Page layout, LTR, RTL • Dates - Calendar • Fonts and attributes • Times • Icons, colors • Sorting & searching • Reporting, workflow • Currency • Database support • Transaction process • Multi-byte enabling • Character set conversions • Business logic • On line help • Measurements, units • Sounds • Input Methods • Data exchange April 19, 2011 – p 51
  • 51. Process requirements: how to fit into an existing environment • Lifecycle • Build • Documentation • Source control • Integration • Branching • QA • Reporting structure • Type of meetings • Review boards • JUnit • Globalyzer • Bug Reporting
  • 52. Questions & Answers Adam Asnes Resources adam@lingoport.com http://www.lingoport.com Olivier Libouban Globalyzer http://www.globalyzer.com olivier@lingoport.com Blog http://i18nblog.com
  • 53. Static Analysis Detail Globalyzer example – Running and Reporting Adam Asnes Olivier Libouban President & CEO Globalization Lead Lingoport Lingoport
  • 54. Example Project Plan Looking at a plan from a service project
  • 55. Example Project Plan Combine: •1 Part Architecture •1 Part Code Metrics •1 Part Experience
  • 56. Lingoport: Agile & Internationalization Adam Asnes Olivier Libouban President & CEO Globalization Lead Lingoport Lingoport
  • 57. Agile in one slide (smallest nutshell) • Roles (Product Owner, Scrum Master, Team) • Product Backlog • Sprints (user stories are designed, implemented, tested in a „short‟ timeframe, e.g. 3 weeks) • Sprint Backlog • Daily Scrums • Demonstrable • „Shippable‟
  • 58. i18n and Agile Challenges • Traditionally, Legacy i18n has followed a waterfall model: – i18n cuts across the code, for instance: • Encoding problems …in all the code • Formatting issues … in all the code • Externalize strings … – i18n needs a systemic approach – I18n tend to have long project life cycles – (L10n: must get an entire locale done) • From a methodology perspective Agile: – is feature driven – runs in “short” Sprint • Sometimes a Hybrid approach works best
  • 59. Agile & i18n Process Challenges
  • 60. Lingoport Project Assessment - Legacy • Uncover i18n potential issues from 2 perspectives: – Code perspective: Globalyzer reporting/metrics – Architectural: Locale/technical i18n requirements • Allows to create the initial „i18n product backlog‟ • Can, but does not need to be part of a Sprint • Allows to have an overall scope and effort estimate • Can feed into a number of processes – TDD, ADD, Waterfall, … Agile • Involve the Product Owner: communication resource
  • 61. Lingoport Project Organization Backlog identification and Scoping • The i18n product backlog is a prioritized list of requirements, stories, features, etc. • What the customer wants, described using the (Product Owner‟s) customer‟s terminology ID Name Imp Est How to demo Notes If no login before, 1 Locale Setting and Tracking 30 5 Log in, default locale Splash screen for If first time, otherwise Locale remembers … … … … Log in for an 'en US' 2 Locale for languages 10 8 user Locale is default Go to page 'www.' Check pseudo Change Locale localization … ..
  • 62. Lingoport Project Organization Sprint Management • i18n code branching • Agile typically uses development build, CI environments • Must pass „regular‟ dev criteria • Must be able to push i18n code branching easily and vice versa • I18n tests must be available to other teams in CI • Some items are more sensitive than others – Database schema changes and implications on all source
  • 63. Continuous Integration - Basics Team 1 Team 2 Team 3 Team 4 Team 5
  • 64. CI & Scan Results Summary
  • 65. CI & Scan Details Results
  • 66. Questions & Answers Adam Asnes Resources adam@lingoport.com http://www.lingoport.com Olivier Libouban Globalyzer http://www.globalyzer.com olivier@lingoport.com Blog http://i18nblog.com