DEV Community

The 6 Figure Developer Podcast

Episode 086 – Software Quality vs Grade

 
This week we talk about Software Quality vs Grade.

Definition of Quality

  • PMBOK V.5 – “Quality is the degree to which a set of inherent characteristics fulfills requirements”
    • PMBOK: Project Management Body of Knowlege
  • 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.”
    • ISO: International Standards Organization (International Organization for Standardization)
  • Put Simply – Quality is the fulfillment of the requirements.

Definition of Grade

  • 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.”
  • Put Simply – Grade ranks items by the strictests set of requirements they fulfill

How does this Apply to Software?

Softare Quality (in terms of meeting requirements) is a pass fail

Compare to Chemical Engineering

  • Produced Various Grade’s of Polymers
  • Any product could be in-spec (within specifications) or out-of-spec(outside specifications) of a given set of requrements
  • 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)
  • The processes themselves are measure and can be certified to meet certain specifications.

Stop Conflating the Source Code with the Product

  • Software specifcations are (should) be written from the funtionality value that is provided to the user.
  • Software should be evaluated according to the fullfillment of those requirements.
  • We cannot ignore the process of creating, maintaining and changing software

Two sets of Requirements

  • Software Product Requirements
  • Software Process Requirements

Gold Plating

  • Gold plating is simply meeting additional software product requirements that are not in scope
  • We need to stop gold plating, if the changes are needed there needs to be a change of scope
  • Gold plating is not following architentual and devleopment choices to ensure proper software process requirements are met
    • Where does logging fit in?

Technical Debt

  • Should be only 2 kinds of Techincal Debt but…

    • Intentional
      • Choose to leave a software process requirement unfullfilled, in order to fulfill a product requirement more quickly, cheaply, etc
    • Discovered
      • Fulfillment and specification of software process requirements, create additional burden in order to fulfill a softare product requirement
    • (Unfortunate Third) Unintentional
      • Poor fullilment of software process requirements either because of lack of understanding, specification, or negligence
  • Tech Debt is a lot like real debt in that it costs interest while it exists

  • So might choose to take on tech debt to more quickly produce a feature, however, until its “paid off” every new change will cost itself plus the additional interest of the debt

  • This snoballs when the business does not want to pay the cost+interest of the next feature and looks to use more debt to reduce that cost

  • Discovered Technical Debt is reduced by following good design patterns and practices, like, SOLID and TDD as they tend to leave the code easier to change.

 

Links

http://www.maxwideman.com/papers/quality/academic.htm
https://www.projectengineer.net/project-quality-management-according-to-the-pmbok/
http://www.fao.org/3/w7295e/w7295e03.htm
https://www.iso.org/obp/ui/#iso:std:iso:9000:ed-4:v1:en

 

“Tempting Time” by Animals As Leaders used with permissions – All Rights Reserved

 

× Subscribe now! Never miss a post, subscribe to The 6 Figure Developer Podcast!

 

Episode source