<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog Posts | Mike Shannon</title>
    <link>/blog/</link>
      <atom:link href="/blog/index.xml" rel="self" type="application/rss+xml" />
    <description>Blog Posts</description>
    <generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><copyright>© `2020` MikeShannon.com</copyright><lastBuildDate>Fri, 21 Aug 2020 01:30:34 +0000</lastBuildDate>
    <image>
      <url>/images/icon_huaebdd93b5093eaae3a110a83713d6541_22631_512x512_fill_lanczos_center_2.png</url>
      <title>Blog Posts</title>
      <link>/blog/</link>
    </image>
    
    <item>
      <title>Using Docker Compose to orchestrate Containers</title>
      <link>/blog/using-docker-to-orchestrate-containers/</link>
      <pubDate>Fri, 21 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/using-docker-to-orchestrate-containers/</guid>
      <description>&lt;p&gt;Why? Run multiple containers doing different things all at once.&lt;/p&gt;
&lt;p&gt;Maybe you want to simulate a microservices based application on your PC before deploying its parts to the cloud.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Micro Services using Docker</title>
      <link>/blog/micro-services-and-docker/</link>
      <pubDate>Thu, 20 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/micro-services-and-docker/</guid>
      <description>&lt;p&gt;Utilize docker to setup a simple micro services based application&lt;/p&gt;
&lt;p&gt;One image to serve our website&lt;/p&gt;
&lt;p&gt;One image to serve a database&lt;/p&gt;
&lt;p&gt;One image to serve a web service&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Setup a CI/CD pipeline to build and deploy using Azure DevOps</title>
      <link>/blog/setup-cicd-using-azure-devops/</link>
      <pubDate>Thu, 20 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/setup-cicd-using-azure-devops/</guid>
      <description>&lt;p&gt;Setup your project to auto-build and deploy whenever a code change happens in your cloud repo.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re going to create a repo in GitHub or Azure Repos&lt;/p&gt;
&lt;p&gt;Setup a build pipline to listen to the repo&lt;/p&gt;
&lt;p&gt;Setup a release pipeline to listen to the output of the build pipeline&lt;/p&gt;
&lt;p&gt;Setup infrastrcture (a web server) for the release pipeline to deploy to&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Using Docker to continuously deploy to Azure</title>
      <link>/blog/using-docker-to-continuously-deploy-to-azure/</link>
      <pubDate>Thu, 20 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/using-docker-to-continuously-deploy-to-azure/</guid>
      <description>&lt;p&gt;How to use docker to setup continuous deployment to the Azure cloud (Azure app service)&lt;/p&gt;
&lt;p&gt;PC -&amp;gt; docker build image -&amp;gt; push image to azure container registery -&amp;gt; app service listens and auto-deploys when new image available&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Dockerizing an Application by Example</title>
      <link>/blog/dockerizing-an-application/</link>
      <pubDate>Thu, 13 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/dockerizing-an-application/</guid>
      <description>&lt;p&gt;How to dockerize an application&amp;hellip;&lt;/p&gt;
&lt;p&gt;A hugo static website built into a docker image and then run as a container serving up the website using Nginx&lt;/p&gt;
&lt;p&gt;Build the site by installing hugo, running npm install and running hugo to compile the static file&lt;/p&gt;
&lt;p&gt;Then move the static files into the Nginx container&lt;/p&gt;
&lt;p&gt;Then run the Nginx container! :)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My Photo Backup Strategy</title>
      <link>/blog/how-i-backup-photos/</link>
      <pubDate>Thu, 13 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/how-i-backup-photos/</guid>
      <description>&lt;p&gt;How to backup the gigabytes and terabytes of photos my family takes and ensure nothing ever gets lost, still have enough space on my PC and also keeping the cost down&amp;hellip; the good news: it is possible!&lt;/p&gt;
