Posts

Six Steps to Successfully Manage Software Internationalization

Global opportunities are going to force you to evaluate how to adapt your code and ongoing development to support localization. Sometimes it starts with a potential new partnership, sale or strategic initiative. Yet it’s not clear what will be involved for development.  When you manage internationalization poorly you create unknown risks to your budget, timing, resources and strategic objectives.

You may know some of the basics or even been through a project like this once or a few times before, but it’s typically a messy, poorly enumerated, trial and error process. It’s distracting to other development objectives while containing unknown risks to your budget and timing.

Here’s a brief guide towards a successful implementation:

1)   Learn, Build and Support the Business Case – Internationalization (i18n) and ongoing localization (l10n) is going to have a significant cost and unless the business case is defined, the project is unlikely to get done. Even if it seems like that should be sales and marketing’s job, you’ll need to have some parameters as budget can cause some trade-offs.  Companies should not go into globalizing product development without clear commitment, as a bad final product may hurt sales goals more than it helps. A failed i18n initiative can be harmful to your own company objectives as well.

2)   Clarify Your Global Release Objectives and Concurrent Development  – i18n isn’t like planning a feature release. It’s likely not to fit neatly with whatever concurrent sprint your team is planning. It touches a good deal if not all of your application, rather than being like adding a feature or fixing a bug in a particular sprint and area of your code. You’ll need a branching, merging and testing strategy that covers the full i18n scope. Keep that in mind as you go through the next two steps.

3)   Assess and Document Requirements – Establish user requirements as they relate to target locales. i18n is almost never just a string externalization exercise you can pass to an intern. You’re going to need to put some thought into locale requirements, how data is going to flow through your application, changes to your database, methods/functions/classes that will have to be made locale-aware and of course the U/I and all it’s strings.  At a higher level, there are some products that need rethinking in terms of user workflow for different countries. Write those i18n requirements down in a document. That will help you organize for the next process.

4)   Build a Plan – Tasks, Time, Cost, People and Dependencies. This is an essential step and even if you’re the type that thinks project plans are meant to be broken, you need to do this and do it to a granular level. When we work on a project we typically build a plan that starts with about 200 tasks and goes upwards with size and complexity (consider this for multi-tiered applications). To do this, we analyze the code base with our software product, Globalyzer, which gives us detailed static analysis on internationalization issues that will need to be addressed. We combine that with architectural analysis from whiteboard discussions and requirements documentation. Building a plan will give you a realistic check on the business case as well. That feedback to business case can have an effect on activities like phasing various levels of functionality if that’s appropriate to your user requirements.

5)   Reduce Risks and Manage Trade-offs – Every development project has its risks. In the case of i18n, being late is very expensive. The risk can be a broken agreement, market launch and business plan. A three month delay may make an annual revenue goal unattainable. Due to a lack of understanding of requirements and scope, poor internationalization will result in a poor localization outcome. If after all that investment, the end product can’t be properly executed, then it’s self defeating. There’s also the risk that due to distractions and/or misdirection, you don’t get the work done and the project just dies or hangs in limbo. As for trade-offs, internationalizing a large application is generally resource intensive. It’s a solid assumption that development teams don’t have lots of people with nothing to do, so in cases where you have lots of legacy code, you may need an implementation partner in order to keep up with ongoing development objectives outside of internationalization.

6)   Long Term Support – Once you internationalize and localize, your ongoing development has a new set of requirements. You’ll want to measure internationalization just like any other coding quality and ideally not have to wait until testing to find out if i18n is broken. For your ongoing agile development, it’s good to automate managing changes to strings that may change somewhat with every release. This keeps you from having to do engineering bookkeeping to process the localization of those 26 or so new words that may need translation into your supported languages in the latest sprint.

Our Globalyzer software is a keystone to our services operations when clients hire us to provide internationalization consulting and implementation for them, but it’s also important for our clients in supporting development teams in their initial and ongoing efforts to create and maintain software for global customers, faster, better and with less headaches.

Learn more about managing internationalization:

Agile and Localization:
http://lingoport.com/whitepaper-path-agile-localization/

Internationalization Planning:
http://lingoport.com/internationalization-projects-not-simple/

