This is an English translation of the original Japanese article.
Hello! We are from RoomClip. In line with our mission of “supporting everyday creativity,” we independently develop and operate in-house “RoomClip,” Japan’s largest housing and lifestyle social platform gathering actual photos showing how people live. For this article, we asked the Android team responsible for development of RoomClip about how they usually pursue developments, the variety of initiatives they have pursued so far, and their future.
The RoomClip product and Android team
― Please tell us about RoomClip
RoomClip is a social networking service specializing in housing and lifestyle, as well as a product expanding communication as users post photos and other users “Like” and/or comment on them. Since 2018, we have been a DroidKaigi sponsor. Some may also remember us as the “cupcake company.”
―What sort of development does the Android team usually do?
Washida:
Basically, we develop the Android version of the RoomClip app. While building upon development of the main RoomClip features as an SNS tool, we have been actively developing, as part of our corporate plan, RoomClip Shopping, newly released this year. Recently, we have been quite busy developing a feature for clients to market products through their own account as well as a feature enabling users to view and purchase products.
Tominaga:
We have also been busy, among other things, upgrading libraries. Android 12 just came out, so we have been making modifications and other changes to support new features.
―What kind of a team is the Android Team?
Kawakami:
I have been involved in development at several other companies, but I think that the distinguishing feature of our Android team is its close communication. It has often been the case that reviews conducted at other companies were mere formalities, but the RoomClip Android team has a culture of verifying each other’s code.
―“Maintaining close communication” is a key point, isn’t it?
Tominaga:
Yes, it is. I think that the reviews conducted at RoomClip have produced good effects as well as ensured code quality. When feature implementation is divided up among team members, each member researches and adopts technology appropriate for a specific feature and proceeds to implement that, so the reviews provide an opportunity to encounter new language features and frameworks. This team discusses many things in reviews to seek more optimal implementations. I think that we have a good culture of maintaining close communication in a way that allows each one of us to grow.
Washida:
I feel the same way. I think that a good thing about this team is that we take the initiative to ask questions and talk over our opinions with each other. During a code review, there is a tendency to be biased toward the opinions of people with longer experience, but I think that the opinions of people who have yet to build up that experience are also important. For instance, there have been situations where when a review came up with the comment: “I’m not sure whether this is a mistake, but it concerns me,” the response would be: “That’s the way we have always done it, but, if you change your point of view, then you realize that it hasn’t necessarily been the correct way.” That’s why we try to be particularly aware so that communication isn’t just one way. Our aim is to have a team where even people who have just joined the company and those with little experience are able to speak up without hesitation as much as possible. Besides the reviews, we find time to communicate every day during morning and evening meetings as well as other occasions and always try to be ready to discuss our concerns.
―Was there something that happened to trigger the creation of such a culture?
Tominaga:
I joined the company as one of the original team members. I would be hard-pressed to say I had an extensive career as an Android engineer at the time. That was also a time when I was having a hard time keeping up with the latest technologies. Looking back on that now, I think it was the beginning as I thought that I couldn’t keep going on this way and had to somehow or other say something to the people around me and make an effort to catch up. At the time, it was necessary to stabilize the development capabilities of the RoomClip Android team and the best way of doing that at the time was to have close and thorough conversations. I think that custom still remains in a good way today.
Washida:
Yes, it does. From that start, our team has assembled even more members. However, I believe it is important that the environment has not changed and people in a variety of positions, regardless of their experience or background, are able to share their opinions and doubts. If the person making the decision gets locked into that role, then there is a tendency that design becomes dependent upon that person and, when revisions are necessary later on, only that person is capable of doing it. We have pursued what we think the team needs each time, which has shaped our current decision-making style. The RoomClip management team also originally had a style of being keen to discuss and work things out reasonably. I think the way we are doing things is a well suited to that practice.
Initiatives for resolving communication issues
―Could you tell us about an episode that illustrates the practice of “advancing a project rationally while maintaining communication”?
Tominaga:
This is related to what was being said about dependence upon an individual person. I think the story about working on “generating code from API specification” really applies here. The initial API response specifications were determined by the person in charge and API developer, but not documented, so other engineers had to ask those people about the specifications.
Washida:
There were also situations where differences in perception arose among the people involved in API development, those working on iOS, and those responsible for Android. The response formats were also varied and disorganized. In order to synchronize all those different viewpoints, we worked on making reference documents, and for something more tangible, generated code based upon API specifications a few years ago. Now, when we write specifications in text, a system operating in several places automatically generates code.
―Are those sorts of initiatives ongoing now still?
Tominaga:
I think the story about console development, which I was handling recently, has something in common with what we were saying about API specifications. Once the issues we faced in reconciling response formats among the Android, iOS and API coordinators were straightened out with reference documents and things became easier, I next began to be concerned about the data itself retrieved by the app. For example, a URL link sent via the “Notification” feature would, speaking from the standpoint of API response discussed earlier, clear the specifications if a string is returned. However, we noticed cases where “although there were absolutely no issues in terms of the API response, when it was actually run, the result was different from anticipated” such as a missing https at the top or a URL returning a setting different from the one anticipating the URL to the article. When that happens, the conversations are then not just among engineers, but with non-engineer team members operating the system. Even though we had many conversations within the team, more and more new team members were coming on board, so we thought about how the situation could be resolved and came up with the idea of developing a console. Development moves forward as team members consult with relevant offices, and now the console can be used to closely coordinate feature checks when data such as notifications is registered.
RoomClip Android team’s future challenges
―It seems that you are pursuing a variety of things for the organization even in areas other than app development.
Washida:
Yes, we do. However, these are not negative things that “must be done,” but something akin to “handling aspects outside the realm of app development, based on things we noticed while developing apps.” Of course, our first thought is to want to improve the app. This year, Jetpack Compose came out, so we will probably proceed to transition our infrastructure away from the conventional Android Framework. We do not intend to change our stance of being committed to take on the challenges faced in app development. We will continue to do that.
Tominaga:
When new technology is released for Android, we have a communication process firmly in place where team members discuss whether or not the technology is suitable for RoomClip, and if we think its incorporation will be positive, we incorporate it, and if we don’t believe it will help, then we don’t adopt it. Even within a culture where we “make rational decisions while discussing options,” we also would like to take up the challenge of working with new technologies, so we often adopt new technologies unless they are extremely negative for RoomClip.
Kawakami:
Well, that is why RoomClip team members are always on the lookout for new technologies and other ideas, and we are always sharing information not just within the Android team, but the entire development organization. Moreover, I believe we have a unique culture at RoomClip in that we prioritize user experience, development efficiency, and other factors, and constructively consider adopting new technologies.
Washida:
I hope we will also continue to discuss and take up challenges as a team in this way in the future, too.
In closing
While developing apps every day, the Android team continues to grow through initiatives that promote our business and encourage taking up the challenge of new technologies.
RoomClip is looking to hire people who would like to take up these new challenges together with us.
If you are interested, be sure to check out our career information here and apply!
Also, we welcome anyone who would like to talk to RoomClip team members!
We have also set up a forum on meety so we can casually meet and talk!
Team members interviewed
Washida
I develop Android apps. Focused on programming and Twitter, and ended up only being able to do programming and Twitter. Until about 2016, I was mainly involved in web development.
Tominaga
I'm an Android developer and I love Bugdroid! Recently, I made my debut on front-end web development for our in-house system. In pursuing development, my motto is “be sincere to the user.”
Kawakami
I troubleshoot problems in various workplaces. I find RoomClip very comfortable and have made it my home since last year. I find languages with not so rugged typing difficult to deal with.