&lt;h2 id=&#34;i-backup-photos-in-three-steps&#34;&gt;I backup photos in three steps&lt;/h2&gt;
&lt;h3 id=&#34;1---from-iphone-to-icloud&#34;&gt;1 - From iPhone to iCloud&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;/img/photos-backup-step-1.PNG&#34;&gt;I am using Apple&amp;rsquo;s 
&lt;a href=&#34;https://www.icloud.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;iCloud&lt;/a&gt; service for my iPhones and we keep it to the $1/month plan at 50 Gigabytes (one plan for each iPhone). This means as I snap photos on my phone they are auto backed-up to the cloud. Great in case I accidentally slam a car door on a phone&amp;hellip; which I have done before! :(&lt;/p&gt;
&lt;h3 id=&#34;2--from-icloud-to-pc--carbonite&#34;&gt;2- From iCloud to PC / Carbonite&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;/img/photos-backup-step-2.PNG&#34;&gt; As the phone/iCloud space fills up I&amp;rsquo;ll go into the iCloud website to download and delete photos from iCloud - Apple only lets us download or delete 1000 photos as a time. A little annoying since it takes around 5 minutes to download each ~4 GB file of 1000 photos and about a minute to delete the same. But I do that 2-3 times and I&amp;rsquo;ve freed up enough space on my phone to be good for a few months.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Tip:&lt;/em&gt; Also, I tag my favorite photos on my iPhone as I come across them. And before I delete photos from iCloud I grab the favorites (which are saved into a folder in iCloud) and store those in 
&lt;a href=&#34;https://www.google.com/drive/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Google Drive&lt;/a&gt;. That way I can easily access them from the cloud and for me it doesn&amp;rsquo;t take up too much space there.&lt;/p&gt;
&lt;p&gt;The downloaded photos are then placed into a folder on my home PC that are then backed up by 
&lt;a href=&#34;https://www.carbonite.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Carbonite&lt;/a&gt; to the cloud. I&amp;rsquo;m keeping a few hundred gigabytes on my PC/Carbonite that way. It costs about ~$70/yr for unlimited storage to the cloud. And this way any photos that go on the PC goes to the cloud. And anything I delete from the cloud also is removed from the PC. Since I don&amp;rsquo;t want to fill up my PC&amp;rsquo;s hard drive or keep adding drives - that&amp;rsquo;s where the last step comes in.&lt;/p&gt;
&lt;h3 id=&#34;3---from-pc--carbonite-to-external-hard-drives&#34;&gt;3 - From PC / Carbonite to external hard drives&lt;/h3&gt;
&lt;p&gt;&lt;img src=&#34;/img/photos-backup-step-3.PNG&#34;&gt; About every year or so I purge my home PC of photos (which are also removed from Carbonite) and place them onto two identical external hard drives. I copy the files onto one and then sync to the second one using a tool called 
&lt;a href=&#34;https://freefilesync.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;FreeFileSync&lt;/a&gt;. The first drive is stored at my home and the second is stored off-site in case of fire or who knows what (and maybe I should get a third). I never really access the drives unless I want to look into the archives or test they still work.&lt;/p&gt;
&lt;p&gt;At the moment I am taking the approach that each new external drive has to hold all photos. I think I&amp;rsquo;m up to around 3GB in total of photos. A 6 TB external hard drive costs about ~$130, 
&lt;a href=&#34;https://www.amazon.com/gp/product/B076MPMZDV/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;like this one&lt;/a&gt;. So the cost per TB isn&amp;rsquo;t too bad and decreases over time (in a few years a 12 TB drive may cost the same).&lt;/p&gt;
&lt;p&gt;If I ramped up photos/file storage I supposed they could be split for example amoung two drives and then I&amp;rsquo;d want to duplicate those two drives having in total four, but I&amp;rsquo;m not there yet.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Setup git to use Keychain</title>
      <link>/blog/setup-git-to-use-keychain/</link>
      <pubDate>Thu, 13 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/setup-git-to-use-keychain/</guid>
      <description>&lt;p&gt;When I&amp;rsquo;m writing code I often need to send my committs to a remote repository. I&amp;rsquo;m using GitHub and also Azure DevOps depending on the project.&lt;/p&gt;
