Challenges to developing connected-car with the collaboration of Japan and US, based on open-communication and agile development
TOYOTA Connected Japan, Inc (TCJP) is collaborating with TOYOTA Connected North America, Inc. TCNA）to develop the next generation in-vehicle software as a “Global One Team”. Interviewed Andrew Wells who is in charge of front-end engineering as a manager at TCNA about rewards, opportunities, and collaboration between Japan and the US.
I joined the world of connected-car development from a background in game development. I wanted to deliver exciting “Experiences” to customers
——Please share your background until joining TCNA.
Originally I wanted to be an investment banker and studied economics at college, around 2010, I bought my first iPhone and I fell in love with it and I knew I wanted to make apps. The only problem was I didn't know how to program or anything about how to create applications for iPhones, so I bought programming books and started to teach myself how to develop apps.
Eventually, I got a job as an engineer at a small indie gaming studio, that develops mobile games for iPhones and iPads.
——What were your learnings by working at a gaming studio?
I think starting in game development was very important for me because I had to spend a lot of time focusing on the experience of the user and making sure that the customer had a fun and enjoyable experience.
No one wants to play a game that is boring or broken. I think that's a very important thing to learn as a front-end engineer.
In this gaming studio, it's hard to get a return on your investment so we built applications for the other companies as well. For example, I worked on an application for pilots for logging their working hours on the iPad app. This helped me learn how to bring lessons from gaming world to other application experiences.
——What brought you to join TCNA?
After the gaming studio, I worked at a startup called Vinli which
develops connected-car. What we were working on is an appliance that you could
plug into your car to any standard car and turn it into a smart car. By connecting an appliance to the engine, it could send all that information up to the cloud or internet service via Wi-Fi
or internet connection.
Working in the connected-car industry introduced me to TOYOTAConnected, who shared the same philosophy of making a better in-car experience for their customers.
TCNA has the opportunity to work on brand new technology-driven services that can impact a lot of people because it's under the TOYOTA umbrella. You could make something and millions of people could use it and it can make their lives better. So I think that's really what I enjoy about working at TCNA.
Next generation’s in-vehicle software development project by agile development
— What kind of project are you involved in currently?
Currently, I am working on the next-generation in-vehicle software development project, which includes the head unit display in the console as well as the instrument cluster behind the steering wheel.
—— What are your specific responsibilities for current projects?
Basically, I have a few responsibilities, one is to lead my team of engineers, but at TOYOTA Connected we have a philosophy that managers are working.
I probably won't go into the management but, for me it's mainly designing and developing features, thinking about how a screen should look, thinking about how animation should feel like if the user clicks on this button like how should it transition to the next screen and I write code.
So that means that I'm not just responsible for the team, but also very involved in sort of the day-to-day coding and designing tasks that the rest of the team is doing.
My job essentially is to work with product owners and designers to build features for their products. For instance, the media team product owners might say “We want to add a new music feature to the head unit application”. So we would get the requirements from the product owners, like what needs to happen, user flow, and the user journey.
Then I would work with the designer to come up with the image of what that would look like and we would talk back and forth like “This is technically possible or not”, “This could work this way”, once we've got a final design then I would take the designing an application like Figma or sketch a design application and I would build the design into the app.
—— Please tell us about your work process. At each phase for example requirements, design, and implementation, what kind of people are involved, what kind of decisions are made, and how does the process proceed?
We use the agile process. Basically, it all starts with your product owner coming up with use-cases based on interaction with the customer and deciding which features to be added.
Once we have that user story, then we enter into the design phase. UX/UI team will begin by laying out the graphics or the prototype of what the thing's going to look like.
So I work with the designer in that phase, no coding but just verifying that what they are thinking is technologically possible or correct. I give feedback and once we agree on the output of the design file, we take the file and begin the sprint process, it's another kind of agile scrum.
— Do you usually need to get approval from your boss or other stakeholders?
Stakeholders have to give feedback on features and generally, it's going to be the product owner. This is what we want to do but generally, the team in agile is the one sort of product owner who defines what needs to be done, and the team figures out how to do it. So once we're working on it, there's no approval required.
So a very important component of the way we do things is that we are iterative. We want to move very quickly in both design and
Generally, the product owner has an idea and we try to just do one quick phase of design, development and then get feedback. There is not so much documentation up front, more of trying to see if it works. If it doesn't work, figure out why and what needs to be changed.
Disagreement is a good opportunity to stop and discuss. “Global One Team” that is connected with open communication.
— How do you collaborate with TCJP?
We collaborate pretty closely right now, in fact, we call ourselves the “Global One Team” so we are in that sense one team working together.
We have a shared slack, like messaging app so we can communicate with each other very easily and we also maintain standard weekly sync meetings. We're in contact pretty much all the time. We're continuing to work to improve our process like how can we be better at communicating.
Other than that we just work in the same code base and we review each other's code and we are at the final phase of the prototyping portion of the project and during that time we spent a lot of time discussing how we wanted to build certain parts of the application for certain services.
For instance, we're working on something called “Loom” which is the design language at TOYOTA Connected. It kind of basically describes how things look or should look so like colors and fonts and like what a button should look like and what a list should look like so kind of the basic components in the application and all those things need to be designed right. So for the last few months both TCJP and TCNA members have been working on these things or have been designing and then the developers both from TCNA and TCJP work off the same backlog.
One team takes one button and one team takes another piece and we work together on the same code. I think that we're both doing the same work but just it's for the base for the Loom design system.
We work together on the global feature, but for bigger parts of the project, if there is a feature that is specifically for Japan, TCJP would probably do most of that work because they understand Japanese culture and what the expectations are from the user which I’ve learned that can be very different from American ideas. Of course, TCNA would do all the North American features.
— What do you feel about the difference between TCJP and TCNA?
A lot of the UX/UI designers or developers of TCNA come from the startup world which is very fast. There was a little bit of difference, TCNA wanted to move very quickly and TCJP may be wanting to focus on process and planning things. There was a little bit of difference in opinion on that but I think ultimately it ended up working out pretty well.
Because I think slowing down and working on the process of diagramming out how we wanted to not only build things like our architect but also how we want to communicate and work together as a team helped everyone understand because it created a clear image for everyone about how to collaborate.
I don't see the difference as a negative thing in any way. TCJP members have just been fantastic, super kind, super hard-working, super enthusiastic, and passionate. I'm happy to have all of them on the team. So overall very positive.
—— How do you accept each other's differences?
We promote open communication. We say if you have any problem or you see any issue bring it up, pull the end of the cord, we'll stop and we'll discuss it.
What I like about KAIZEN is it allows you to reflect on how you can do things better and I think that that's a good opportunity to sit if there are disagreements about how we're doing things to just stop and talk about it.
You know most of us just either come down to miscommunication in some cases or a lack of planning and making the assumption. We say if you have any problem or you see any issue bring it up, pull the “andon cord”, we'll stop and we'll discuss it.
Excellent members, opportunity to learn so future technology, chances to grow here at TOYOTA Connected are just endless.
— What is the most rewarding part of your current position?
It's definitely the people. There are some very bright engineers work at TOYOTA Connected. We have people with a lot of very interesting knowledge and I have the opportunity to learn new things and work with these people who are more knowledgeable than me and learn from them. There's just been a lot of opportunities to work on different projects and learn new things and I think that's very special and I really enjoy it.
Another thing for developers at TOYOTA Connected, we like to be what's called “T-shape” talent who owns a wide range of knowledge and with having specific professionality. A lot of us have experience in a lot of different types of development, maybe one person's more on the user experience side, maybe another person is more on how these low-level systems work on a computer.
And also because the projects that we work on are so cutting edge or so future technology. That's also interesting. It's like how we can use the data that every single vehicle in the globe is creating to build some new interesting service or how we can build something that may save people's lives. That's all I think is very cool and rewarding definitely.
—— What opportunities does the project provide for you to build your career？
There's a ton of opportunity specifically for the project I'm working on now for the next generation of software. In this new project specifically, Flutter which is typically a mobile development tool or framework and we're using it in a new way in a different way than most people use it. I'm learning a lot about how that works and then how vehicles work with these embedded type systems which is a completely new field.
—— Do you have a vision of what you want to do with the project? What is your vision for the project?
I think we are going to improve that experience so much and I think it's going to delight our customers and I think that the vehicle experience is going to change a lot in the next 10 years. You know autonomous driving and more connected vehicles. I think we're at a really good place right now to create some new and unique experiences.
I think it will only get better and in the way that we are building everything today are taking in that iterative idea that we're going to build it and then we will continue making it better in every iteration. We're going to make sure that we are getting the response and feedback from our customers that we want.
—— If new front-end engineers are joining TOYOTA Connected, what kind of growth and career opportunities do you think they will have with TCNA?
You will have the opportunity to learn some very in-demand technological products and you'll be working on them on a very large scale. You will have an opportunity to work on different things.
You will also have an opportunity to work on different things as an engineer. As I mentioned before, as a TOYOTA Connected developer you can work on the front end application, you can work on the back end application, you can design things, you can come up with feature requirements and you can work with the product owner. It's really whatever you're interested in for all phases of creating a product. You have all those opportunities. You have opportunities to learn from skilled people as well. I think the chances to grow there are just endless.
Creating experiences that brings happiness to people’s life with you.
— What kind of culture and stance do you like to work with if a new front-end engineer joins TOYOTA Connected?
The culture is it's kind of a standard technology company, an agile culture. It's fairly flat, meaning that there aren't many layers. We want to try to foster the idea that just because you're a younger engineer or a junior engineer that doesn't mean that your opinion or your ideas aren't valid and so we try to make sure that everyone feels like they can speak when we're talking about how we want to accomplish our goals.
I think it's a very important part of our culture, as well as promoting self-learning and being driven to become a better development. The company tries to help us with that so we get to stipend in order to attend conferences or to purchase learning materials. I have access to online books, like program books. I can do as many as I want and the company pays for that. So it's a great environment to learn.
— What kind of people do you like to work with?
First and foremost as I think, we kind of agreed on at the beginning of the meeting someone who's just a passionate self-learner. In a lot of different fields in software development, you don't have to necessarily think about the user. You're just thinking about how I can make this thing work, but for front-end UX/UI you need to care. I think this is very important.
And then someone who is just a good teammate. Someone who isn't so focused on themselves but just wants to work with other people to build something great and something that's maybe more than they could do on their own. I think that's the sort of candidate. I would be interested in seeing or having it be a part of my company.
— What kind of work do you think TCNA and TCJP will do more together in the future?
I think we're going to be working a lot together in the future. The in-vehicle experience is a global project that many teams will need to collaborate on together. It is a difficult road ahead, with lots of work, but I am confident our team will be successful.