This is an English translation of the original Japanese article.
Since our founding in 1997, we at mixi have been offering services—including our namesake social networking platform and smartphone apps Monster Strike and FamilyAlbum—designed for people to enjoy communicating with friends, family members, and other loved ones. Twenty services are available at the moment with more unreleased ones in the pipeline, and we’re developing new businesses and games in rapid succession, too. In this article, we share development cases of FamilyAlbum and TIPSTAR as representative examples from our extensive product range to talk about our development framework and engineering culture.
1. Organization for development in mixi
1.1 Our three business areas
Basing ourselves around the communication domain, mixi runs businesses in sports (including TIPSTAR and Chiba Jets Funabashi), lifestyle (including FamilyAlbum, minimo, and the mixi social networking platform) and digital entertainments (including games such as Monster Strike and Kotodaman, as well as animation).
*For details on mixi Group’s businesses, click here *To see the Group’s PR video, click here
1.2 Development organization structure with product team and expert team
As of October 2021, some 280 members out of mixi’s roughly 1,100 employees are engineers. Like our regular employees, many subcontractors work as an active part of our teams, too.
On the development organization front, business departments have an engineering team to develop and run each of their services, and what technology to use and development steps to adopt for the services differ by the team. We also have a development department with each area's experts that provides specialized advice and technical assistance, offering security-related and other types of support that cannot be dealt with by the service development team alone.
1.3 Engineering culture
Readers may think that having a development team for each of our services means each team’s cultures and ideologies vary. But in reality, there’s a lot in common.
One example is strategic measures against radical increased load. We have accumulated know-how from our experience in overcoming various issues, both in terms of hardware and software, in dealing with the radical increase in access that tends to occur during the year-end and New Year events, such as the SNS "mixi" and Monster Strike. As for security, we now have a company-wide support framework that’s based on the insight we gained through years of providing web services and mobile applications.
On the quality front, mixi is underpinned by a culture of team development that maintains speed and quality. Examples of this include our thorough source control exercised by adopting Infrastructure as a Code (IaC) processes not only in our review culture and automated tests but also in our infrastructure operation, as well as our quality assurance team framework meant for ensuring the quality of our services from a user experience perspective.
What our development teams find grateful beyond anything is the high technological understanding that mixi’s management has. When business managers and non-engineer decision-makers for each service understand technology, that means things go very smoothly in the event the team wants to introduce new technology and tools, or when refactoring is needed from a technical standpoint, among other situations. (Needless to say, proper explanations—such as the contribution to the business—are necessary.)
2. Development case (1) FamilyAlbum
FamilyAlbum is an app through which users can share the growth of their children with family and relatives. Ever since the service launched in April 2015, the app’s development team has been optimizing its development style and framework in conjunction with changes in the product.
Therefore, this section will share the app’s current development system and method.
2.1 Bottom-up strategy development, and a project-based organization
To solve speed and complexity issues, FamilyAlbum’s development framework transitioned from Large Scale Scrum (LeSS) to a projectized organization structure in June 2021. See this article for details.
FamilyAlbum’s development organization is characterized by strategy-making. Strategies for the service are developed in a bottom-up manner, with members from all layers and job categories taking part in devising strategies; they are not created in a top-down approach or presented from planning or other special area members.
We develop strategies for FamilyAlbum through an internal strategy discussion event (irregularly hosted) in which all members participate to discuss the course of the product and list up ideas for improvement and new features. Based on this list, managers from each department and product owners discuss further and devise strategies as a roadmap for the upcoming year.
The many improvement plans and ideas produced through the discussion event get arranged into a two- to three-month development period and defined as projects, and teams assign necessary members in the order of priority. When deciding members, we try to assign people who have a clear vision for the project (e.g. individuals who have strengths in the area or raised issues in the discussion) for their active involvement in the project.
Apart from strategic projects, FamilyAlbum has technical continuous improvement projects to high quality of system and speedy development in the future, too. This project, constantly up and running, is one where engineers have broad discretion and raise issues as necessary, all the while they engage in refactoring for the code base that serves as successful future development and utilize software to improve inefficient jobs. Included in this improvement effort are responses to unexpected flaws and requests from the Customer Support Team.
2.2 Development for highly accurate product with minimum viable products (MVP)
Once a project launches, we assign a lead engineer to head the project before moving on to product development. The chosen individual has the designer share specifications determined through UX research and hypothesis testing. The MVP is finalized from the specifications, after narrowing down minimum necessary features upon reviewing the balance between such factors as value provided to users and feature implementation costs.
We consider this a very important process for FamilyAlbum. That’s because in the past, we completed each screen as per specifications without factoring in the MVP, causing our general refinement meeting to get delayed and our update costs to balloon.
Our priority is on a development approach that implements main features in the MVP-defined order of priority and allows for delivering primary experience in the fastest way possible.
After gaining an overall picture of the specifications, the lead engineer develops phases, shares them with the development team, and assigns the product backlog creation task for the first phase. Not making this task dependent on specific individuals allows for each team member to naturally deepen their understanding of the product.
Then, each phase repeats iterations of estimation, implementation, refinement meeting, and response to refinement.
We invite you to read this article for details on our approach to FamilyAlbum’s product development.
2.3 About the FamilyAlbum Android app
Maintaining quality as software is also an important factor for the FamilyAlbum Android app. We give due considerations to users’ convenience by utilizing WorkManager to speed up photo and video uploads, while leveraging NotificationChannel for notification settings.
Our recent major update involved support for widgets. Since a lot of user’s requests come in after we offered a widget on iOS, we decided to do the same for Android, too. Naturally, it was not the same as iOS, and the number of views that could be used was limited, but since the media update timing was different, we devised the MVVM logic to implement it.
The FamilyAlbum app development team is eager to train iOS and Android engineers. We take inexperienced part-timers (16 years of age or older), as mentioned in this article, and have hired one person each back in September and October.
3. Development case (2) TIPSTAR
3.1 TIPSTAR
TIPSTAR is a sports-betting service, offering live broadcasts and online betting tickets for Keirin bicycle race, auto race, and PIST6 events that are streamed throughout the year. Fans can enjoy TIPSTAR with their friends, basically free of charge.
Instead of just watching broadcasts and betting, a team of what the service calls “tipstars” consisting of comedians and fashion models appear live every day to predict race results. Anyone can easily participate in “mirror betting,” which lets users place bets that match the predictions of the presenters or other users.
When users log in, or on other occasions, TIPSTAR grants a free “TIP medals” with which users can bet on races free of charge. Also allowing users to make paid bets via the in-game currency “TIP Money,” users can get a chance to win a “TIP Money” through a special gacha available for successful bets using “TIP medals”.
We started offering TIPSTAR in June 2020, and currently the service is available on smartphone apps and web browsers.
3.2 Overview of TIPSTAR’s system
Using artificial intelligence, TIPSTAR auto-edits live broadcasts from over 40 race venues nationwide and delivers them—alongside footage of tipstars from a private studio—to users almost entirely in real-time.
3.3 About the TIPSTAR Android app
Apart from just viewing and enjoying race broadcasts, TIPSTAR Android app users can make online bets to guess race results, make “mirror betting” bets, and play together with friends.
The app also values its world-building and user experience. It gives special consideration for in-app experience by enabling users to engage in other operations while playing live broadcasts and by triggering different sound effects with each user action. As a result, the app inevitably has built into a lot of little tricks for handling and directing the live video.
To achieve such subtle yet special effects, we give particular attention to implementing views. For example, to cater to a business need requiring us to change specific race view themes into red, we implement the radar chart custom view in a special way, deal with complex view animation using MotionLayout, and customize material design. We also enable users to engage in other actions while playing broadcasts in the background.
Our recent update added a multi-play feature so that users can play with family members or friends nearby. A new cycling competition sports entertainment called PIST6 debuted, too.
4. Summary
This article introduced two of our development cases. We couldn’t get into the details here, but for both products we adopted a speed- and quality-based development style to maximize value. This is the appeal and strength that we at mixi have been fostering since our days as a social networking platform.
Our diverse businesses make for an environment where employees can take on various challenges, too. Engineers can take advantage of their area of expertise and work not only in one technical field but multiple areas. We also have an internal job-switching system called mcc, through which people can change not only the service they are involved in but also their job category.
We at mixi are looking for colleagues in various businesses and positions. Check out our career opportunities.
- mixi is looking for colleagues to foster communication together!
- We’re offering mixi tech info on Twitter! @mixi_engineers
- Our engineer blog is available on Medium! @mixi-developers
- YouTube content available too! mixi Tech Talk
This article turned out to be longer than I expected. To those of you who have reached this far, thank you. I hope I’ve managed to spark some interest in the mixi Group.
About the author
Emi Sugita @semiemi7
Emi Sugita joined mixi as an application engineer in August 2009. After working in EM, PdM, TechPR, and HR positions, she now works at the CTO Office’s DevRel Group and, apart from engaging in engineering and recruitment PR, she supports various communities to build and vitalize relations between internal and external developers. Recently she’s been studying hard on weekends to brush up her rusty English skills.
Special thanks
This article was made possible with the cooperation of development teams and other related groups. I’d like to express my appreciation for their help.
- FamilyAlbum development team
- TIPSTAR development team
- PR/intellectual property team