I want to dedicate this post to a problem that I encounter several times.
- Did it ever happen to you that localization is the last thing to be done on the project?
- Was the release of your project delayed because of localization issues?
- Did your product go live just in English because there was no time to localize it?
In most of the projects localization is still done in “waterfall” mode, all the development is performed without thinking about it. Localization team is involved at a very late stage of the development cycle.
What impact does it have on the product?
In my opinion there are several problems related to it:
1) First it’s almost sure that the product will not be released on time. The team needs to wait for all localization so that the product can be released. Most of the times when the localization is done at the very end the GUI is not taken into account in order to support other languages than English. When the product includes other languages than English, several issues arise that needs to be solved.
2) Linguistic quality will be affected, localization and its testing will be performed in hurry. To perform localization testing GUI specs are needed. Most of the times at the end of the development GUI specs do change so much that no one has the latest version anymore, this will provoke many of the strings not being tested anymore.
As a final outcome, the localization cost will increase in order to correct all the defects inserted during the process. I am sure there are many more problems related to this but I wanted to highlight what are the most critical ones.
How can we improve this situation?
Based on my experience I believe these issues can be drastically reduced if localization is part of the development interactions.
What to change to make this happen?
The first thing to be changed is the people’s mind set. Localization is something that needs to be thought of since the beginning of the development.
The development team (usually called Scrum Team in Scrum World) should always contain a responsible person from the localization department. Developers should prepare the software in a way where resources files are used instead of “hard coded” strings.
The GUI specialist should work closely with the localization team in order to make sure that all the GUI is designed in a way that localization part will not have any big issues. Other languages than English usually take on average 20-30% more space, preparing the GUI for these situations will avoid many truncations issues.
Having localization part of the sprint, allowing localization test cases to be done and updated at the same time as the GUI changes allows the localization team to update the test cases immediately or even source files avoiding futures errors in the process. The projects I have participated it was normal to have test cases or source files out of date because there was not a clear conversation between GUI/development team and localization team.
For last a good way to make localization part of the development is to include it as part of the Definition of Done. A story is just completed when is fully localized. My experience shows that is difficult to include testing inside of the sprint. A possible way is to perform the testing within the next sprint when all the stories are done and fully integrated.
Resuming:
- Strings are created by the responsible person
- GUI personal needs to design the GUI taking into consideration other languages than English that will take 20-30% more space on average
- Developers work directly with resources files
- Localization department can localize the strings during the sprint
- Localization department can create localization testing cases based on the GUI specs for the stories being implemented during that sprint
- When the localization is ready, the resources files are included in the build
- Localization testing is performed in the next sprint
As a result, at the end of the sprint we will have:
- Software localized
- Localization test cases created
- Localization testing can start in the next sprint
This will help to reduce all the problems mentioned in the beginning of this post.
Do you think this is helpful?
Do you have any ideas?

