What I Learned from Building Large-Scale Applications for Overseas Clients
The IT industry in China is rapidly growing. Over the last year in Hong Kong, I’ve had the privilege of working on an exciting project that has become a significant milestone in my career, offering me the opportunity to learn something new and innovative.
While working on many projects, it’s generally more productive to have every team member located in the same place. However, I found myself collaborating with remote colleagues across various time zones, including Pacific Standard Time, UTC-06:00, and UTC+10:00, which wasn’t ideal for productivity.
Another challenge is the language barrier with clients. For those who speak Chinese but aren’t proficient typists, I recommend learning the pinyin input method to keep up with brief conversations in QQ Chat.
To the surprise of many foreigners, China censors GitHub, making it impossible to simply use npm install
& bower install
within the Great Firewall. Additionally, hosting on AWS and some analytics tools are blocked, necessitating the search for alternatives. Moreover, your developer colleagues may prefer a different work style, rather than adopting scrum methodology or using the JIRA board for project visibility.
Our public beta test of the Ember application encountered performance issues. The initial load and rendering times were slow, despite Ember’s developer-friendly tools. Compounding the problem, at least 20% of our customers used low-end computers with outdated browsers. I was amazed to see Windows XP crash simply from loading font icons. We eventually addressed this issue by refactoring the application with vanilla JavaScript. Although this improved speed, it doubled the amount of code and tripled the number of states and bugs to manage, which was far from ideal.
One crucial lesson we learned the hard way is the importance of maintaining complete control over the delivery pipeline; otherwise, a release becomes unattainable. Shipping early and often is more of an art than a science. Despite working for months on three redesigns and receiving positive feedback, we were still unable to launch the project. The inertia inherent in large corporations and a culture resistant to change proved too difficult to overcome.
Through this project, we gained valuable insights into both the technical and project management aspects. Shipping early and often is best practice, and I look forward to applying these lessons to future projects.