{"id":7350,"date":"2025-06-11T08:29:56","date_gmt":"2025-06-11T13:29:56","guid":{"rendered":"https:\/\/www.logikalsolutions.com\/wordpress\/?p=7350"},"modified":"2025-06-21T10:38:48","modified_gmt":"2025-06-21T15:38:48","slug":"fda","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/","title":{"rendered":"FDA Must Ban Agile and Mandate Static Source Analysis"},"content":{"rendered":"\n<p>Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would greatly benefit mankind. They could <strong>ban the use of Agile<\/strong> in the medical device and software industry. <strong>They could also mandate full static source analysis for all medical device code<\/strong>. This means from the UI all the way down to the OS, not just a tiny portion underneath an un-safe UI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Watered Down Quality Risks Lives<\/h2>\n\n\n\n<p>Most of you don&#8217;t make medical devices. When you go to a doctor&#8217;s office or hospital you ass-u-me whatever they use on you is safe and works properly. For devices from a small group of companies that refuse to use Agile or any of the Script-Kiddie languages in their products, this is correct. For everyone else, sadly, it&#8217;s a coin toss.<\/p>\n\n\n\n<p>Stories like <a href=\"https:\/\/www.fiercebiotech.com\/medtech\/baxter-warns-potential-blockages-spectrum-infusion-pumps-linked-3-deaths\">this one<\/a> are far too common.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"885\" height=\"192\" src=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/06\/baxter-infusion-deaths.jpg\" alt=\"\" class=\"wp-image-7415\" srcset=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/06\/baxter-infusion-deaths.jpg 885w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/06\/baxter-infusion-deaths-300x65.jpg 300w, https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/06\/baxter-infusion-deaths-768x167.jpg 768w\" sizes=\"(max-width: 885px) 100vw, 885px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Why Ban Script-Kiddie Languages?<\/h2>\n\n\n\n<p>They are worthless for true quality. Not one of them is <strong>type safe<\/strong>. Since most of you aren&#8217;t coders here are some small examples.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Deja-Vu-Mono.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1f1f1f\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/usr\/bin\/python\n\ncounter = 100          # An integer assignment\nmiles   = 1000.0       # A floating point\nname    = \"John\"       # A string\n\nprint (counter)\nprint (miles)\nprint (name)\n\ncounter = \"Mary had a little lamb\"\n\nprint (counter)\n\nprint (counter \/ miles)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6B737C\">#!\/usr\/bin\/python<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">counter <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">100<\/span><span style=\"color: #B392F0\">          <\/span><span style=\"color: #6B737C\"># An integer assignment<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">miles   <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">1000.0<\/span><span style=\"color: #B392F0\">       <\/span><span style=\"color: #6B737C\"># A floating point<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">name    <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&quot;John&quot;<\/span><span style=\"color: #B392F0\">       <\/span><span style=\"color: #6B737C\"># A string<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print <\/span><span style=\"color: #BBBBBB\">(counter)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print <\/span><span style=\"color: #BBBBBB\">(miles)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print <\/span><span style=\"color: #BBBBBB\">(name)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">counter <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&quot;Mary had a little lamb&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print <\/span><span style=\"color: #BBBBBB\">(counter)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">print <\/span><span style=\"color: #BBBBBB\">(counter <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #BBBBBB\"> miles)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>outputs<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">developer@i9-debian-dev:~\/share$ python3 p1.py<br \/>100<br \/>1000.0<br \/>John<br \/>Mary had a little lamb<br \/>Traceback (most recent call last):<br \/>  File \"\/home\/developer\/share\/p1.py\", line 15, in &lt;module&gt;<br \/>    print (counter \/ miles)<br \/>           ~~~~~~~~^~~~~~~<br \/>TypeError: unsupported operand type(s) for \/: 'str' and 'float'<br \/><\/pre>\n\n\n\n<p>It doesn&#8217;t take a techno-wizard to realize that a variable used for numbers and calculates shouldn&#8217;t allow text in it.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Deja-Vu-Mono.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1f1f1f\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>let x = 32;\nconsole.log(\"x = \" + x); \/\/ Outputs: x = 32\nconsole.log(\"Some Math: \" + 64 \/ x); \/\/ Outputs: Some Math: 2\n\nx = \"abc\";\nconsole.log(\"x = \" + x); \/\/ Outputs: x = abc\nconsole.log(\"Some Math: \" + 64 \/ x); \/\/ Outputs: Some Math: NaN<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">let<\/span><span style=\"color: #B392F0\"> x <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">32<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">console<\/span><span style=\"color: #B392F0\">.log(<\/span><span style=\"color: #FFAB70\">&quot;x = &quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #B392F0\"> x); <\/span><span style=\"color: #6B737C\">\/\/ Outputs: x = 32<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">console<\/span><span style=\"color: #B392F0\">.log(<\/span><span style=\"color: #FFAB70\">&quot;Some Math: &quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">64<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #B392F0\"> x); <\/span><span style=\"color: #6B737C\">\/\/ Outputs: Some Math: 2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">x <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #FFAB70\">&quot;abc&quot;<\/span><span style=\"color: #B392F0\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">console<\/span><span style=\"color: #B392F0\">.log(<\/span><span style=\"color: #FFAB70\">&quot;x = &quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #B392F0\"> x); <\/span><span style=\"color: #6B737C\">\/\/ Outputs: x = abc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">console<\/span><span style=\"color: #B392F0\">.log(<\/span><span style=\"color: #FFAB70\">&quot;Some Math: &quot;<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F8F8F8\">64<\/span><span style=\"color: #B392F0\"> <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #B392F0\"> x); <\/span><span style=\"color: #6B737C\">\/\/ Outputs: Some Math: NaN<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>JavaScript isn&#8217;t any better. By not hard failing invalid math via a stack dump the program will happily give you the wrong output. Quite critical if what it was calculating was your insulin dosage.<\/p>\n\n\n\n<p>These things don&#8217;t fail until run-time. Depending on your execution paths, it could be years before they turn up in production and kill someone. QML is a layer on top of JavaScript and it is hard to be solid when standing on sand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Static Source Code Analysis<\/h2>\n\n\n\n<p>With compiled type-safe languages, you find out at compile time. Before you get anywhere near ready to test even a tiny piece of code you have to compile and link it. Really stupid stuff that violates type-safety is caught up front, not by a dead patient years down the road.<\/p>\n\n\n\n<p>Yes, a developer could do something truly brutal like this.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-Deja-Vu-Mono.ttf\" style=\"font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#b392f0;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1f1f1f\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#b392f0;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>union BAD_UNION\n{\n   long number;\n   char str[4];\n} data;\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki min-dark\" style=\"background-color: #1f1f1f\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">union <\/span><span style=\"color: #79B8FF\">BAD_UNION<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   long number;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">   char str[<\/span><span style=\"color: #F8F8F8\">4<\/span><span style=\"color: #B392F0\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">} data;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>For the non-coders in this crowd, the above union won&#8217;t work at all when your compiler aligns numeric variables on &#8220;efficient memory boundaries for the CPU&#8221; but packs raw character data on byte boundaries. You <em>can<\/em> do something like this but only if you really need to. If your peers don&#8217;t shit on your code review, static source code analysis definitely will.<\/p>\n\n\n\n<p>The problem is <a href=\"https:\/\/codesecure.com\/our-case-studies\/fda-recommends-static-analysis-for-medical-devices\/\">the FDA only recommends static source code analysis<\/a>. It must mandate static source code analysis. That will automatically eliminate Script-Kiddie languages because you cannot perform valid static analysis on an interpreted non-type-safe language. Your medical devices will be safer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why Ban Agile?<\/h2>\n\n\n\n<p>Despite all of the hype Agile is nothing more than hacking on the fly. Starting without a complete spec is no way to build a medical device or any other serious product. Just hacking at code until the money runs out and declaring it &#8220;done&#8221; them isn&#8217;t a plan. You have to have a definition of &#8220;done&#8221; other than &#8220;we&#8217;re out of money therefore it is done.&#8221;<\/p>\n\n\n\n<p>At some point you have to produce a valid product people will purchase and use.<\/p>\n\n\n\n<p>How many people would <em>actually pay<\/em> for Facebook, Twitter, etc.? Nobody. If it wasn&#8217;t free nobody would go there.<\/p>\n\n\n\n<p><a href=\"https:\/\/medium.com\/developer-rants\/agile-has-failed-officially-8136b0522c49\">Agile has officially failed<\/a>. I constantly hear of Agile debacles and the never-went-to-college-for-computer-science champions of Agile say &#8220;Oh that wasn&#8217;t <em>real<\/em> Agile!&#8221;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:640\/format:webp\/0*PNihLtYOmR2LA3D0.jpg\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>If you thought you heard that before, this sticker is why.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Leadership<\/h3>\n\n\n\n<p>Leadership is the big glaring hole in the Agile Manifesto. It is like trying to make concrete without water. Agile, via its daily stand-up (scrum) meeting tries to replace failed management with three questions.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What did you do yesterday?<\/li>\n\n\n\n<li>What will you do today?<\/li>\n\n\n\n<li>Are there any blockers?<\/li>\n<\/ul>\n\n\n\n<p>That little list can only happen with a team of three while keeping it to a five minute meeting. I have been at client sites trying to do that with a team of 30+. No, it wasn&#8217;t done in five minutes. It&#8217;s really great when a company is stupid enough to have &#8220;festival seating&#8221; so you can&#8217;t even find the place your team is having the meeting.<\/p>\n\n\n\n<p>With Waterfall SDLC we have a plan. We have it laid out in writing. If you don&#8217;t know what you are doing it is because you didn&#8217;t read the SDLC that was reviewed and signed off on. When you have delivered every item in the Software Specification Document, your project is done and ready for QA.<\/p>\n\n\n\n<p>For more on the failure of Agile and the management teams relying on it you can read <a href=\"https:\/\/www.theminimumyouneedtoknow.com\/agile_book.html\">this book<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.theminimumyouneedtoknow.com\/book_covers\/agile-book.jpeg\" alt=\"\" style=\"width:452px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>If the FDA really wants to save lives it will mandate<a href=\"https:\/\/codesecure.com\/our-case-studies\/fda-recommends-static-analysis-for-medical-devices\/\"> static source code analysis<\/a>. That will automatically eliminate Script-Kiddie languages because you cannot perform valid static analysis on an interpreted non-type-safe language. It will also pretty much mandate developers with a legitimate Computer Science degree doing development. Script-Kiddies ain&#8217;t got the patience for C\/C++ and they sure as Hell don&#8217;t want anyone, especially a compiler, they did something wrong. That&#8217;s just a hostile workplace!<\/p>\n\n\n\n<p>Besides being a false methodology, Agile is based on the premise of &#8220;not having all of the requirements&#8221; up front. We need to jettison this premise from the FDA regulated world. When a medical device is hooked up to me I want to know the manufacturer had a solid plan <em>and<\/em> they did static source code analysis.<\/p>\n\n\n\n<p>The FDA has the power to mandate both of these things and bar any grandfathering of existing devices.<\/p>\n\n\n\n<p>Your medical devices will be safer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would greatly benefit mankind. They could ban the use of Agile in the medical device and software industry. They could also mandate full static source analysis for all medical device code. This means from the UI all the way down to the OS, not just a tiny portion underneath &hellip; <a title=\"FDA Must Ban Agile and Mandate Static Source Analysis\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/\"><span class=\"screen-reader-text\">FDA Must Ban Agile and Mandate Static Source Analysis<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":7414,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1309,3,6],"tags":[1274,1504,1356,1723,1894,1198,2292],"class_list":["post-7350","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-experience","category-information-technology","category-investing","tag-agile","tag-c","tag-fda","tag-javascript","tag-python","tag-qml","tag-type-safe","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>FDA Must Ban Agile and Mandate Static Source Analysis &#8211; Logikal Blog<\/title>\n<meta name=\"description\" content=\"Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FDA Must Ban Agile and Mandate Static Source Analysis &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-11T13:29:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-21T15:38:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/02\/Fda-Logo-PNG-Photos.png\" \/>\n\t<meta property=\"og:image:width\" content=\"699\" \/>\n\t<meta property=\"og:image:height\" content=\"465\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"FDA Must Ban Agile and Mandate Static Source Analysis\",\"datePublished\":\"2025-06-11T13:29:56+00:00\",\"dateModified\":\"2025-06-21T15:38:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/\"},\"wordCount\":962,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Fda-Logo-PNG-Photos.png\",\"keywords\":[\"Agile\",\"C++\",\"FDA\",\"JavaScript\",\"Python\",\"QML\",\"type safe\"],\"articleSection\":[\"Experience\",\"Information Technology\",\"Investing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/\",\"name\":\"FDA Must Ban Agile and Mandate Static Source Analysis &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Fda-Logo-PNG-Photos.png\",\"datePublished\":\"2025-06-11T13:29:56+00:00\",\"dateModified\":\"2025-06-21T15:38:48+00:00\",\"description\":\"Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Fda-Logo-PNG-Photos.png\",\"contentUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/Fda-Logo-PNG-Photos.png\",\"width\":699,\"height\":465,\"caption\":\"FDA Logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/fda\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FDA Must Ban Agile and Mandate Static Source Analysis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FDA Must Ban Agile and Mandate Static Source Analysis &#8211; Logikal Blog","description":"Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/","og_locale":"en_US","og_type":"article","og_title":"FDA Must Ban Agile and Mandate Static Source Analysis &#8211; Logikal Blog","og_description":"Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/","og_site_name":"Logikal Blog","article_published_time":"2025-06-11T13:29:56+00:00","article_modified_time":"2025-06-21T15:38:48+00:00","og_image":[{"width":699,"height":465,"url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/02\/Fda-Logo-PNG-Photos.png","type":"image\/png"}],"author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"FDA Must Ban Agile and Mandate Static Source Analysis","datePublished":"2025-06-11T13:29:56+00:00","dateModified":"2025-06-21T15:38:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/"},"wordCount":962,"commentCount":0,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/02\/Fda-Logo-PNG-Photos.png","keywords":["Agile","C++","FDA","JavaScript","Python","QML","type safe"],"articleSection":["Experience","Information Technology","Investing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/","name":"FDA Must Ban Agile and Mandate Static Source Analysis &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#primaryimage"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/02\/Fda-Logo-PNG-Photos.png","datePublished":"2025-06-11T13:29:56+00:00","dateModified":"2025-06-21T15:38:48+00:00","description":"Yes, we have complete whack job in charge of HHS, and the FDA is lead by an anti-vax nutter, but, they could still do something that would","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#primaryimage","url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/02\/Fda-Logo-PNG-Photos.png","contentUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2025\/02\/Fda-Logo-PNG-Photos.png","width":699,"height":465,"caption":"FDA Logo"},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/fda\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"FDA Must Ban Agile and Mandate Static Source Analysis"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/7350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=7350"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/7350\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media\/7414"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=7350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=7350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=7350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}