00:00:13.670
I want to talk about going global on Rails and our experience with expanding beyond Japan in the last year.
00:00:16.289
My name is Miles, and that's me on Twitter, although I don't say anything very interesting there. You can also find me on GitHub, but I haven't published anything of note.
00:00:23.070
Originally, I'm from England, and listening to the panel discussion earlier made me realize how old I am. My first experience coding was back around 1980 when I was about eleven.
00:00:36.000
In those days, you'd buy a magazine filled with basic code and spend eight hours typing it out, only to see it print a simple circle at the end. That was my beginning.
00:00:50.220
I gathered my things and moved to San Francisco, where I started working for various startups. From there, I made my way to Japan, searching for interesting experiences and pictures.
00:01:06.720
I've been in Tokyo for about six years now, which is the longest I've worked anywhere. Our mission is very simple: to improve people's lives through cooking.
00:01:20.000
Cookpad is a very large service in Japan and has been running for 18 years, nearly since the pre-Google age. It's hard to believe that 80% of women aged 20 to 40 use it every month, which speaks volumes about its impact.
00:01:42.240
Despite its popularity, the platform is very Japan-centric, and few people outside Japan, myself included, can read any of the content. While it's remarkable for Japan, it doesn't resonate with audiences elsewhere.
00:01:56.070
We set out on a project to take what we've learned in Japan over the last 18 years and expand it internationally. We began by acquiring several recipe companies in Spain, Indonesia, and Lebanon with the aim of making cooking enjoyable for everyone around the world.
00:02:20.740
Gradually, over the past year, we have integrated these services, their content, and teams into a single platform called Cookpad. Now, we boast around 25 million unique users from various countries, all engaging in eight different languages.
00:02:38.590
We’ve created local teams in the regions we've acquired, but we also maintain a global development effort. Today, I want to discuss some of the challenges we've faced and the tools we've developed to overcome them.
00:02:50.980
This is our headquarters in Tokyo. We have accumulated a lot of experience in understanding how people cook in Japan, and we also have an office in Indonesia.
00:03:08.019
Having employees on the ground in different countries is crucial. Each region presents unique challenges, and it's far more effective to have engineers living and working closely with local families and communities to understand their needs.
00:03:31.180
For instance, in Jakarta, cell phone usage can be incredibly frustrating. Until I visited in person, I had no idea how challenging it could be. Experiencing these issues first-hand allows you to focus on solving the real problems.
00:03:52.280
In Spain, we encountered another fascinating challenge. Spanish is widely spoken across 21 countries, but each region has its own nuances. Therefore, the content offered in Spain may not resonate with audiences in Argentina or even Mexico.
00:04:12.650
We aimed to personalize our content to cater to different Spanish-speaking audiences, with team members in Spain and Mexico providing essential local insights. Similarly, in Lebanon, the right-to-left reading of Arabic added another layer of complexity.
00:04:35.390
It proved invaluable to have engineers on the ground to navigate these challenges. Collaboration between teams from different regions became vital in addressing these issues.
00:05:00.260
As we continued our work, we identified several workflows that began to emerge. I’d love to hear about anyone else's experiences. Here are a few things we’ve been working on.
00:05:22.140
First, we focused on validating our ideas. Everyone in the team has tons of ideas and thinks they understand the best approach. However, with a distributed team, clear communication becomes a challenge.
00:05:43.540
We needed to implement a process not only to generate ideas but also to facilitate validation of those ideas. We started using hypothesis-driven development, which assists in clearly defining our thinking.
00:06:06.930
This approach requires having one champion or point person to oversee each idea, as it can become overwhelming when you have multiple projects happening simultaneously.
00:06:20.090
Additionally, we focused on understanding the reasoning behind each idea. Knowing the story or rationale for a feature aids in making it more compelling.
00:06:37.620
Asking ourselves ‘What do we believe will happen?’ is a vital step in every proposal. Establishing measurable results helps us ascertain the success of each idea.
00:06:59.430
Despite how obvious this may seem, articulating and framing our hypotheses proved difficult, yet invaluable for ensuring effective communication and alignment across the teams.
00:07:16.370
Moving forward, we also learned that keeping everyone aligned and focused on common goals is essential, particularly not just for engineers but for all team members.
00:07:36.280
This is perhaps my favorite workflow. We organize our stories in Pivotal Tracker and automate various aspects of our workflow. Countless times I’ve caught myself wasting time deciding on titles for branches or stories.
00:07:57.100
This system automates those decisions from the command line. After we input all our stories into Pivotal Tracker, we simply type our command to start working on a chosen story.
00:08:20.380
The automation creates the branch based on the story title, enabling us to dive straight into development without unnecessary delays.
00:08:40.690
The third tool we implemented led us towards experimenting with simpler solutions. For example, after establishing regional hypotheses, we utilize feature toggles to test new features.
00:09:03.720
Using incrementally tested hypotheses allows us to determine the viability of features. If these features succeed, we move towards deploying them more broadly.
00:09:25.820
In preparing for our deployment processes, we found it essential to communicate effectively among the larger team spread across various time zones.
00:09:49.390
The challenge lies in ensuring that everyone is aware of new releases despite many team members not actively monitoring GitHub.
00:10:14.050
To address this, we set up a release channel where updates are shared immediately when a deployment occurs, highlighting what has changed since the last deployment.
00:10:34.670
This channel effectively reduces the manual effort required and ensures that all team members are informed of necessary updates, keeping us organized.
00:11:00.090
Every time we deploy, a record is created automatically on GitHub, making it easier to track changes over time.
00:11:19.210
These small details, while seemingly minor on their own, add up to significant time savings when you have large teams working in various locations.
00:11:39.630
At our core, we have around 100 engineers in Japan and additionally around 20 engineers across six or seven countries internationally.
00:11:58.800
We prioritize over-communication in a way that remains familiar and engaging, which is critical for our global work environment.
00:12:21.570
To conclude, the five processes we’ve adopted over the past year have greatly improved our productivity and organization.
00:12:40.509
I’m eager to hear about anyone else’s approaches, especially if they can relate to our circumstances.
00:13:00.770
I’d like to express gratitude to my team; despite the new and chaotic environment, their commitment has been remarkable.
00:13:25.280
Managing growth has been demanding, especially while trying to find great people who share our mission. We're aiming to build our Rails team across various platforms, including iOS and Android.
00:13:49.000
Our projects in machine learning have started gaining traction, particularly in image recognition, which can significantly aid us in our quest to improve accessibility for cooking and sharing recipes.
00:14:08.030
I’m excited about the potential developments on the horizon. If anyone has questions—whether about the topics covered or working and living in different environments—please feel free to ask.
00:14:27.350
Thank you for your attention, and I appreciate your support as we navigate our journey of international expansion.