Previously I went into more detail about my classification of different types of bugs.
My intent was to then go into great detail about the best way to catch each kind of bug.
I spent a great deal of time yesterday writing and rewriting and procrastinating and never shipping an article. Sometimes writing just flows. Yesterday, it just didn’t.
Then, I had an epiphany last night while I was trying to go to sleep. I realized why I wasn’t able to successfully write and ship an article.
I don’t really know what I’m talking about.
In response to my last post, my friend and colleague Luca Ingianni asked the obvious question: “OK. So what?”
One thing I’d be interested in is to understand how these classes of bugs impact my development work.
Like, which ones are the worst? Which ones are easiest to find? What are some techniques for dealing with them (even if it only means to sidestep the issue for now)?
The classification is neat, but where do I go from here, especially as a manager?
As someone responsible for developing medical device software, where should you spend time and effort?
- Should you spend time training your team in test-driven development?
- Can you get away with adding unit tests to just a few critical segments of your codebase?
- Should you invest in a automated hardware-in-the-loop testing laboratory?
- Is it worth it for one of your engineers to spend two weeks adding software instrumentation so you can log information about errors as they occur?
I thought I could write about a framework that could guide your development and testing efforts.
It turns out I was wrong. I need to think about this more deeply.
“What strategies give the best return-on-investment for my limited V&V budget?”
It’s not like I’m lacking expertise here. I have a great deal of experience developing and verifying safety-critical applications. I’ve seen a lot over the course of my career. But I don’t know everything, and I haven’t wrestled with this question long enough to be able to give confident answers.
It’s also most likely that the answers don’t lie within me. There’s an enormous community of talented embedded systems developers in the medical device space (as well as other regulated and unregulated industries) who have countless years of experience trying different strategies. I’m sure that exploring this topic will involve calling on that community.
I’ll be diving into this topic publicly. I don’t know where it’s going to go. I have the hazy impressions of a useful framework for making these decisions, but I could be imagining things. We will see.
I hope you and your loved ones are safe and healthy.