Early access registrations are open for Headstart, a predictable, fixed-price program for becoming compliant.

Updated November 21, 2020

Writing a Software Development and Maintenance Plan for IEC 62304 Compliance

Dr. Oliver Eidel
IEC 62304

Free Video Available

Before we get started: In addition to this article, I created a sample web application for which I actually wrote a Software Development and Maintenance Plan.. You can watch me while I type away in Google Docs, it’s pretty exciting. The video is free, have a look!

Did this screencast help you write your Software Dev Plan? I’m currently making a few more. Sign up for early access if you’re interested!

Introduction

If you’re developing software in an IEC 62304 - compliant way, you need to document certain things about your software development (no surprises there). While some things may be company-specific, other things are more product-specific.

Something company-specific could be how you develop software. An example for something product-specific could be that you use Python as a programming language for a certain project.

It makes sense to put the product-specific things into a so-called Software Development and Maintenance Plan. That sounds more fancy than it actually is: It’s just a document in which you describe stuff.

Great. Let’s see what you need to include.

I’ve also open-sourced a software development and maintenance plan template. Feel free to open that in another tab while reading this article. It also has lots of explanations.

Software Development Plan Content

Processes

Mention the processes which you’ll be using for your software development activities. Typically, this would include your Software Development, Risk Management, Usability and Problem Resolution processes.

Required Resources

List who will be working on this software and in what role. Typically, you will have some frontend and backend developers. You also should mention them by name.

Next, talk about the technical resources you need. At the minimum, you need a compiler or a runtime (e.g. CPython 3.8). You’ll probably also have some sort of IDE software.

The IEC 62304 also specifically talks about how you “plan to avoid common software defects based on your selected programming technology”. Translated to human language, this means that your programming language may introduce problems. Those could be something like “hey we could have runtime exceptions because Python is dynamically typed”. Here’s a good place to mention how you plan to avoid those. In this example, you could say “oh my god, our test coverage is so great that we’ll never run into runtime exceptions, ever”.

Configuration Management

Describe how you do configuration management. Wait, what’s that? That’s simply what sort of version control software you use (I’d guess it’s git), how you name versions and how you create branches / merges during development.

Verification Activities

Next, describe how you do verification. Software verification is yet another vague term, but for practical purposes, let’s just say that that refers to “code review” in human language (you could also do other stuff like static analysis, feel free to go into more detail here).

So: Describe how you do code review and especially according to which criteria a code review is “passed” for this software. Do you follow style guides? There’s PEP8 for Python. How do you enforce those? Do you have linters? Does the code reviewer also check whether the code actually implements the software requirement, i.e. does it actually do what it was supposed to do?

Software System Test Activities

Describe how you test your software. Typically, you’ll have some CI tests running on each Pull Request (do you?). Describe how that works, where the results are saved and what happens in either case (pass / fail).

Maintenance

Finally, state for how long you plan to maintain this software. This is quite important because it has implications in your risk management: The longer your software is on the market, the more things can go wrong.

Software Development Plan Template

Check out my totally free software development and maintenance plan template which includes all sections mentioned above with some further explanations. And let me know if anything’s unclear. Good luck!

Congratulations! You read this far.

Get notified when I post something new.

Sign up for my free newsletter.

I work as a regulatory consultant for Healthcare software startups. I try to publish all my knowledge here so that startups can certify their medical devices themselves in the future.

If you're still lost and have further questions, just send me an email and I'll be happy to answer them for free. More about me

No Cookie For You Privacy Policy Imprint
No QMS on this planet will save you from creating crappy software.