Listen to this article
Bringing your startup from a prototype to production at a large scale is a daunting challenge. There’s no roadmap that’s going to work for every robotics startup, but there are general trends in the industry that startups can learn from.
Carter Schultz, the robotics software manager at AMP Robotics, gave his survival guide for taking a prototype to production during ROS World 2021. Schultz has spent over three years at AMP and was previously the lead robotics engineer. Before AMP, Schultz worked as a robotics engineer at Neya Systems and as a launch automation engineer at SpaceX.
AMP robotics uses machine learning to teach robots to differentiate waste in recycling. It uses hardware and software to recognize different colors, textures, shapes, sizes and patterns to identify material characteristics.
Schultz identified three problems that startups often face when bringing their prototype to production: deployment, configuration management and software quality. These are Schultz’s three rules for solving those problems and making a successful transition to production.
Solve only problems that matter, when they matter
It can be easy to get caught up in the big picture of scaling your production. There are many problems that are important to solve, and that you will have to solve one day, but those problems don’t necessarily need to be solved right away.
“You can put off a lot of deployment stuff to later in the process,” Schultz said. “And that’s a good thing to do.”
Schultz recommended that startups figure out when something is going to become problematic in their scaling, and try to acknowledge the problem then.
“For us, that happened at about 10 systems. Up to that point, is was totally possible for a single developer part-time to manually connect, manually download the updates, manually edit the configurations files, do the updates completely by hand,” Schultz said.
At 10 systems, Schultz began running into problems, so the company decided that it was time to automate.
Simpler problems are better than complex solutions
When you’re trying to bring your prototype to production, it’s important to prioritize solutions that are robust. Complex systems built to solve complex problems are great, but those systems aren’t always realistic out in the field. According to Schultz, it’s better to eliminate complexity wherever possible.
“As roboticists and as software developers, we’re passionate about building beautiful, complex systems, and that’s amazing,” Schultz said. “But those complex systems aren’t going to be as good as if you just got rid of the problem in the first place.”
Quality is for people with working systems
Schultz recommends ensuring that your system is delivering value before you worry about the quality of the system.
“Solve the core problem that you have to solve, and then think about how you build quality,” Schultz said. “That’s not normal quality advice, but I do believe it.”
It’s also important to prioritize performance over uptime.
“If your system is down 10% of the time, in most domains, that’s more tolerable than if your system doesn’t work well enough to actually contribute value during the time that it’s running,” Schultz said.
Schultz’ entire talk can be watched below.