Self-Driving Cars — Managing a Project

deployment Apr 18, 2020

Building a self-driving car is an intense activity. Most of the time, it’s not something a company does alone. In particular, I noted 3 different profiles we often communicate with during the development of a project.

Although I never had the title of “Project Manager”, I worked closely with 3 project managers, maintained and developed a relationship with two external providers, and managed a team of 7 interns in Perception.

It gave me a good understanding of project management, and I got to do the job myself.

If you’re considering becoming a self-driving car project manager, maybe you don’t know what to expect.

What does a self-driving car project manager do on a daily basis?

Given that there are now a lot of project management techniques (Agile, Scrum, …), I will only discuss the tasks and not the methods or tools used.

Also, as I worked in a startup environment, I will tell my story from this perspective.

This story is part of a series! Find out 7 Steps to deploy a service here!


⬇️
Before we start, I invite you to  join my Daily Emails  and  download my Self-Driving Car Engineer MindMap  where you'll get the necessary things to become a Computer Vision & Self-Driving Car Engineer.

The project manager has a lot to do.

Here, I will identify every task and contact that role involves.

Developers

In a self-driving car, we rarely create a vehicle that can drive anywhere.

There is always a well-defined objective like “highway driving” or “food delivery in city centers”.

This objective has repercussions on the development of the vehicle.

The algorithms needed will depend on the vehicle’s tasks.

If a car drives in the city, it will need a traffic-light detection system.

It’s not the case on a highway.

The first role of the project manager is to be aware of that difference.

When we create a dating app and want to deploy it in a new city, there is not that much difference.

In a self-driving car, scaling is harder as it involves numerous new applications.

  • A self-driving car in Australia must develop a Kangaroo detection model.
  • A self-driving car in Canada must detect and segment snow regions.

The project manager must identify all these necessary tasks and communicate with the developers to make sure everything will be developed and tested in time.

It involves understanding the complete architecture of a self-driving car and elaborating on a schedule for every task.

In a self-driving car, a schedule is the hardest thing to define!

  • If you need a testing track, you might rent it for 2 days starting next month.
  • If the algorithm is 7 days behind schedule, everything else is at risk.
  • If the robotization is not completed in time, the localization cannot be tested or even developed.

Some modules involve being on the test track.

It is the case for localization as the developers must know exactly what the GPS measures, what are the landmarks, …

For that, the developers need to be on the test track, and record scenarios.

Planning every task means you can anticipate problems. If the car has a battery problem during the tests, it must be fixed within 2–3 days. Otherwise, the developers will lose their time.

There is a need to understand technical challenges, and the manager will be even better if he does.

However, I have seen project managers who didn’t have a clue about algorithms and trusted the engineers.

It didn’t impact the projects that much in my experience.

I wouldn’t advise a manager not to know how a LiDAR works, or why we can’t update the car to the new Ubuntu release.

I would tell you the opposite.

Be very close to technical challenges as your way of communicating with the developers might help them rethink the situation and help you be better at estimating time.

When people have their nose to the grindstone, it’s good to have someone with an overview who can help.

Having a 15–30 min chat every day with every developer will help solve these challenges faster and get you closer to reality.

More elaborated project management methods have been invented, I suggest you look into this .

On a larger scope, the project manager also works with various service providers, clients, and prospects.

Providers

Let’s take a startup whose mission is to develop an autonomous shuttle. If the startup doesn’t handle one aspect of the development, like robotization, it will need to outsource it.

The role of the project manager is to identify the provider, negotiate the price, and be sure that the hardware architecture will correspond to the algorithms.

If you’re a Computer Vision Engineer, you might know that the position of the camera is important for 3D rendering. If a camera has a certain lense, it will change the distance perception.

Everything matters.

  • From the type of sensors bought, to the position of each sensor.
  • The cooling system… Next to the heating computers and GPUs…

Mastering every aspect of a self-driving car robotization process is a difficult task that requires experience.

The providers you might have to deal with are:

  • Robotization and Car Manufacturers 🚘
  • Sensor providers 📷
  • Algorithms providers 💻

When purchasing a sensor, you must be sure that the engineers know how to use it.

Let’s get into the reality of a startup that can’t afford to hire 50 engineers for each task. If your company already hires Engineers, the development will be influenced by their skills and wishes.

When purchasing algorithms, you must work closely with the team.

If your startup doesn’t have Computer Vision Engineers, and you need a lane line perception system, it’s a new project.

The startup can pay for developers, or pay for a solution.

Anyway, a lane line detection system is dependent on the type of environment it will drive, like almost everything else.

It means that the team will need to use the track to test their software too

It’s a time slot where you won’t be able to use the vehicle for any other task

As I said, making a schedule is a very difficult task, it requires a very good understanding of the technical challenges, as well as a good ability to anticipate problems.

Clients

The final type of contacts managers have are the clients.

A client gives the company money in exchange for a service or a product.

If the manager is in charge of the relationship with a client, he must be very aware of everything going on.

The relationship with the client is for a lot the hardest to take care of.

Clients can change their minds a lot.

They can suddenly want a feature they didn’t need the day before.

They may need to speed up deadlines to match a specific press event you didn’t know. The manager must be flexible enough so that a one day shift will not destroy everything.

Often, the deadline is set by the clients.

If the deadline is too short, the whole project might be very hard to plan.

Sometimes, the clients might need you to do things you don’t understand.

The trust the client has in the manager is essential.

If the client doesn’t feel safe with anyone else, he might ask the manager to be on the field every day…

It’s often not needed and can jeopardize the project.

Even if it’s not needed, it’s the client’s condition.

If the manager accepts it, it becomes a new problem to deal with.

The manager must:

  • Satisfy the client
  • But be sure that it doesn’t impact the project itself

Some additional tasks like negotiation might be needed, but in a startup, it’s often negotiated with the CEO directly.

Project Management is an essential task. A lot of companies think they don’t need a project manager because the developers can handle it. It’s simply impossible in a self-driving car startup. The jobs are all very different.

The final contact the project manager has is with his supervisors. Let’s not dive into details.

The manager must be able to keep up with the deadline and the schedule. The clients, providers, and developers are the 3 main people we can find.

This story is part of a series! Find out 7 Steps to deploy a service here!

So if you want to manage a Self-Driving Cars project and know more about Computer Vision, I have created a MindMap that will explain to you the main parts in Self-Driving Cars.
📩 To download the mindmap , I invite you to join the daily emails for exclusive content, career tips and receive my cutting-edge content on Self-Driving Cars.

Tags

Mindmap

Interested in Autonomous Systems? Download the Self-Driving Car Engineer Mindmap

The Self-Driving Car Engineer Mindmap is a video + PDF mindmap showing you the main areas of self-driving cars, and giving you a path to build a career as a self-driving car engineer.