Measuring Internationalization and Localization:
http://lingoport.com/measuring-internationalization-lingoport-dashboard/

Globalyzer 4.0 Release

Lingoport is proud to announce the release of Globalyzer 4.0, the premier internationalization software, refashioning how developers support and manage internationalization from the root of development. The latest incarnation of Globalyzer features a completely reworked development workbench that may be installed as a stand-alone version or as a plug-in to an already existing Eclipse environment. This enables software developers the ability to run, modify and check i18n code quality within the development environment.

To kick off this release, we will be hosting a one-hour webinar on Thursday, April 19th at 11am PT led by Lingoport’s Globalization Lead Olivier Libouban. Registration is available at: http://www.lingoport.com/globalyzer-4-i18n-webinar

In this demonstration, Libouban will internationalize a basic code repository while illustrating how to externalize, manage and pseudo-localize strings, how to correct locale-specific issues such as date and time, and account for general programming patterns that spark i18n issues. Those involved in streamlining their respective globalization process as well as program/project managers, i18n & L10n experts, development managers and software engineers are encouraged to attend.

Please submit any questions you have for the webinar to sthomas(at)lingoport.com. You may also comment below by liking the post or inquire to @Lingoport.

To get a taste of how Globalyzer operates, view the Globalyzer tutorials section on Lingoport.com. See below for part one.

Internationalization Software Globalyzer 3.6 Release

The latest Globalyzer Release Features new Programming Languages, new Rule Sets, Additional Support to Help Software Development Teams Share the String Externalization Work, and an Internationalization Scorecard

Lingoport, a provider of i18n tools and internationalization consulting services, announced yesterday the release of Globalyzer 3.6. Lingoport also announced that it will participate in an online panel presentation along with Zynga, IBM, and Hewlett-Packard, to discuss software development and localization on Wednesday, August 3rd.

Globalyzer—a client/server software internationalization system—assists development teams in internationalizing source code as an integral part of future releases. Globalyzer finds, fixes, and monitors issues quickly so that software applications are ready for localization and worldwide customer requirements.

The latest Globalyzer release features many new enhancements, including new supported programming languages: Qt and ActionScript plus enhanced XML and MXML support. Globalyzer 3.6 also adds shared string externalization support to help development teams working together on internationalization efforts as well as an internationalization scorecard, enabling managers to track key internationalization metrics over time.

Adam Asnes, founder and CEO of Lingoport, notes: “We are very excited to announce that Globalyzer is further extending support for programming languages like ActionScript, used in Flex and Flash applications, and enterprise global readiness analysis that we’ve seen become more important among our customers. We also keep adding features to help teams of developers support internationalization, as that’s an endeavor that runs across teams rather than just individual developers.” He continues: “More than ever, Globalyzer assures that a software application is global-ready as part of the development cycle, thus enabling companies to enter new markets faster while raising quality and lowering worldwide development, translation, and support costs.”

Lingoport’s software i18n tool now also features an internationalization scorecard. The scorecard system provides a dashboard of internationalization status and progress using XML data collected via scan history using Globalyzer’s Command Line. The i18n scorecard was recently discussed in an hour-long webinar presentation and featured guest-speakers Mike McKenna, Sr. Manager, International Engineering, from Zynga, and Leandro Reis, Senior Globalization Program Manager, from Adobe Systems. A recording of the presentation may be viewed at: http://www.lingoport.com/internationalization-webinar-video/#17

The Globalyzer 3.6 release notes are available on Lingoport’s website at:http://www.lingoport.com/software-internationalization-products/globalyzer-3/release-notes/

Worldware: Software Static Analysis

This presentation from Adam Asnes and Olivier Libouban of Lingoport progresses from beginning an internationalization plan to actually implementing that effort. There’s a big difference in describing the process of externalizing Unicode strings and actually doing it through an executable plan. This four-part presentation will dive into using internationalization static analysis using Globalyzer while looking over the metrics for success in such a project.

Part 1: The business case for internationalization, character encoding, a Java internationalization example and an overview of Globalyzer’s static analysis.

You may also view this presentation on Slideshare:  http://www.slideshare.net/Lingoport/wordware-2011-lingoporti18nplanningstaticanalysis

Part 2: Requirements in i18n software engineering, locale and code architecture analysis:

Part 3: An example of how Globalyzer is used

Part 4: An internationalization project plan:

Lingoport Webinar: Supporting Internationalization Across Your Enterprise With Globalyzer 3.4

Recording Available Below

There is tremendous value in knowing if a product is global-ready as part of your development cycle. Large amounts of development, marketing and branding dollars are at stake. Yet often, the only way software gets verified for localization, is during the localization process itself, or based on a limited series of manual interface testing. That’s way too late in the development cycle to be efficient and a very incomplete way to address the issue.

There are all kinds of products to support issues like software security and efficiency, but how about checking on internationalization, which for many companies is a hefty and vital product requirement for a good share of company revenue?

In this webinar, we’ll be demonstrating how Globalyzer 3.4 (our new release) finds, categorizes, tracks and helps fix internationalization bugs in source code using static analysis.

Webinar: “Supporting Internationalization Across Your Enterprise With Globalyzer 3.4”
Date: Tuesday, November 30th, 2010
Time:
11am – Noon PST
Where:
Your desktop
Watch at:
http://vimeo.com/17364680
Cost: ComplimentaryPresenters: Adam Asnes and Olivier Libouban of Lingoport

We’ll start with some source code and then:

  • Analyze it for internationalization issues
  • Customize “rule-sets” so that specific issues to that code can be address
  • Show how that information can be accessed and shared among development team members
  • Integrate automated Globalyzer static analysis via command line
  • Support testing initiatives

The Webinar targets technical managers, software engineers, test engineering managers, QA managers, internationalization and localization managers, and anyone facing ongoing software globalization and localization challenges.

Note: We’ll be diving straight into coding issues and will be skipping internationalization basics. If you’re looking for a presentation on internationalization and localization basics, please visit this archived presentation from Localization World: http://vimeo.com/16345751

About the presenters:
Adam Asnes founded Lingoport in 2001 after seeing firsthand that the niche for software globalization engineering products and services was underserved in the localization industry. As Lingoport’s President and CEO, he focuses on sales and marketing alliances while maintaining oversight of the company’s internationalization services engineering and Globalyzer product development.

Olivier Libouban, a native of France, has been working for 25 years in the software industry, for large corporations and start-ups, as a software engineer and as a project manager. Olivier has a wide ranging experience in the US, France, Switzerland, and Norway, in R&D departments as well as for client projects of all sizes with complex software environments.

Lingoport To Present Live Webinar On Supporting Internationalization I18n With Globalyzer 3.4

BOULDER, CO – November 18, 2010 – Lingoport (www.lingoport.com), a leading provider of software internationalization tools and I18n consulting services, announced today that it will present a live Webinar, Tuesday, November 30th, 2010, titled “Supporting Internationalization Across Your Enterprise With Globalyzer 3.4.”

For more companies than ever, global customers, revenue, marketing and partnerships are critical to their performance. So there is tremendous value in knowing if a product is global-ready, or internationalized, as part of the overall development cycle. Yet often, the only way software gets verified for localization is during the localization process itself. That’s way too late in the development cycle to be efficient and a very incomplete haphazard way to address the issue.

The latest Globalyzer release continues to support the software localization process and assists entire teams of developers to coordinate and perform internationalization development tasks faster through automation and with higher levels of accuracy.

The Webinar features special guest Michael Kuperstein, Localization Engineer, Global Language Solutions, at Intel. Michael’s responsibilities at Intel include tools development and internationalization consulting for product development teams; he has lead Globalyzer implementation at Intel.

This educational online event will be held between 11:00am and noon PST on Tuesday, November 30th, 2010. To register for this free Webinar, visit http://www.lingoport.com and complete the registration form provided.

As part of this presentation, Adam Asnes, CEO, and Olivier Libouban, Software Project Manager at Lingoport, will dive straight into source code and then:

  • Demonstrate how Globalyzer 3.4 finds, categorizes, tracks and helps fix internationalization bugs in source code using static analysis.
  • Customize “rule-sets” so that specific issues to that code can be addressed.
  • Show how that information can be accessed and shared among development team members.
  • Integrate automated Globalyzer static analysis via command line.
  • Support testing initiatives, and more.

