Does Staff Expertise Affect Software Quality?

Software Quality

Many years ago, Capers Jones, the software metrics guru, analyzed his database of thousands of software projects for the key factors affecting “real” software quality.  “Real” software quality relates to how the software actually performed and how robust in the field.   His list in priority order was:

  1. Programmer Application (domain) Experience
  2. Programmer Technical Experience
  3. Reuse
  4. Structured Methods
  5. Stable Requirements
  6. Private Office Space
  7. Careful Reviews / Inspections
  8. Experienced Management
  9. Realistic Schedule Targets

Can we learn from his research?  Does this fit current models of development and field quality?  Do modern development and test tools affect “real” software quality?

One clear takeaway in my view is the value of training software development and test staff.  While our process may expect system engineers and safety engineers to create solid and correct inputs to software development, you just cannot duplicate the value of a software developer having domain experience.  Their ability to question, constructively criticize, and otherwise scrutinize the requirements, design, and performance of the software early during development is irreplaceable.  Clearly the company that has software developers with domain experience will produce higher quality and likely safer software than the company that does not.

So how does one obtain domain expertise if they do not have it when you hire them?  Get them into the field!  Allow software developers to spend time in customer service and complaint handling roles.  Create realistic user environments onsite and have the software developers perform user roles in simulated circumstances.  Ensure that the software developers participate in product level and system level risk analysis so that they understand and have a healthy concern for how the device can hurt people or the environment.  For perspective, read Nancy Leveson’s excellent analysis of the Therac-25 accident.

Why are requirements so important?  Could it be that “working software” cannot tell us everything about the software?  Requirements provide a natural language description of the what we expect the software to do.  For efficiency, perhaps we do not require as much description of the software where its behavior is obvious and clear from use.  But certainly behaviors related to safety and essential functionality should be “agreed upon” in natural language.  Read our post on a checklist of quality attributes for requirements.

About the author

Partner and General Manager, Brian Pate is ISO 1385:2016 Lead Auditor certified for Medical Device Quality Management Systems (MD), and ISO 19011:2018 Management Systems Auditing (AU) and Leading Management Systems Audit Teams (TL). Brian started his medical device career in anesthesia clinical research in 1985 and has since worked both academia and industry including many years with Johnson & Johnson, Baxter Healthcare, and GE Medical. Brian’s roles have included software engineering, systems engineering, quality assurance, and regulatory affairs. Brian has served on multiple AAMI TIR working groups, including TIR32-2008 (Application of ISO 14971 Risk Management to Software; now IEC 80002-1) and TIR45-2012 (Guidance on the use of Agile practices in the development of medical device software) and served as a reviewer for the 2nd edition of TIR45. Brian serves on the AAMI Software Committee and as an AAMI instructor for the software, design controls, and agile methods courses. Brian also is a member of the Underwriters’ Laboratories (UL) Standards Technical Panel for UL1998 (Software in Programmable Components) and or UL5500 (Remote Software Updates).

SoftwareCPR Training Courses

ISO13485:2016 ISO 13485 Internal Audit(or) Training Course (Live, 3-day)

IEC 62304 and other Emerging Standards Impacting Medical Device Software (Live, 3-day)

Being Agile & Yet CompliantISO 14971 SaMD Risk Management

Software Risk Management

Medical Device Cybersecurity

Software Verification

IEC 62366 Usability Process and Documentation

Or just email training@softwarecpr.com for more info.

Corporate Office

15148 Springview St.
Tampa, FL 33624
USA
+1-781-721-2921
Partners located in the US (CA, FL, MA, MN, TX) and Canada.