※This article is a translation of the original article from Tech Team Journal.
The Developer eXperience Day 2023 was held on June 14-15, 2023, hosted by the Japan CTO Association. The final session of the second day featured a presentation by Ken Wakasa, Group CTO of Mercari, Inc. and Managing Director of Mercari India. He spoke on the theme of "Globalization of the Development Organization and Developer Experience (DX): Evolution and Challenges at Mercari".
This article presents the kind of developer experience Mercari aspires to provide, with its products expanding globally and engineers from diverse nationalities and backgrounds joining.
Vice President, Group CTO of Mercari, Inc. and Managing Director of Mercari India
Ken received a graduate degree in informatics engineering at the University of Tokyo’s Graduate School of Engineering. He then worked on hardware-related software development (mobile phones, AV appliances) for Sun Microsystems and Sony. After joining Google and working on the development of Google Maps, he got involved with framework development as part of the Android OS dev team starting in 2010. He then worked on software development at Apple, then oversaw the development of the LINE messaging client for LINE. In August 2019, he joined Mercari as the Director of Client Engineering. In July 2021, he was appointed Mercari Japan CTO. He was appointed as the Managing Director of Mercari India (from June 2022), then moved onto becoming Group CTO in June 2023.
Why is the developer experience being discussed in the software domain?
Let me briefly introduce myself. I joined Mercari in 2019 and have been looking after the entire development organization as CTO for about 2 years now, from June 2022, I am also in charge of Mercari India, the Center of Excellence as the Managing Director.
I have been in this industry for about 25 years, developing Java platforms for cell phones, creating application platforms for consumer electronics, and developing Google Maps and the Android operating system. In this way, I have primarily been working on the platform side, and at Mercari, I manage the development of the entire product and platform, including the development of customer-facing features.
Today I will be discussing DX (Developer eXperience), but first I would like to consider why developer experience is discussed so often.
First and foremost, the developer experience itself is not the objective. The purpose is to achieve what we want to do, to accomplish our mission, and to grow our business to support that mission, and we consider the developer experience to be one of the means and prerequisites for achieving our goal.
It is also important to note that the developer experience is a major competitiveness in the hiring market. In my presentation, I will touch on the environment, tools, and frameworks for developers, as well as on addressing technical debt and investing in technology. But this time I will go beyond that and mention the developer experience.
Engineering is a broad area, ranging from hardware to software. However developer experience is actively discussed in the area of software. This is because software development is an area where ROI (return on investment) is more difficult to see. The level of complexity varies greatly from phase to phase, and software itself is an immature area of engineering, so good practices still continue to change.
It is essentially a given that the development experience should be smooth, but for this reason, the developer experience is being actively discussed in the software domain in particular. From now on, I will speak with that perspective in mind.
Mercari’s Approach to Development Environment and Technology Selection
First, we would like to introduce how Mercari has been thinking about the development environment and technology selection recently.
As a baseline, there are technology investments with relatively clear ROI (=cost effectiveness). Although some investments are large or difficult to implement, we believe that technological investments with clear ROI should be made steadily and without hesitation, as a matter of course.
On the other hand, continuous investment in technology is also required to scale the system. Here, too, ROI should be discussed and implemented in accordance with the phases of the product.
Mercari’s approach is not to be too particular about technology selection. As we will mention later, as an organization becomes more globalized and diversified, there will be situations where there is not much-shared context as a prerequisite. In such situations, leaving proprietary technologies and frameworks in place will inadvertently lower the developer experience. The basic idea is to create and adopt frameworks that are as neutral and widely accepted as possible.
I also think that getting on board with the areas, tools, and frameworks that the big players and platformers are actively investing in will also work well from the ROI perspective. Of course, there are desires to be particular and use cutting-edge technologies, but we think it is better for Mercari to adopt a balanced approach.
"Developer experience" is encompassed by the "employee experience”
At Mercari, we place great importance on the "employee experience,” so our philosophy is that the developer experience is encompassed by the employee experience. We have an organization called the Engineering Office that works to improve the developer experience, and its mission is to increase the productivity of engineers, support communication, and think about big strategies.
The Engineering Office has created an "Employee Journey Story for engineers”. This is an employee journey that begins with recruitment, onboarding, training, and ends with retirement. It sounds close to the HR-related area, but we believe that clarifying this journey and implementing a variety of measures is a prerequisite for the developer experience.
Let me make a few points about onboarding measures in particular.
Mercari places a high priority on ROI, and we are particularly conscious of consolidating the content. We are eliminating outdated content as much as possible, and at the same time, we are linking onboarding content not only to our new employees but also to existing employees and to use outside the company. The purpose of this is to clarify our thinking as Mercari within the company as well because we believe that the overall developer experience will not improve unless we are able to unify our intentions. We are also working on this from the perspective of strengthening governance.
Globalization and D&I enhance the developer experience
Some people say that Mercari is "highly globalized”. The reason why Mercari is globalizing its development organization is basically that when we went back to our mission and thought about what we needed to achieve it, we inevitably came to the conclusion that we needed to have our colleagues around the world join us.
Mercari’s group mission, which was recently disclosed to the public at our company’s 10th anniversary, is to "Circulate all forms of value to unleash the potential in all people”. The phrase "all people" mentioned here refers to people all over the world. It is simple and direct, but this is the reason why we are going global.
In order to promote globalization, we must first attract talented people from around the world to join Mercari. We need to first get them to think, "I can make use of my skills at Mercari”. I believe this is the reason why we are enhancing the developer experience by preparing the environment and systems.
To create an environment where it is easy for people to understand each other, where we can deliver our products fast, and to ease onboarding for engineers from around the world, the developer experience must be good for everyone.
In order to get people from different backgrounds to come in, we need to explain everything. However, the premise should be in low context, and it is necessary to properly explain everything in words, rather than assuming we understand each other. The same is true in the context of enhancing the developer experience. The developer experience itself has a high affinity with remote work, and as a result, it is effective not only for globalization but also as a new way of working.
Diversity & Inclusion will be a major subject as we move toward globalization since there are no shortcuts when it comes to this topic.
How do we make members from various backgrounds feel like part of the team? There are communication and language barriers, but we also need to provide training to mitigate these barriers.
We also emphasize the use of our products, and we provide training to support the use of our products for members who do not speak Japanese.
We also place great importance on information dissemination in both English and Japanese. While it is important to have documents in English, which in itself is easy to do if there is a bias toward English or Japanese in daily communication and messages from leaders, members who only speak one of the languages will feel alienated. This is why information should be presented in both English and Japanese. For this reason, we are very conscious of the fact that we must send out information in both English and Japanese at the same time, taking both sides into consideration.
Here is an introduction to Mercari India, our Center of Excellence founded in 2022. We are often asked "Why India?" and the first thing that comes to mind is the overwhelming quality and quantity of the tech talents.
Also, Mercari already has a number of talents joining from India, and we thought we can utilize the knowledge from those members. Mercari India is not an outsourcing company, but rather a structure similar to those in Japan and the U.S. Since 2023, we have also added a local site lead, so we are in the process of further strengthening our hiring and engineering capability.
In parallel, we are also expanding our organization based on strengthening the developer experience and accelerating our efforts to become a development organization that embodies D&I.
Challenges on “Autonomy and Governance" associated with Globalization
Now I would like to talk here in terms of "autonomy and governance."
There is a question that often is discussed internally; "for whom should we improve the developer experience?" However "the good developer experience" varies from team to team and from person to person. The more D&I progresses, the more discrepancies arise, so we have adopted a policy of avoiding a developer experience that is optimized only for a specific team or person, and instead considering how to improve the developer experience as a whole.
For this reason, it is important to ensure accountability when implementing measures to improve the developer experience. It is also important to carefully gather feedback from the field and to ensure that the developer experience is not a self-indulgent one.
Considering the autonomy and governance associated with globalization, globalization tends to expand diversity, while organizational expansion also tends to increase autonomy to scale individual businesses. The combination of both of these factors leads to local optimization, and the challenge is that governance and overall optimization are becoming increasingly difficult to achieve.
Investing in Developer Experience with "Business Goals and ROI" in Mind
I would like to delve deeper into the developer experience.
We believe that engineering is not only about writing code or developing code and that engineering is about solving problems. To achieve this, we focus on "what we want" rather than "what to do”. We believe this is the true developer experience. First, we need to understand the goal. In most cases, the goal is to achieve the business objective or mission. We believe that thinking about what to do and what not to do in order to achieve what we want, and then carrying it out, is the true meaning of a "good developer experience".
From this point on, we are talking about communication with management. In order to improve the developer experience, it is of course necessary to make investments for this purpose. In this way, how to fulfill accountability to management will also be a major topic.
As we discussed at the beginning, software is hard to see, so the world seen by the management and the developers are different. Business goals and developer experience are two things that need mutual understanding. For our part, we are conscious of the need for two-way communication between the field and management on how investment in the developer experience will contribute to the achievement of our business goals.
On the other hand, the investment in improving the developer experience can become very large. While the cost can become infinitely high in improving the developer experience alone, the ROI cannot be ignored.
We do not want to aim for "Gorgeous DX" or a “wealthy development environment”. Improving the developer experience is only a means to an end, and it is important to think carefully about ROI as a way to communicate with management.
As an example, cloud natives have the advantage of a better developer experience, but as we all know, the costs paid to cloud vendors can suddenly balloon or be unintentionally charged at a high rate. As a countermeasure, Mercari has recently launched a "FinOps" initiative. This is an initiative to visualize the costs of each business and measure, and make highly granular investment decisions by looking at each cost.
From Developer Experience to "Value Creating Experience”
To summarize the discussion so far, we have very broadly discussed the developer experience at Mercari. The baseline is smooth development and doing what needs to be done right. We start by understanding the purpose of improving the developer experience, and then we keep in mind implementing measures that are tied to the purpose.
Engineers are getting paid better and better, and companies are competing with each other to hire them. With this situation expected to continue in the future, engineers are no longer "workers" who make things when you ask them to, but rather "Smart Creatives" who solve business problems and create value. The way management perceives engineers is also changing in this sense.
We also discussed the employee experience that underpins the developer experience. In particular, I explained our emphasis on onboarding, and this kind of improvement in the developer experience is very compatible with globalization and can be considered a necessary condition. In light of this, a developer experience that is not self-indulgent is being required, and we are working to ensure governance by fulfilling accountability and promoting D&I-conscious initiatives.
We believe that the developer experience is ultimately "the experience of creating value through engineering excellence.” The foundation of a good developer experience is the ability to link our engineering to business and growth, and to take pride in what we have accomplished. We believe that by starting with a good developer experience, we can eventually lead to the "Value Creating Experience" by solving larger problems and creating value.