This is an English translation of the original Japanese article.
Under its corporate philosophy—“Inspire the world. Deliver joy every day.” —ZOZO aims to be a space of inclusion and inspiration, welcoming everyone who enjoys fashion and supporting a better future. This article describes the Android development structures of and challenges in each ZOZO product.
ZOZOTOWN
About the service
ZOZOTOWN is the largest online shopping website in Japan featuring more than 1,500 stores and 8,400 brands. The site offers an online catalog of 830,000 or more items at any given time, to which 2,900 new items are added every day on average (as of late September 2021). Housed within the ZOZOTOWN service are specialized malls ZOZOCOSME (beauty and cosmetics) and ZOZOSHOES (footwear), and a section ZOZOVILLA (luxury and designer brands).
Development structure
ZOZOTOWN’s basic structure involves assigning two to three members per project and having them perform code reviews mutually. One of those members arranges specifications with iOS engineers, designers and back-end engineers, among other individuals, which allows for each project member to engage in their development effort with a sense of responsibility and discretion. ZOZOTOWN members have more projects to work on than other product teams, and as such, they handle multiple projects at the same time. When one gets completed, another launches immediately. This parallel operation approach stems from the fact that many teams are involved in ZOZOTOWN and as such suggestions and consultations come in for many different projects. ZOZOTOWN members hope to cater to each department’s requests and at the same time make releases quicker and in higher quality.
Challenges
ZOZOTOWN has three major challenges.
- The first challenge is about securing personnel. Despite having a workforce of more than 10 members, many projects have yet to move into development because of a lack of resources. We will resolve this personnel-related challenge by facilitating recruitment.
- The second challenge is about optimizing team size. The relatively large team size at the moment has increased costs for decision-making and sharing information, in turn reducing the efficiency in development. Instead of trying to simply divide the team into two, ZOZOTOWN will aim for a flexible structure that allows for smoothly breaking into three or four teams down the road in conjunction with a personnel increase.
- The third challenge is about improving legacy code. Notably, screens that are modified in many projects have evolved into a spaghetti code mess and offer poor maintainability. We will make improvements while responding to requests from other teams, and, at the same time, promote efforts to clarifying goals so that everybody can understand the need to address this legacy code challenge.
WEAR
About the service
WEAR is one of the largest fashion apps that offers unlimited fashion / styling contents in Japan. Users can post, search and view outfits, and save outfits posted by “WEARISTA” (certified users by WEAR), sales associates, and general WEAR users. More than 11 million outfit posts have been made on the app and the number of app downloads has exceeded 15 million as of late September 2021.
Development structure
The WEAR team can be divided into two major roles. One handles projects while the other deals with refactoring and bug fixes. A lead is decided for each project who joins meetings with other leads to decide on specifications. Development efforts start after calculating person-hours to determine a general schedule with the PM team, assigning team members, and sharing specifications. All members take part in reviews regardless of their involvement in a project. Products get released if no problem is identified through subsequent design reviews and QA by the quality management team. This process is by and large the same for refactoring and bug fixes; whereas the PM team does not manage the schedule, the team internally sets a deadline, and from there, the same steps mentioned above for each project are taken. Regardless of these roles, the WEAR team implements its “Keep, Problem, and Try” (KPT) framework monthly to reflect on daily operations and identify problems, improving operations accordingly by making sure to practice the “Try” step by the next KPT. Another characteristic of the team is that members are based in wide-ranging areas, across Japan and overseas, since the team engages in development efforts by collaborating with external partners.
Challenges
The team is constantly working on projects with a set deadline and allocating a significant amount of time for them. As such, producing results efficiently as a team is a challenge because not enough time can be set aside for paying off technical debt and for implementing trending technologies. The team makes improvements as necessary by raising efficiency and arranging mechanisms, but little resource is available against the amount of operations. The WEAR team is therefore looking for engineers who want to come join the team’s development projects.
Measurement Technology
About the service
ZOZO runs a measurement technology-based business to help online customers overcome their hurdle: not being able to try products out. Relevant services include ZOZOMAT (a printed mat for 3D foot scanning), ZOZOGLASS (a device for skin tone capturing), ZOZOSUIT 2 (a bodysuit for 3D body scanning), and the new ZOZOMAT for Hands (a printed mat for 3D hand scanning) announced in October 2021.
Development structure
Development efforts are made in collaboration with an overseas team that studies measurement algorithms. The algorithm team provides a C++ library, and the measurement platform team uses NDK and cameras to develop measurement features. Given that the efforts entail novel measurement functions, team members develop an app prototype to perform usability tests and make improvements repetitively to deliver a smooth user experience. Measurement features are provided as an AAR file only to ZOZOTOWN at the moment, but plans are underway to provide these features in other services down the road.
Challenges
Despite there being three operations—new development, maintenance and operation of existing measurement features, and research and investigation—only three members are on the team. The team consequently faces such challenges as the development of a mechanism to efficiently maintain and operate libraries, enhancement of development efficiency through the arrangement of auto-testing systems, and the securing of resources to voluntarily solve challenges using camera, 3D, AR, cross-platform, and other technologies. Enhancing measurement success rates has been a constant challenge, too. To offer a smooth measurement experience to first-time service users, team members are performing usability tests, researching users’ behavioral data, and taking continued improvement steps accordingly.
FAANS
About the service
FAANS is an app specifically designed for sales staff at physical stores, supporting them in streamlining their sales by creating a new interface between them and online consumers. Combining ZOZOTOWN’s sales knowledge together with sales knowledge that sales staff gained at brick-and-mortar stores, FAANS brings to life a new sales method that optimizes "selling" and seamlessly merges online and offline worlds.
Development structure
A small team consisting of engineers from different areas of expertise are developing FAANS, a new service built from the ground-up. Considering themselves as a startup, team members have in place a development structure that puts overriding priority on verifying whether a certain product carries genuine value and emphasizes quick decision-making and delivery. Two Android engineers are on the team to develop the service’s Android app, but different teams will act as a cross-functional and mutually assisting unit when an obstacle arises in product delivery. Members are also required to independently think about what they and the product both need, and they engage in development with a considerable level of discretion given the team’s modest size.
Challenges
Being a new service, team members of FAANS need to swiftly develop features and make improvements based on the core of the product. The Android team currently consists of two members, and as such the FAANS team’s pressing issue is to build a mechanism that allows for efficient development by a small number of people. Mid- to long-term challenges for the service, moreover, is to optimize the general product development flow—not just Android app development—and to grow into an organization that can propose features based on data. The FAANS team is hoping to improve the product’s user experience under the lead of mobile app engineers and is taking on challenges daily.
In closing
If you have grown interests in ZOZO’s products, the first step you can take is to apply for a casual interview. In this interview, ZOZO staff speak with applicants over a tool called Miro, which the company uses in its day-to-day operations. Application form (Japanese)
About the author
Yusuke Yamada
Block Lead, Android Block, ZOZOTOWN App Department, ZOZOTOWN Development Division, ZOZO.
I have been involved in ZOZOTOWN’s Android app development since 2015 and have been managing the Android App Development Team from 2019 onwards.
I became a father in 2020 and work daily, grateful for the fully-remote work environment I’m in.
Twitter:@yymsdk