&lt;p&gt;It can be frustrating at first to successfully begin sending commits to those repo services and also to automate authentication where you don&amp;rsquo;t need to enter a password on each Git push.&lt;/p&gt;
&lt;p&gt;For anyone feeling frustrated, I&amp;rsquo;ve outlined steps I&amp;rsquo;ve taken to begin commtting to a cloud repo and also automating user authentiction.&lt;/p&gt;
&lt;h2 id=&#34;os&#34;&gt;OS&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re running Windows and using Azure Repos (a component of Azure DevOps) I&amp;rsquo;ve found using their PAT (Personal Access Tokens) to be the easiest, however you could still follow the below steps.&lt;/p&gt;
&lt;p&gt;For Mac OS X it&amp;rsquo;s also possible to&lt;/p&gt;
&lt;h2 id=&#34;add-your-private-key-to-keychain&#34;&gt;Add your private key to Keychain&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;ssh-add -K &amp;lt;private key path&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;configure-ssh-to-use-keychain&#34;&gt;Configure SSH to use keychain&lt;/h2&gt;
&lt;p&gt;In your
~/.ssh/config&lt;/p&gt;
&lt;h2 id=&#34;now-start-developing&#34;&gt;Now start developing!&lt;/h2&gt;
&lt;p&gt;From here you should be able to authenticate into your remote repo and do git pulls and pushes, etc.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>How I setup my static website</title>
      <link>/blog/how-i-setup-my-static-website/</link>
      <pubDate>Sun, 09 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/how-i-setup-my-static-website/</guid>
      <description>&lt;p&gt;Here is a quick rundown&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-mermaid&#34;&gt;graph TD
    Localhost -- Git Push --&amp;gt; G[&amp;quot;Github (Master Branch)&amp;quot;]
    G -- Trigger --&amp;gt; A[&amp;quot;Azure DevOps Pipeline Build&amp;quot;]
    A -- Trigger --&amp;gt; R[&amp;quot;Azure DevOps Pipeline Release&amp;quot;]
    R -- Push to --&amp;gt; B[&amp;quot;Azure Blob Storage&amp;quot;]
    B -- Auto Sync to --&amp;gt; C[&amp;quot;Azure CDN&amp;quot;]
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>There is love for static websites</title>
      <link>/blog/love-static-websites/</link>
      <pubDate>Sun, 09 Aug 2020 01:30:34 +0000</pubDate>
      <guid>/blog/love-static-websites/</guid>
      <description>&lt;p&gt;I must admit static websites are cool :)&lt;/p&gt;