This event targets professionals involved in helping their company succeed in international markets, including Product Managers, Software Developers, Engineering Managers, QA and Test Managers, Internationalization and Localization Managers, and Senior Software Executives responsible for international market share.

About Lingoport (www.lingoport.com)
Lingoport helps globally focused technology companies adapt their software for worldwide markets with expert internationalization and localization consulting and Globalyzer software.
Globalyzer, a market leading software internationalization tool, helps entire enterprises and development teams to effectively internationalize existing and newly developed source code and to prepare their applications for localization.

For more information, please visit http://www.lingoport.com or http://www.globalyzer.com or contact Lingoport at +1 303 444 8020 or info@lingoport.com.

The Need for Internationalization (i18n) in Administrative Solutions: A Case in Point with Region Centre

By Olivier Libouban, Software Project Manager at Lingoport.

A Region is an administrative layer in France, with elected officials, getting tax Euros, and setting up programs and initiatives for the EiffleTowercitizens. Part of the responsibility of any region is also to provide software solutions to the citizens. Part of the responsibility of any region is also to provide software solutions to the citizens, with significant budgets: the IT department of any Region manages bids, responses, and supervises the implementation of the solutions.

A case in point for “Region Centre”, situated close south west of Paris, is the need for an e-learning platform, dealing amongst other things with budgets, financial institutions, training institutions and citizens able to register and follow classes, either on-site or on-line. The request for proposal of such programs is sent by the IT department and gives the context, the functional needs, and the requirements at large for this type of program, including strategic technologies, such as Portal by a specific vendor. The entire platform may be composed of a large number of software components, in this case ranging from the software infrastructure pieces, such as Web application server, LDAP, and databases, to specific functional components, such as an e-learning tool to be integrated in the overall software and hardware platform.

The IT department oversees the responses to the request, and solutions which do not play in a French locale cannot be accepted. All components must behave and interact with each other, be it in terms of encoding, of searches, of collation, of UI presentation to citizens, training institutions, financing institutions, administrators of the system. In other words, the budgets for an administrative program are targeted at i18n compliant software.

Those administrative programs might be at a city level, a county level, a region level, a national level, even at a pan-national level, such as with the European Union, which serves citizens of Europe at large. The combined budgets of those IT departments are simply very large and can only be applied to i18n solutions.

Video Recording of LocalizationWorld Presentation: Intro to Internationalization and Localization

Internationalization and Localization experts Adam Asnes, of Lingoport, and Angelika Zerfaß, of zaac, recently presented at LocWorld in Seattle. Their session “Intro to Internationalization and Localization” was moderated by Daniel Goldschmidt, principal consultant and cofounder of RIGI Localization Solutions, and is now available for online viewing.

The one-hour recording of their presentation provides an overview over the different areas in internationalization and localization projects where best practices exist — starting from the concept of internationalization and how it is applied to project management dos and don’ts and the tools and technologies used in the field.

What If Internationalization Expectations Exceed Your Budget? – Significantly

Note: This article is featured in the June 2010 issue
of MultiLingual Computing Magazine, in Adam Asnes’ Business Side column.

If you’re considering internationalizing a large and complex software product, there’s one thing you should be prepared for: it’s expensive. There’s just no way around it if you want an application that properly presents, inputs, transforms and reports complex data. I’m talking about applications measured in the hundreds of thousands to millions of lines of code. Seriously, you’re just not going to internationalize a sizeable application that you’ve taken years to develop with money just laying around – unless you have a lot of money laying around, which is pretty rare these days. But before we consider what to do about it, let’s consider the main reasons why you may need to internationalize:

Survival –

Your customers are increasingly global, and perhaps they use your product to reach their customers. If you’re not internationalized, you’re limiting their business. The competition and your customers will know this and will eventually eat your company alive. You’d better start finding some money.

A Sale –

There is nothing like an important customer to get an initiative moving. If this sale funds the internationalization effort, it makes things easier, though there will be commitment that will extend beyond any one customer. I’ve written before how changing your encoding will change your company. But if this sale doesn’t pay for the effort, corporate initiative will be needed.

Your company is global –

