Have been playing different roles for 8 years working in tech. From software engineer, analyst, consultant to manager and back at developer role recently. Here is a story of the recent project that I involve in and my thoughts on that.
As a developer, you did great work. You solve problems, coming out with new solution to tackle the business needs.
But you don’t like documentation. Because you think, as a good developer like you, people should just read the code! Code will tell you everything. That’s the most reliable documentation.
Well, it’s the most reliable and source of truth, but doesn’t mean reading code is the most human friendly and most effective.
I work on an interesting project recently — right to left (RTL) our application, to support languages like Arabic, Hebrew. This project also including refactoring the current way of handling translation.
Here is the screenshot on how a page look like before and after RTL.
sample screenshot
Sound simple? Yes and No.
We have teams working in different countries and totally different timezone. For example, my 11pm would be 4am on the other side.
Since these changes will impact all UIs, all teams across countries must be aware of it.
As a newbie in the company, I realise the teams here don’t share their architecture and implementation normally.
Some of my awesome colleagues have lay some foundation on the new translation implementation, but the knowledge doesn’t really share to anyone including when the project was handed over me.
Other teams, be it teams in the same country or other countries, is not entirely aware on the translation and RTL changes. Since they are not aware, therefore,
The main source of the issues is communication breakdown.
Tell everyone your changes and what they need to do. Channels like email, Slack, Skype etc. For my case, email is the most effective way, and slack in our engineering channel and pinned it.
Here are my thoughts on email format. Always short summary come first, then TL;DR, no one has time to read long email when they don’t need to.
Here is an Example:
Summary
Moving forward, we will maintain all translations in X, a tool for translation management.
START using the X for any current or future features that you are working on.
Why Moving to X
We have ambitious plan to go to the world. This mean that we need to be able to launch in new country faster.
As part of the effort, we need to:-
- Have a centralise translation management. Easier and faster for translator to add in new language for country launch.
- Less or No developer involved in adding translation. Free developer to be more focus on building feature rather than adding translation.
What You Need to Do
The migration is in progress. YOU are part of it.
I’ve added a section in README(link here) on the code changes required.
Take a look. Look for core team names if you have any questions on that.
START using the X for any current or future features that you are working on.
Straight to the point, can break it in to the Smaller picture (Implementation) and the Bigger Picture (TLDR, architecture changes). Maintain it in your sharing site, be it Share points, Confluence, or Github markdown.
The Smaller Picture
Conduct if required. To the team who need further details.
Make no one scare of touching your code.
When bugs happens related to the changes, out of your office hours, the developers on the other side of the globe can pick it up.
When there are new UI developed or developing by the other teams, you don’t want to RTL nor translate for them.
Making sure they have enough knowledge on
Should it be done when you’ve completed the project? Or when you have a solution? It depends.
For my case, we share with the teams when we have concrete and stable solution when we have about 70% of the pages are RTL-ed.
But I think the communication can be done earlier, when we have about 30% pages converted, because at that point we have concrete solution already.
Communication should be done as early as possible.
If you know the target team, send to them. In my case, the email is sent to all developers because translation and RTL is application wide.
If no one is doing this in the company, don’t be afraid. YOU can be the one to start this.
Don’t have the mindset of “I am just a developer” because these matters YOU. Do it when you think you need to.
Talk to your leads, talk to your managers. I am glad I have a helpful and open lead that listen for feedback. And we did it. Email it out and slack it. The result is pretty encouraging I think.
We have other team members start asking questions on the implementation; we have the co-worker who do the original POC wrote a detailed TLDR section (which some of it I didn’t know).
This is good. Get the ball rolling!
I don’t like lengthy email. I don’t dive in to lengthy documentation if I have no interest or not working on that. However, I would like to be aware of what should I take note.
Documentation is boring too, so keep it short, write it the way you like to read.
Knowing high level on what are the changes, what should I do and dive into details later whenever I need to.
Communication is important. Cascading information effectively is important especially you have large team like that. Pick any means that work for you.