Avoid Software Development Pitfalls Through Planning, Design

Oversimplification of software complexity and poor planning during the development process can lead to delays, budgetary issues, and overall project failure.

September 18, 2023

4 Min Read
Dave Abramson, chief software architect at Precision Systems
Image courtesy of Precision Systems

By Dave Abramson

Custom Software Engineering is an essential part of any complex medical device project. Whether you’re creating a device that requires an embedded system, AI components, mobile app, PC, or cloud application, the software is what breathes life into your product.

Despite that vital role, we commonly see medical device software development efforts being vastly underestimated in complexity, time, and budget. This can lead to major frustrations in delays, budgetary issues, and on occasion, overall project failure. Oftentimes we see these challenges firsthand when our team has been brought in for a project rescue. In these cases, we can usually point back to oversimplification of what the software development will entail, and a poor (or absent) planning and design phase in the software development process.

Planning and design may seem like an obvious first step in any successful development project, but medtech developers often feel surprised by how involved or extensive this can be, especially when it comes to software requirements. It’s not uncommon for medtech developers to come to us with requirements they have prepared in-house, which is a great jumping off point. However, depending on the expertise level of the in-house team, we often need to expand on these requirements and go more in-depth. Sometimes medtech developers question the necessity of this investment both in time and budget. As our founder and president at Precision Systems, Walt Johnson says, "Those that don't have enough time to do it right, will need to find more time to do it over" — do not fall into this trap. Put in the upfront work and time to get this portion of your project right, and you will not only save significantly on time and money in the long run but end up with a higher quality more scalable product, all while experiencing fewer bumps along the road.

So what does planning and design entail? At PSI, it starts with gathering requirements, and gaining an understanding of the medtech developer's overall goals and business drivers. The more complete the requirements, the more accurate our timelines, resource planning, and budgets. Requirements are compiled into a software requirements specification document. This document serves as a checkpoint between us and the medtech product developer. The document ensures that we’ve heard and addressed all the product developer’s needs, putting everyone on the same page for the road ahead. From the product developer’s perspective this gives them confidence that the software they receive will exhibit the features and behaviors needed to complete their product.

Based on requirements, we then create architectural specifications which are high-level designs of the larger subsystem components that make up the overall software system. The architecture generally defines how various data streams flow through the software, how functionality is distributed across the various components, and how the components interface together (like puzzle pieces), to do the work of the entire system. From there we drill down to create detailed software design plans for each of the components — all before we begin to code.

Some critics will argue that doing this much design upfront could lead to an inability to deal with change and uncertainty. We counter this with the knowledge that every software development project will encounter unknowns or enhancement needs during the development process. We believe a strong foundation will allow us to handle changes of any size that might arise along the way.

It’s important for us to help our clients understand that the deliverables in the planning and design phase are as much of a service or product as the actual software. Once the software requirements specification, architectural specifications, and software design plans are created, the software development can then be implemented by any custom software engineering team, depending on their expertise level. The value to the medtech developer is a huge amount of flexibility to either continue implementing with our team or take these documents and continue with their own in-house team. They could even use the documents to shop around for additional quotes and estimates. In addition to flexibility, this vital foundation is likely to yield a high-quality, reliable software system that allows medtech developers to hit their business goals without any surprises.

About the author:

Dave Abramson is the chief software architect at Precision Systems (PSI) and is responsible for devising complex software designs and architectures for mission and safety-critical systems. With almost two decades of experience in custom software engineering, Abramson has a deep background in embedded software systems and can distill real-world problems into simplified software components.

Sign up for the QMED & MD+DI Daily newsletter.

You May Also Like