Perhaps your company is a global brand and you’ve quickly developed or acquired a product that isn’t internationalized. In this case, the decision to internationalize is usually simple. You do it because you already have a global reputation, sales and distribution. If you have to justify ROI, somebody is missing the point, there’s a temporary issue or the product isn’t showing promise.

Strategic Initiative –

This article isn’t going to be about all the strategic benefits of growing global revenues with products that leverage themselves worldwide, because you know all about that, right? But acting on strategy takes foresight, money, expertise and perseverance.

If you have any of the above situations except budget, this article is especially for you.

I’ll repeat a situation I’ve seen many times. My firm, Lingoport, will be called upon for initial consulting as a company is considering internationalization in reaction to a declared strategic objective to gain business outside a home market. They usually have one or two customers asking for just that, but perhaps there isn’t enough initial interest to finance the necessary development and localization. We go back and perform static analysis on the code using our Globalyzer software, counting the embedded strings, locale-limiting methods/functions/classes and programming patterns that will need attention and refactoring, combined with architectural changes to support locale and changes in processing.

Even with automating tasks for batch efforts like string externalization (after analysis), you still have design, engineering and testing cycles that add up to significant expense. At this point we find out just how strong corporate global resolve sits. And in some cases that resolve is just not quite ready. It’s not a lost cause by any means. In fact, almost always, it’s just a matter of time and resources and most come around in future quarters or fiscal years. But there lies the gap for development managers.

Rarely do developers internationalize software just because it would be cool. You do see that kind of initiative for new features, where a developer might get an idea, work on it during odd or even personal time, and voila, present it to his or her company peers. I have yet to see that happen regarding internationalization (write me if you see otherwise). Still, developers and management often know the need to internationalize is there; ready to become a firm requirement any quarter now. They can go on continuing to develop new features and update current code and not go near internationalization, but actually increasing the scope of the internationalization effort as they grow the code base. Or they can take some simple steps to get ready. To use an expression, “When you find yourself in a hole, stop digging.” Here’s a brief list of what you can do:

  • Gather requirements – new locale requirements will go much further than what languages will need to be supported. An architect can be tasked with learning about issues like character encoding and locale frameworks. A product marketing person can learn a bit about use cases and business logic that may alter how the product behaves in new countries. It is all too easy to underestimate the requirements phase. Locale behavior will involve quite a bit more than just string externalization. Start tallying and recording what is found in a centrally available resource, like the company wiki for all to build upon and learn about.
  • Prototype a string retrieval method. Learn about resource files and string ID’s and how to make them work. Again, list your results in the company wiki.
  • Do a little reading about Unicode and its various encodings, along with appropriate technologies for their use. It’s not enough to commit to using Unicode. You have to gain some understanding of just what that means.
  • Consider your database schema and how that might change for locale support along with likely changes to character encoding.
  • Consider any third party components or open source you use within your application. Start inquiring about their internationalization support.
  • Consider internationalizing a pilot effort or component of your software if your product architecture will permit it. There’s nothing like learning by doing. And if you decide to take a somewhat different approach later, it probably won’t be too difficult to alter what you’ve already done.
  • Refine your planning – as you learn more, your planning efforts are likely to get clearer. As plans get clearer, they seem less risky and large. You’ll be in a better position to defend expected costs, resources and schedules.
  • Consider application logic. Does your software manage a process that is performed differently around the world?
  • Talk with experts – It’s not prudent to try and reinvent the internationalization process. An experience expert, who’s really been through multiple implementations rather than just advising, can get you prepared faster and cheaper than the time it will take using your internal developers. I’ve seen companies create their own proprietary approaches that ultimately get in the way of a successful implementation. Initial consultation shouldn’t be a budget buster. Even so there are free internationalization webinars (we give them and others do too) and excellent conferences available (i.e. Worldware and the Unicode Conferences).
  • Start measuring toward your expected outcome – If you establish internationalization development practices and measure benchmarks, you are likely to see improvements to new development without significant cost in time and money. Static analysis tools like Globalyzer create a systematic approach, but if there’s no budget, then a simple and clear inclusion of practices and expectations can go a long way.

If you do at least some of this prior to any funded but highly likely internationalization requirement, you’ll be a tremendous asset to your firm’s globalization efforts. And globalization might just be one of the more significant and company-making undertakings that your firm can embark upon.