&lt;p&gt;I had heard they were a thing in the last few years but just discovered this year (2020) how nice it is to use.&lt;/p&gt;
&lt;h2 id=&#34;what-is-a-static-site&#34;&gt;What is a Static site?&lt;/h2&gt;
&lt;p&gt;You generate or compile static files like HTML, CSS, Javascript, Images, etc. up-front and then deploy to any old web server or even a CDN (nice!).&lt;/p&gt;
&lt;h2 id=&#34;static-site-generator&#34;&gt;Static site generator?&lt;/h2&gt;
&lt;p&gt;How do you generate those static files? With a static site generator of course! Here are a few 
&lt;a href=&#34;https://www.staticgen.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;popular ones&lt;/a&gt;&amp;hellip;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hugo&lt;/li&gt;
&lt;li&gt;Gatsby&lt;/li&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Jekyll&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;why-static-sites&#34;&gt;Why Static sites?&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;They are fast. You can put on a CDN! And this allows you to scale up without any hassle.&lt;/li&gt;
&lt;li&gt;More secure (no server side code).&lt;/li&gt;
&lt;li&gt;Easier to maintain (again, no server side code to patch/update).&lt;/li&gt;
&lt;li&gt;Lower cost to operate. No database, no PHP or C# or any special progarm needed other than a web server.&lt;/li&gt;
&lt;li&gt;And you can version control every part of it, unlike a database driven CMS.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;some-other-reasons-to-like-static-sites&#34;&gt;Some other reasons to like static sites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You can setup your CI/CD pipeline to auto-build your static site (e.g. from your GitHub repo) and deploy to a cloud server (like a CDN) every time you Git push commits to your repo.&lt;/li&gt;
&lt;li&gt;Decouple content management from the website. Meaning use a Content Engine like 
&lt;a href=&#34;https://www.contentful.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Contenful&lt;/a&gt; (or similar service) to power and hold your content. Then your static site can query the Content Engine during build time to pull down all the content.&lt;/li&gt;
&lt;li&gt;Using tools like 
&lt;a href=&#34;https://code.visualstudio.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Visual Studio Code&lt;/a&gt; and Markdown you can create a site very quickly (I&amp;rsquo;ve had to do this a few times)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;markdown-its-worth-mentioning&#34;&gt;Markdown, it&amp;rsquo;s worth mentioning&lt;/h2&gt;
&lt;p&gt;Markdown is not specific to static sites and has been around 
&lt;a href=&#34;https://daringfireball.net/projects/markdown/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;for a while&lt;/a&gt;. But I&amp;rsquo;ve found it is a joy to write content with. Takes away the burden of having to format HTML.&lt;/p&gt;
&lt;h2 id=&#34;which-static-site-generator-do-i-like-so-far&#34;&gt;Which static site generator do I like (so far)?&lt;/h2&gt;
&lt;p&gt;In particular, after trying out Gatsby and Hugo I have to say 
&lt;a href=&#34;https://discourse.gohugo.io/t/why-is-hugo-so-fast/785&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo is FAST&lt;/a&gt;! Like really fast&amp;hellip; can build site files in under one second! Gastby was taking around 30-40 seconds on my machine for a small site.&lt;/p&gt;
&lt;p&gt;And the overall Hugo is simplier to work with and requires less configuration. I found Gatsby had a steeper learning curve to get working.&lt;/p&gt;
&lt;h2 id=&#34;which-hugo-themes-do-i-like&#34;&gt;Which Hugo themes do I like?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href=&#34;https://www.docsy.dev/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Docsy&lt;/a&gt; - I&amp;rsquo;ve built multiple sites with this theme and it&amp;rsquo;s amazing. It has beautiful layouts for landing pages and also has a documentation system&amp;hellip; in case you need to put down a bunch of organized content. Another really nice feature is the use of image manipulation so I didn&amp;rsquo;t need to re-size background images, just drop a PNG file within a 
&lt;a href=&#34;https://gohugo.io/content-management/page-bundles/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;page bundle&lt;/a&gt; and let Hugo do the rest.&lt;/li&gt;
&lt;li&gt;
&lt;a href=&#34;https://sourcethemes.com/academic/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Academic&lt;/a&gt; - This is another nice one, very simple, minimal and I&amp;rsquo;m still getting used to it :)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;setting-up-hugo&#34;&gt;Setting up Hugo&lt;/h2&gt;
&lt;p&gt;You can find the official 
&lt;a href=&#34;https://gohugo.io/getting-started/quick-start/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Hugo quickstart guide here&lt;/a&gt;, however below are the steps I used to get started.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m running Ubuntu Linux on 
&lt;a href=&#34;https://docs.microsoft.com/en-us/windows/wsl/install-win10&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;WSL&lt;/a&gt; on Windows 10&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;brew
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Not found, so used the recommended package&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sudo apt install linuxbrew-wrapper
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ok, now that brew is isntalled, install Hugo&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;brew install hugo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check the installed version Hugo&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;hugo version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should get something like this&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;Hugo Static Site Generator v0.73.0-428907CC/extended linux/amd64 BuildDate: 2020-06-23T16:40:09Z
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Should you Validate Tools and Processes when Developing Medical Device Software?</title>
      <link>/blog/should-you-validate-tools-and-processes/</link>
      <pubDate>Mon, 13 Jul 2020 01:30:34 +0000</pubDate>
      <guid>/blog/should-you-validate-tools-and-processes/</guid>
      <description>&lt;p&gt;The past few years I&amp;rsquo;ve worked for a Medical device manufacturer, 
