{"id":3438,"date":"2025-02-28T12:13:44","date_gmt":"2025-02-28T20:13:44","guid":{"rendered":"https:\/\/vfunction.com\/?p=3438"},"modified":"2025-03-03T00:28:21","modified_gmt":"2025-03-03T08:28:21","slug":"software-quality","status":"publish","type":"post","link":"https:\/\/vfunction.com\/blog\/software-quality\/","title":{"rendered":"The true measure of software quality"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>This piece originally appeared in <a href=\"https:\/\/awscq.substack.com\/p\/the-true-measure-of-software-quality\" target=\"_blank\" rel=\"canonical noopener\">AWS ComSum Quarterly<\/a>, an independent publication dedicated to knowledge-sharing within the AWS community. For this edition, Amir Rapson, CTO of vFunction, guest-edited the issue to highlight a critical truth: software quality isn\u2019t just about code\u2014it\u2019s about architecture.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The principles of good software are a popular discussion topic at vFunction. Improving software quality is at the heart of our mission\u2014whether for cloud migration, cost reduction, or simply building better software. Our focus, architectural observability, centers on improving applications via software architecture. You can have bad software built entirely of good code, because software quality isn\u2019t just about clean syntax or following patterns. Software architecture is the crucial element of software quality.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yet, we still encounter software architectures that make us question our principles and spark discussions like \u201cBut why is this bad?\u201d or \u201cHow would you fix this?\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article sets the groundwork for what makes software truly good\u2014not just at the code level but at the architectural level. We hope sharing our perspective provides valuable insights and meaningful discussions on the essential elements of good software.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What makes one piece of software better than another?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To define software quality, let\u2019s start with some common ground. Imagine that every piece of software meets its current requirements and satisfies its current user needs\u2014<em>it\u2019s easy if you try.<\/em> With that assumption, we can easily differentiate between good software and better software. Now, suppose this software is reliable under the current conditions\u2014<em>it isn\u2019t hard to do<\/em>\u2014and even performs well with the current resources\u2014<em>I wonder if you can..<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alas, software is never static. Requirements, users, and usage patterns and conditions are always subject to change. What is considered \u201cok\u201d in terms of operational costs and performance today may be the cause of a major headache tomorrow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assuming no software is future-proof\u2014<em>if it were, why wasn\u2019t it released sooner?\u2014<\/em>then, software quality in this imaginary world can be defined by how easily it adapts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Functionality &amp; usability<\/strong>: Can the software be easily modified, updated, and repaired to meet new requirements and usage patterns?&nbsp;&nbsp;<\/li>\n\n\n\n<li><strong>Security &amp; portability<\/strong>: Can updates to security vulnerabilities be made quickly without risking the stability of the software? Can the software run in new environments and platforms with minimal changes?<\/li>\n\n\n\n<li><strong>Reliability &amp; quality<\/strong>: Can the software perform reliably despite constant changes, with little impact on other components? Will it deploy efficiently with changes?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Good architecture, good code, and their contribution to good software<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A fabulous article from 2012, \u201c<a href=\"https:\/\/insights.sei.cmu.edu\/library\/in-search-of-a-metric-for-managing-architectural-technical-debt\/\">In Search of a Metric for Managing Architectural Technical Debt<\/a>,\u201d describes a simple model to calculate architectural technical debt. By defining this metric, the authors imply that good architecture is one with minimal architectural technical debt. The article states that the \u201ccost of reworking\u201d a software element is the sum of the cost of reworking all its dependent elements. This means good architecture minimizes dependencies\u2014whether code classes, modules, or libraries. Fewer dependencies ensure when we modify a piece of software, we only need to rework a small set of elements vs. a cascade of rework across the system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Returning to the definition of better software\u2014we can now say that better architecture makes for better software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Good code is another matter. A class with good code can minimize the rework effort for that specific class. With readability, coding standards, and code reviews, a class can be maintained more easily. The effect of good code is primarily limited to its class. In other words, you can have bad software built with good code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For further exploration, you may want to read&nbsp; <a href=\"https:\/\/www.infoworld.com\/article\/3589545\/is-your-software-architecture-as-clean-as-your-code.html\">\u201cIs your software architecture as clean as your code?<\/a>\u201d which explains the principles of good architecture that lead to minimizing dependencies, and <a href=\"https:\/\/insights.sei.cmu.edu\/library\/measure-it-manage-it-ignore-it-software-practitioners-and-technical-debt\/\">\u201cMeasure It? Manage It? Ignore It? Software Practitioners and Technical Debt<\/a>\u201d which emphasizes the importance of architectural technical debt as a source of technical debt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/image.png\" alt=\"AWS Comsum Quarterly image\" class=\"wp-image-3440\" srcset=\"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/image.png 1024w, https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/image-300x169.png 300w, https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/image-768x432.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"bullets\"><em><a href=\"https:\/\/www.comsum.co.uk\/\">AWS <em>ComSum<\/em><\/a> is an independent, community-driven initiative that fosters collaboration among AWS users, helping them navigate the ever-evolving cloud landscape.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bullets\">Quality practices that support software quality<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"bullets\">Besides the key element of having good software architecture, other practices contribute to the quality of software and reduce the cost of reworking or adding new capabilities to an existing software application:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Clear requirements &amp; design<\/strong>: Clear and precise requirements and a detailed blueprint of the potential dependent elements ensure that engineers understand the task at hand. Bad requirements and design will lead to confusion and possible rework.<\/li>\n\n\n\n<li><strong>Robust testing &amp; QA<\/strong>: Conducting various levels of testing (unit, integration, system, load, and acceptance testing) ensure the software functions correctly and meets quality standards. The more automated and complete the testing, the easier it is to minimize the time to release software. Less dependencies for the changed element&nbsp;allow QA to focus on the specific functionality rather than conducting acceptance on the entire system.<\/li>\n\n\n\n<li><strong>Automated CI\/CD, security testing and tooling<\/strong>: Automating the process of code integration, testing, vulnerability testing, and deployment to ensure rapid and reliable delivery of software updates.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">With these elements, software engineers can develop high-quality software that meets user expectations and performs reliably. However, while these practices support a good software development lifecycle, they do not ensure that the software itself is of good quality.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to measure software quality<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019ve made it this far, then you may agree that evaluating software quality predominantly involves assessing its architecture. Here are some approaches and metrics to evaluate it:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Architectural peer reviews<\/strong>: Systematically evaluate architectural decisions and trade-offs by conducting reviews with architects and engineers. Assess the architecture&#8217;s quality, feasibility, and alignment with requirements.&nbsp;<\/li>\n\n\n\n<li><strong>Documentation quality<\/strong>: Ensure the architecture is well-documented, including diagrams and design decisions to support understanding, maintenance, and evolution as the software changes. Strive, through the use of tools, to keep your documentation accurate and up to date with minimal overhead.<\/li>\n\n\n\n<li><strong>Coupling &amp; cohesion<\/strong>: Measure the degree of dependency between components (coupling) and the degree to which components are related (cohesion). At vFunction, we call this metric \u201cexclusivity,\u201d which measures the percentage of classes or resources required solely for the component.<\/li>\n\n\n\n<li><strong>Technical debt &amp; architectural complexity<\/strong>: Measure the amount of work required to fix issues in the architecture. For instance, you can count story points in your refactoring backlog or sum up weighted scores on your to-dos.<\/li>\n\n\n\n<li><strong>Modularity<\/strong>: Assess the degree to which the architecture supports modularization and reuse of components. Look for ways to ensure and monitor modularity through compile-time boundaries and runtime monitoring.<\/li>\n\n\n\n<li><strong>Code complexity &amp; code churn<\/strong>: Use existing tools to measure cyclomatic complexity and maintainability. Although certain parts of the code need to be complex, if all your code is complex, you have a problem. Code churn is the percentage of code that\u2019s added and modified over time. If the same code changes all the time, or too many classes get checked in at once, there are probably too many dependencies in the code.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">By employing these approaches and metrics, you can effectively assess the quality of your software architecture and ensure it can support future changes to the application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Other measures that support software quality<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As you consider how to measure software architecture quality in your organization, the following measures serve as a safety net for software quality. Ironically, these are measured more often than software quality itself. Here are some common metrics and methods:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Test coverage<\/strong>: The percentage of code executed by the test cases, ensuring that all parts of the code are tested. Think about mimicking production behavior and not just covering every line in your code, since the same code can be executed in different contexts by your real users. In vFunction, we call this \u201cLive Flow Coverage.\u201d<\/li>\n\n\n\n<li><strong>Reliability metrics (MTBF, MTTR)<\/strong>: The average time between failure and the time taken to repair the software following a failure. Application performance monitoring (APM) tools are built to monitor this.<\/li>\n\n\n\n<li><strong>Performance issues and error rates<\/strong>: The frequency of performance glitches and user errors while interacting with the software. This, too, can be monitored with APM tools.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">GenAI, code quality, and its contribution to software quality<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GenAI tools enhance code quality by automating and assisting with various aspects of coding, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Code generation<\/strong>: Generating boilerplate code, repetitive code patterns, and even complex algorithms, which reduces human error and improves consistency.<\/li>\n\n\n\n<li><strong>Code reviews<\/strong>: Assisting in code review processes by identifying potential issues, code smells, and suggesting improvements.<\/li>\n\n\n\n<li><strong>Testing<\/strong>: generating unit tests, integration tests, and other forms of automated testing to ensure code correctness and reliability.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">GenAI also plays a lesser role in improving overall software quality by supporting higher-level aspects of software development, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Requirements analysis &amp; design<\/strong>: Analysing user requirements and generating relevant documentation.<\/li>\n\n\n\n<li><strong>Performance optimization<\/strong>: Suggesting optimizations to enhance software performance.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">While GenAI tools are particularly effective in enhancing code quality by automating and optimizing coding tasks, their contribution to software quality is limited. If GenAI tools can create a lot more code, then measuring and maintaining good quality and good architecture becomes even more critical.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Software architecture: The foundation of software quality<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Good software architecture is essential for building high-quality applications that adapt easily to changing requirements and support future enhancements. By measuring and assessing the quality of your architecture, you can ensure that your software will be able to meet the changing needs of your users and business.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consider how your organization currently measures software quality, and the growing importance of doing so in a world increasingly driven by GenAI tools. Take proactive steps to ensure&nbsp; your software is reliable, maintainable, and scalable, which is what engineering excellence is all about.<\/p>\n\n\n\n<div class=\"wp-block-blog-cta-block blog-cta bg-cyan\"><div class=\"blog-cta-inner\"><div class=\"blog-cta-text\"><div class=\"blog-cta-related\">Related<\/div><div class=\"blog-cta-title\">What is software architecture? Checkout our guide.<\/div><\/div><a href=\"https:\/\/vfunction.com\/blog\/what-is-software-architecture\/\" class=\"blog-cta-read-more\">Read More<\/a><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This piece originally appeared in AWS ComSum Quarterly, an independent publication dedicated to knowledge-sharing within the AWS community. For this edition, Amir Rapson, CTO of vFunction, guest-edited the issue to<a class=\"excerpt-read-more\" href=\"https:\/\/vfunction.com\/blog\/software-quality\/\" title=\"ReadThe true measure of software quality\"> [&#8230;]<\/a><\/p>\n","protected":false},"author":6,"featured_media":3441,"parent":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[25],"tags":[27,26],"topic":[17],"class_list":["post-3438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-featured","tag-measuring-software-quality","tag-software-quality","topic-architectural-observability"],"acf":{"blog_cta":{"background_color":"cyan","title":"","subtitle":"","primary_button":{"label":"Read More","url":""}}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The true measure of software quality: Architecture or code?<\/title>\n<meta name=\"description\" content=\"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vfunction.com\/blog\/software-quality\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The true measure of software quality: Architecture or code?\" \/>\n<meta property=\"og:description\" content=\"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vfunction.com\/blog\/software-quality\/\" \/>\n<meta property=\"og:site_name\" content=\"vFunction\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-28T20:13:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-03T08:28:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1240\" \/>\n\t<meta property=\"og:image:height\" content=\"700\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Amir Rapson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Amir Rapson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"type\":\"BlogPosting\",\"mainEntityOfPage\":{\"type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/\"},\"headline\":\"The true measure of software quality\",\"description\":\"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.\",\"image\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/#primaryimage\",\"author\":{\"name\":\"Amir Rapson\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/#\\\/schema\\\/person\\\/f8f9c76a95455ea2c94aa954f8e3c666\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vfunction.com\\\/#organization\"},\"thumbnailUrl\":\"https:\\\/\\\/vfunction.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp\",\"datePublished\":\"2025-02-28T20:13:44+00:00\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/\",\"url\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/\",\"name\":\"The true measure of software quality: Architecture or code?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vfunction.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vfunction.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp\",\"datePublished\":\"2025-02-28T20:13:44+00:00\",\"dateModified\":\"2025-03-03T08:28:21+00:00\",\"description\":\"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vfunction.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp\",\"contentUrl\":\"https:\\\/\\\/vfunction.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp\",\"width\":1240,\"height\":700,\"caption\":\"How to measure software quality: Architecture or code\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/blog\\\/software-quality\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vfunction.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The true measure of software quality\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/#website\",\"url\":\"https:\\\/\\\/vfunction.com\\\/\",\"name\":\"vFunction\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/vfunction.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vfunction.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/#organization\",\"name\":\"vFunction\",\"url\":\"https:\\\/\\\/vfunction.com\\\/\",\"logo\":\"https:\\\/\\\/vfunction.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/vfunction_logo.jpg\",\"image\":\"https:\\\/\\\/vfunction.com\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/vfunction_logo.jpg\",\"description\":\"Pioneering architectural observability\",\"address\":{\"@type\":\"PostalAddress\",\"streetAddress\":\"700 El Camino Real, Suite 120\",\"addressLocality\":\"Menlo Park\",\"addressRegion\":\"CA\",\"postalCode\":\"94025\",\"addressCountry\":\"US\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vfunction.com\\\/#\\\/schema\\\/person\\\/f8f9c76a95455ea2c94aa954f8e3c666\",\"name\":\"Amir Rapson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03b5da0b3b53ea5039f2a9642c3d4cae98f965d0168d85fb9387631e01620292?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03b5da0b3b53ea5039f2a9642c3d4cae98f965d0168d85fb9387631e01620292?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/03b5da0b3b53ea5039f2a9642c3d4cae98f965d0168d85fb9387631e01620292?s=96&d=mm&r=g\",\"caption\":\"Amir Rapson\"},\"description\":\"Amir Rapson co-founded vFunction and serves as its CTO, where he leads its technology, product and engineering. Prior to founding vFunction in 2017, Amir was a GM and the VP R&amp;D of WatchDox until its acquisition by Blackberry, where Amir served as a VP of R&amp;D. Prior to WatchDox, Amir held R&amp;D positions at CTERA Networks and at SofaWare (Acquired by Check Point). Amir has an MBA from the IDC Herzlia, and a BSc in Physics from Tel-Aviv University.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The true measure of software quality: Architecture or code?","description":"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.","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:\/\/vfunction.com\/blog\/software-quality\/","og_locale":"en_US","og_type":"article","og_title":"The true measure of software quality: Architecture or code?","og_description":"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.","og_url":"https:\/\/vfunction.com\/blog\/software-quality\/","og_site_name":"vFunction","article_published_time":"2025-02-28T20:13:44+00:00","article_modified_time":"2025-03-03T08:28:21+00:00","og_image":[{"width":1240,"height":700,"url":"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp","type":"image\/webp"}],"author":"Amir Rapson","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Amir Rapson","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"type":"BlogPosting","mainEntityOfPage":{"type":"WebPage","@id":"https:\/\/vfunction.com\/blog\/software-quality\/"},"headline":"The true measure of software quality","description":"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.","image":"https:\/\/vfunction.com\/blog\/software-quality\/#primaryimage","author":{"name":"Amir Rapson","@id":"https:\/\/vfunction.com\/#\/schema\/person\/f8f9c76a95455ea2c94aa954f8e3c666"},"publisher":{"@id":"https:\/\/vfunction.com\/#organization"},"thumbnailUrl":"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp","datePublished":"2025-02-28T20:13:44+00:00"},{"@type":"WebPage","@id":"https:\/\/vfunction.com\/blog\/software-quality\/","url":"https:\/\/vfunction.com\/blog\/software-quality\/","name":"The true measure of software quality: Architecture or code?","isPartOf":{"@id":"https:\/\/vfunction.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vfunction.com\/blog\/software-quality\/#primaryimage"},"image":{"@id":"https:\/\/vfunction.com\/blog\/software-quality\/#primaryimage"},"thumbnailUrl":"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp","datePublished":"2025-02-28T20:13:44+00:00","dateModified":"2025-03-03T08:28:21+00:00","description":"Software quality goes beyond clean code\u2014it starts with architecture. Discover why architecture is the key to building resilient, high-quality applications.","breadcrumb":{"@id":"https:\/\/vfunction.com\/blog\/software-quality\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vfunction.com\/blog\/software-quality\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vfunction.com\/blog\/software-quality\/#primaryimage","url":"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp","contentUrl":"https:\/\/vfunction.com\/wp-content\/uploads\/2025\/02\/blog_the_true_measure_of_sw_quality_blog_image_l1r2.webp","width":1240,"height":700,"caption":"How to measure software quality: Architecture or code"},{"@type":"BreadcrumbList","@id":"https:\/\/vfunction.com\/blog\/software-quality\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vfunction.com\/"},{"@type":"ListItem","position":2,"name":"The true measure of software quality"}]},{"@type":"WebSite","@id":"https:\/\/vfunction.com\/#website","url":"https:\/\/vfunction.com\/","name":"vFunction","description":"","publisher":{"@id":"https:\/\/vfunction.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vfunction.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/vfunction.com\/#organization","name":"vFunction","url":"https:\/\/vfunction.com\/","logo":"https:\/\/vfunction.com\/wp-content\/uploads\/2024\/06\/vfunction_logo.jpg","image":"https:\/\/vfunction.com\/wp-content\/uploads\/2024\/06\/vfunction_logo.jpg","description":"Pioneering architectural observability","address":{"@type":"PostalAddress","streetAddress":"700 El Camino Real, Suite 120","addressLocality":"Menlo Park","addressRegion":"CA","postalCode":"94025","addressCountry":"US"}},{"@type":"Person","@id":"https:\/\/vfunction.com\/#\/schema\/person\/f8f9c76a95455ea2c94aa954f8e3c666","name":"Amir Rapson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/03b5da0b3b53ea5039f2a9642c3d4cae98f965d0168d85fb9387631e01620292?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/03b5da0b3b53ea5039f2a9642c3d4cae98f965d0168d85fb9387631e01620292?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/03b5da0b3b53ea5039f2a9642c3d4cae98f965d0168d85fb9387631e01620292?s=96&d=mm&r=g","caption":"Amir Rapson"},"description":"Amir Rapson co-founded vFunction and serves as its CTO, where he leads its technology, product and engineering. Prior to founding vFunction in 2017, Amir was a GM and the VP R&amp;D of WatchDox until its acquisition by Blackberry, where Amir served as a VP of R&amp;D. Prior to WatchDox, Amir held R&amp;D positions at CTERA Networks and at SofaWare (Acquired by Check Point). Amir has an MBA from the IDC Herzlia, and a BSc in Physics from Tel-Aviv University."}]}},"_links":{"self":[{"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/posts\/3438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/comments?post=3438"}],"version-history":[{"count":0,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/posts\/3438\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/media\/3441"}],"wp:attachment":[{"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/media?parent=3438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/categories?post=3438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/tags?post=3438"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/vfunction.com\/wp-json\/wp\/v2\/topic?post=3438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}