Episode 086 – Software Quality vs Grade




The 6 Figure Developer Podcast show

Summary:  <br> This week we talk about Software Quality vs Grade.<br> <br> <a class="anchor hidden-xs" href="#Definition-of-Quality" title="Definition-of-Quality"></a>Definition of Quality<br> PMBOK V.5 - “Quality is the degree to which a set of inherent characteristics fulfills requirements”<br> <br> PMBOK: Project Management Body of Knowlege<br> <br> <br> ISO 9000:2015 - “Quality is the totality of features and characteristics of a product or service that bear on its ablility to satisfy stated or implied needs.”<br> <br> ISO: International Standards Organization (International Organization for Standardization)<br> <br> <br> Put Simply - Quality is the fulfillment of the requirements.<br> <a class="anchor hidden-xs" href="#Definition-of-Grade-lt-Ash" title="Definition-of-Grade-lt-Ash"></a>Definition of Grade<br> PMBOK V.5 - “Grade is a category or rank used to distinguish items that have the same functional use but do not share the same requirements for quality.”<br> Put Simply - Grade ranks items by the strictests set of requirements they fulfill<br> <a class="anchor hidden-xs" href="#How-does-this-Apply-to-Software" title="How-does-this-Apply-to-Software"></a>How does this Apply to Software?Softare Quality (in terms of meeting requirements) is a pass fail<a class="anchor hidden-xs" href="#Compare-to-Chemical-Engineering" title="Compare-to-Chemical-Engineering"></a>Compare to Chemical Engineering<br> Produced Various Grade’s of Polymers<br> Any product could be in-spec (within specifications) or out-of-spec(outside specifications) of a given set of requrements<br> Across Chemical companies, the process for creating production vary significally regardless if they are producing the same grade of product (the end user is generally uneffected)<br> The processes themselves are measure and can be certified to meet certain specifications.<br> <a class="anchor hidden-xs" href="#Stop-Conflating-the-Source-Code-with-the-Product" title="Stop-Conflating-the-Source-Code-with-the-Product"></a>Stop Conflating the Source Code with the Product<br> Software specifcations are (should) be written from the funtionality value that is provided to the user.<br> Software should be evaluated according to the fullfillment of those requirements.<br> We cannot ignore the process of creating, maintaining and changing software<br> <a class="anchor hidden-xs" href="#Two-sets-of-Requirements" title="Two-sets-of-Requirements"></a>Two sets of Requirements<br> Software Product Requirements<br> Software Process Requirements<br> <a class="anchor hidden-xs" href="#Gold-Plating" title="Gold-Plating"></a>Gold Plating<br> Gold plating is simply meeting additional software product requirements that are not in scope<br> We need to stop gold plating, if the changes are needed there needs to be a change of scope<br> Gold plating is not following architentual and devleopment choices to ensure proper software process requirements are met<br> <br> Where does logging fit in?<br> <br> <br> <a class="anchor hidden-xs" href="#Technical-Debt-lt-Ash" title="Technical-Debt-lt-Ash"></a>Technical Debt<br> <br> Should be only 2 kinds of Techincal Debt but…<br> <br> Intentional<br> <br> Choose to leave a software process requirement unfullfilled, in order to fulfill a product requirement more quickly, cheaply, etc<br> <br> <br> Discovered<br> <br> Fulfillment and specification of software process requirements, create additional burden in order to fulfill a softare product requirement<br> <br> <br> (Unfortunate Third) Unintentional<br> <br> Poor fullilment of software process requirements either because of lack of understanding, specification, or negligence<br>