&lt;a href=&#34;https://www.quidel.com&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Quidel Corporation&lt;/a&gt;. The overall company creates diagnostic tests for things like Flu, RSV and other infectious diseases including COVID-19.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s an exciting place to be in terms of the war on Coronavirus. Quidel was the 
&lt;a href=&#34;https://www.medtechdive.com/news/1st-antigen-covid-19-diagnostic-test-gets-fda-nod/577649/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;first to develop and receive FDA approval&lt;/a&gt; for a rapid SARS Coronavirus (COVID-19) Antigen test. And by the looks of it the test is in 
&lt;a href=&#34;https://ir.quidel.com/news/news-release-details/2020/Quidel-Announces-Preliminary-Revenue-for-Second-Quarter-2020/default.aspx&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;high demand&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Those rapid tests run on Sofia 2 and Sofia devices. Which require software to run the tests.&lt;/p&gt;
&lt;p&gt;The hardware and software on those medical devices are required by the FDA to have design controls - meaning the requirements driving the hardware and software need to be what we call 
&lt;a href=&#34;https://www.fda.gov/media/73141/download#page=10&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Verified&amp;rdquo; and &amp;ldquo;Validated&amp;rdquo;&lt;/a&gt; (or V&amp;amp;V-ed). And the process needs to be documented.&lt;/p&gt;
&lt;p&gt;The thinking is when requirements are verified and validated (and you show you documented your work) there is a higher assurance the end product delivers the consistent, intended results and won&amp;rsquo;t result in patient harm.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verification&lt;/strong&gt; means showing your requirements have been met. In other words, you built it &amp;ldquo;right&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Validation&lt;/strong&gt; means showing your requirements meet &lt;em&gt;intended use&lt;/em&gt;. In other words, you&amp;rsquo;ve build the &amp;ldquo;right&amp;rdquo; thing meeting user needs and you have high assurance what you&amp;rsquo;ve built provides reliable, intended results.&lt;/p&gt;
&lt;p&gt;V&amp;amp;V can be a time intensive process to complete and the documentation alone is significant work.&lt;/p&gt;
&lt;p&gt;So, being in the Medical Device industry should you also validate the tools and processes used to develop your end product?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve worked with a few folks in software Verification and Validation.&lt;/p&gt;
&lt;p&gt;Some will tell you:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You need to validate everything!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and then you go: huh? Wait, what? I have to validate Microsoft Windows? Word? Excel too? What about my SDLC tool (Azure DevOps, Jira, etc.) I use for managing and printing my requirements and test cases - I need to validate that too?&lt;/p&gt;
&lt;p&gt;No. You don&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;You validate a process or tool when the output can&amp;rsquo;t be verified&lt;/em&gt;. That&amp;rsquo;s what our friends at the 
&lt;a href=&#34;https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfcfr/CFRSearch.cfm?fr=820.75&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;FDA say&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Where the results of a process cannot be fully verified by subsequent inspection and test, the process shall be validated&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let me say it differently.&lt;/p&gt;
&lt;p&gt;You need to validate your end-product meets requirements and meets intended use. But when using tools and processes to build your end-product you only need to validate those if you can&amp;rsquo;t reliably verify (e.g. inspect or test) their results.&lt;/p&gt;
&lt;p&gt;Verification can mean you manually review a printed document generated by some process or tool and wet sign with a pen (maybe you printed requirement test cases using Word or Excel on Microsoft Windows).&lt;/p&gt;
&lt;p&gt;So, in that case you don&amp;rsquo;t need to validate the process or tool which generated the document. You don&amp;rsquo;t validate Windows, Word or Excel. Or any tool used to generated the result (the document). You&amp;rsquo;ve been able to &amp;ldquo;inspect&amp;rdquo; or &amp;ldquo;test&amp;rdquo; the document as your verification. And you&amp;rsquo;re done :)&lt;/p&gt;
&lt;p&gt;You would however need to validate a tool for certain use cases where you can&amp;rsquo;t verify the output.&lt;/p&gt;
&lt;p&gt;Example is when you plan to use a cloud repository like 
&lt;a href=&#34;https://github.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Git Hub&lt;/a&gt; or 
&lt;a href=&#34;https://dev.azure.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Azure DevOps&lt;/a&gt; for storing the code your software/device is built from. You wouldn&amp;rsquo;t be able to reliably inspect the bits on each commit or clone activity and for everyone who uses the tool. And that&amp;rsquo;s why you&amp;rsquo;d need to validate.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
