The importance of a safety culture for rapid development
In startups, safety is often considered an afterthought in system development. With pressing deadlines and a never-ending trail of deliverables, it is easy to forget the importance of safety.
In this post, we make the argument that safety is not something that should slow you down. When implemented early and efficiently, it can enable more rapid development and accelerate your time-to-market. To see this, we demonstrate:
What a safety culture is
Developing with V&V in mind
The heavy cost of refactoring
How to build in safety from the start
How to use these tools as a competitive advantage
What is a safety culture?
Outside of software development, a safety culture occurs when everyone is responsible for safety. This means that safety concerns can be freely brought up by anyone without concern and are treated with urgency. This type of culture is critical for ensuring that the company is free of accidents and liability, especially companies deploying physical systems.
In robotics software development, a safety-first approach entails putting into place safety mechanisms (software and hardware) early, during or even before the development of core functionality. While this is often seen as a waste of time, the following sections will expand on how this can accelerate the overall development timeline.
Developing with V&V in mind
In this blog, Phil Koopman raises attention to the importance of developing with verification and validation in mind. Since V&V often takes 2-5 times longer than the original code creation, any effort spent to reduce this burden during software development is likely to pay off in the long run.
A particularly relevant tip for robotics development that he includes is to spend time up front documenting module interaction. With the modularity of most modern autonomy stacks, streamlining integration between the modules and the teams working on them is paramount to rapid development.
Getting it done vs getting it right: the cost of refactoring
There’s a common sentiment of “let’s get it working first, and then we can make it right” when innovating in a space. After all, you’re solving a difficult problem, sometimes one that you’re unsure if it can be solved. It's easy to think that the best approach is to assess the validity of the solution first, and go back and fix it later.
Unfortunately, this often leads to significant refactoring of codebases, especially after fundraising events. This can waste several months of developer time. While many resources exist for developing scalable software, few include the realities of developing alongside hardware platforms.
Many robotics companies end up failing because they continually rewrite their code base after each fundraising round. They often start with a makeshift solution, intending to improve it later when more resources are available. This cycle prevents continuous innovation and wastes time, as the companies repeatedly rectify issues that could have been avoided by considering safety at the start.
It is critical the software developed is scalable and safe when moving to new robot platforms. By tackling safety early, and in a scalable manner, you can avoid significant refactors and save time when developing new autonomy features for new systems. Complexity creep is common when non-scalable methods are implemented, such as specialty code for handling specific edge-cases.
Building safety in from the start: the path to efficient and sustainable growth
So you’ve developed a new autonomy feature, and tested it in simulation. Is it ready to be deployed on the hardware platform? When working with expensive or dangerous robots, the first push of a major feature can be very daunting.
With a proper safety framework in place, changes to the autonomy stack should never threaten the integrity of the system. Failsafe mechanisms must exist outside of the development environment. Such a system allows for more rapid testing of new features.
Seizing the competitive advantage of a safety culture
Early emphasis on safety can accelerate development, save costs, and improve product safety and reliability. It reduces the risk of major refactoring, accelerates the timeline for deploying new features, and minimizes the amount of issues in deployments.
A less-considered benefit of a safety-first approach is the potential benefits for product marketing. Rather than a simple checkbox, system safety can be a differentiating competitive advantage for a product. Much like crash test ratings significantly affect buying decisions in cars, safety is an important consideration in the mind of customers in robotics.