Home > Articles > Process Improvement

📄 Contents

  1. Introduction
  2. Defining Software Quality
  3. Defining Economic Value and Defining the Value of Software Quality
  4. Summary and Conclusions
  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

Defining Economic Value and Defining the Value of Software Quality

Not only is "quality" an ambiguous term because of multiple viewpoints, but the term "value" is also ambiguous for the same reason. Indeed the concept of economic value has been a difficult one for every industry and for all forms of economic theory for more than 150 years.

Some economic theories link value to cost of production and to the price of various commodities. Other economic theories link value to usage of the same commodities. John Ruskin even assigned a moral element to value that dealt with whether wealth or various commodities were used for beneficial or harmful purposes. All of these theoretical economic views about value are interesting but somewhat outside the scope of this book.

For software, the perception of economic value can vary between enterprises that produce software and enterprises that consume or use software. These two views correspond to classic economic theories that assign value based on either production or on usage—both are discussed.

But software has another view of value that is not dealt with very often in standard economic theories. In modern businesses and governments, the people who pay for internal software application development are neither the producers nor the consumers.

Many software projects are commissioned and funded by executives or senior managers who will probably never actually use the software itself. These senior executives have a perception of value that needs to be considered—at the executive level, value of software can be delineated in a few different ways:

  1. Software that can lower current operational costs
  2. Software that can increase revenue by selling more current products
  3. Software that can increase revenue by creating innovative new lines of business or by producing novel new products

For the first 20 years of the software industry between about 1950 and 1970, operating cost reduction was the primary economic reason for building software applications. Many clerical and paper-pushing jobs were converted from manual labor to computers.

From about 1970 to 1990, computers and software started to be aimed at improving manufacturing and marketing capabilities so that companies could build and sell more of their current products. Robotic manufacturing and sophisticated customer support and inventory management systems made significant changes in industrial production, marketing, and sales methodologies.

From about 1990 through today, computers and software have been rapidly creating new kinds of businesses that never existed before in all of human history. Consider the products and business models that are now based on the Internet and the World Wide Web.

Modern companies such as Amazon, Google, and eBay are doing forms of business that could not be done at all without software and the Web. At a lower level, computer gaming is now a multi-billion dollar industry that is selling immersive 3D products that could not exist without software. In other words, the third dimension of economic value is "innovation" and the creation of entirely new kinds of products and new business models.

In sum, when considering the economics of software and also of software quality, we need to balance three distinct threads of analysis:

  1. Operating cost reductions
  2. Revenue from increasing market share of current products or services
  3. Revenue from inventing entirely new kinds of products and services

To come to grips with both the value of software itself and economic value of software quality, it is useful to explore a sample of these disparate views, including both the value of high quality levels and the economic harm from poor quality levels. In Chapter 7 we present quantitative frameworks for measuring the operating costs and the business impact of software quality.

The Economic Value of Software and Quality to Enterprises That Build Internal Software for Their Own Use

Building software internally for corporate or government operations was the first application for computers in a business setting. The reason this was the first response is because there were no other alternatives in the late 1950s and early 1960s due to the lack of other sources for software.

In the 1960s when computers first began to be widely used for business purposes, there were few COTS companies and no enterprise-resource planning companies (ERP) at all. The outsource business was in its infancy, and offshore outsourcing was almost 20 years in the future. The initial use of computers was to replace labor-intensive paper operations with faster computerized applications. For example, insurance claims handling, accounting, billing, taxation, and inventory management were all early examples of computerization of business operations.

The software for these business applications were built by the companies or government groups that needed them. This began an interesting new economic phenomenon of large companies accumulating large software staffs for building custom software even though software had nothing to do with their primary business operations.

By the 1990s, many banks, insurance companies, and manufacturing companies had as many as 10% of their total employment engaged in the development, maintenance, and support of custom internal software.

The same phenomenon occurred for the federal government, for all 50 of the state governments, and for about the 125 largest municipal governments.

In 2011, the 1,000 largest U.S. companies employed more than 1,000,000 software engineers and other software occupations. Some of these companies are very sophisticated and build software well, but many are not sophisticated and have major problems with cost overruns, schedule slippage, and outright cancellation of critical software projects.

The same statement is true of government software development. Some agencies are capable and build software well. But many are not capable and experience cancellations, overruns, and poor quality after deployment.

Examples of enterprises that build their own custom software include Aetna, Citizens, Proctor and Gamble, Ford and General Motors, Exxon Oil, the federal government, the state of California, the city of New York, and thousands of others.

Most internal software development groups operate as cost centers and are not expected to be profitable. However, they may charge other operating units for their services. Some software groups are funded by corporations as overhead functions, in which case they work for free. Very few operate as profit centers and sell their services to other companies as well as to internal business units.

Between about 1965 and 1985 these internal development groups were building applications for two main purposes:

  1. To reduce operational costs by automating labor-intensive manual activities
  2. To allow companies to offer new and improved services to customers

By the end of the last century and continuing through 2011, the work patterns have shifted. About 75% of "new" applications in 2011 were replacements for aging legacy applications built more than 15 years ago. These aging legacy applications require so much work to keep them running and up to date that more than 50% of internal software staffs now work on modifying existing software.

And, of course, the software personnel spend a high percentage of every working day finding and fixing bugs.

Since the early 1990s outsource vendors, COTS vendors, and open source vendors have entered the picture. As a result, the roles of internal software groups are evolving. Due to the recession of 2008 through 2010, many internal software groups have been downsized, and many others are being transferred to outsourcing companies.

As of 2011 only about 20% of the work of internal software groups involves innovation and new forms of software. The new forms of innovative software center on web applications, cloud computing, and business intelligence. However, numerous software projects are still being built by internal software groups even if the majority of these "new" projects are replacements or consolidations of aging legacy applications.

The economic value of software quality for internal software projects centers on these topics:

  • Reduced cancellation rates for large applications
  • Earlier delivery dates for new applications
  • Reduced resistance from operating units for accepting new software
  • Faster learning curves for bringing users up to speed for new software
  • More and better services and products for clients
  • Reduced development costs for new applications
  • Reduced maintenance costs for released applications
  • Reduced customer support costs for released applications
  • Reduced executive dissatisfaction with the IT function

The economic consequences of low quality for in-house development include

  • Protracted delays in delivering new applications
  • Major cost overruns for new applications
  • High probability of outright cancellation for large new applications
  • Damages to business operations from poor quality
  • Damages to customer records from poor quality
  • Executive outrage over poor performance of IT group
  • High odds of replacing in-house development with outsourcing
  • Long learning curves for new applications due to poor quality
  • Poor customer satisfaction
  • High maintenance costs due to poor quality
  • High customer support costs due to poor quality

The internal software development community does not do a very good job on software quality compared to the embedded software community, the systems software community, the defense software community, or even the commercial software community. One of the reasons why many companies are moving to outsource vendors is because internal software quality has not been effective.

Among the gaps in software quality control for the internal software community can be found poor quality measurements, failure to use effective defect prevention techniques, failure to use pretest inspections and static analysis tools, and failure to have adequately staffed Software Quality Assurance (SQA) teams. In general, the internal software community tests software applications but does not perform other necessary quality activities.

Poor quality control tends to increase executive dissatisfaction with the IT community, lower user satisfaction, and raise the odds that enterprises will want to shift to outsourcing vendors.

The Economic Value of Software and Quality to Internal Software Users

As of mid-2010 the Bureau of Labor Statistics reported that employment for the United States is about 139,000,000. (Unfortunately, this number is down about 7,000,000 from the 2007 peak before the "Great Recession" when U.S. employment topped 146,000,000.)

Of these U.S. workers, about 20% are daily software and computer users, roughly 27,800,000. Some of these people who work for small companies use only a few commercial software packages such as spreadsheets and word processors. However, about 40% of these workers are employed by either companies or government agencies that are large enough to build internal software. In other words, there are about 11,120,000 workers who use internally developed software applications as part of their daily jobs.

Note that these users of computers and software are not "customers" in the sense that they personally pay for the software that they use. The software is provided by corporations and government agencies so that the workers can carry out their daily jobs.

Examples of common kinds of internal software used by companies circa 2011 include retail sales, order entry, accounts payable and receivable, airline and train reservations, hotel reservations, insurance claims handling, vehicle fleet control, automobile renting and leasing, shipping, and cruise line bookings. Other examples include hospital administration, Medicare and Medicaid, and software used by the Internal Revenue Service (IRS) for taxation.

In today's world, internal development of software is primarily focused on applications that are specific to a certain business and hence not available from COTS vendors. Of course, the large enterprise-resource planning (ERP) companies such as SAP, Oracle, PeopleSoft, and the like have attempted to reduce the need for in-house development. Even the most complete ERP implementations still cover less than 50% of corporate software uses.

In the future, Software as a Service (SaaS), Service-oriented Architecture (SOA), and cloud computing will no doubt displace many in-house applications with equivalent Web-based services, but that time is still in the future.

The economic value of high-quality internal software to users and stakeholders has these factors:

  • Reduction in cancelled projects
  • Reduction in schedule delays
  • Reduction in cost overruns
  • Reduction in user resistance to new applications
  • Rapid deployment of new applications
  • Short learning curves to get up to speed in new applications
  • Higher user satisfaction
  • Higher reliability
  • Better and more reliable customer service
  • Reduced maintenance costs for released applications
  • Reduced customer support costs for released applications

The economic consequences of low quality for internal users and stakeholders include

  • Risk of cancelled projects
  • Schedule delays for large applications
  • Cost overruns for large applications
  • Business transaction errors that damage customers or clients
  • Business transaction errors that damage financial data
  • Possible class-action litigation from disgruntled customers
  • Possible litigation from customers suffering business losses
  • Possible litigation from shareholders about poor quality
  • Protracted delays in delivering new services
  • Poor customer satisfaction
  • High maintenance costs due to poor quality
  • High customer support costs due to poor quality

For more than 50 years, internal software has been a mainstay of many corporations. However, due in large part to poor quality levels, a number of corporations and some government agencies are re-evaluating the costs and value of internal development. Outsourcing is increasing, and international outsourcing is increasing even more quickly.

Process improvements are also popular among internal software development groups. These range from being moderately successful to being extremely successful. As is discussed throughout this book, success tends to correlate with improved quality levels.

The Economic Value of Software and Quality to Commercial Software Vendors

Because there are now thousands of commercial software companies and many thousands of commercial software applications, it is interesting to realize that this entire multibillion dollar industry is younger than many readers of this book.

The commercial software business is a by-product of the development of electronic computers and only began to emerge in the 1960s. Word processing only entered the commercial market in about 1969 as an evolution of electric typewriters augmented by storage for repetitive text such as forms and questionnaires.

Spreadsheets first became commercial products circa 1978 with VisiCalc, although there were earlier implementations of computerized spreadsheets by IBM and other computer and software companies.

A spreadsheet patent was filed in 1971 by Reny Pardo and Remy Landau. This patent became famous because it was originally rejected by the U.S. patent office as being pure mathematics. It was only in 1983 that the Patent Office was overruled by the courts and software implementations of mathematical algorithms were deemed to be patentable.

As this book is written, there are more than 77,000 software companies in the United States. The software industry has generated enormous revenue and enormous personal wealth for many founders such as Bill Gates of Microsoft, Steve Jobs of Apple, Larry Ellison of Oracle, Larry Page and Sergey Brin of Google, Jeff Bezos of Amazon, and quite a few more.

As of 2011, about 75% of the revenue of software companies comes from selling more and more copies of existing applications such as Windows and Microsoft Office. About 25% of the revenue of software companies comes from innovation or the creation of new kinds of products and services, as demonstrated by Google, Amazon, and hundreds of others.

This is an important distinction because in the long run innovation is the factor that generates the greatest economic value. Companies and industries that stop innovating will eventually lose revenues and market share due to saturation of the markets with existing products.

One other interesting issue about innovation is that of "copy cats." After a new kind of software application hits the market, fast-followers often sweep right into the same market with products that copy the original features but include new features as well. In the commercial software business these fast followers tend to be more successful than the original products, as can be seen by looking at the sales history of VisiCalc and Microsoft Excel.

A number of software companies are now among the largest and wealthiest companies in the world. There are also thousands of medium and small software companies as well as giants. Examples of software companies include CAST, Microsoft, Symantec, IBM, Google, Oracle, SAP, Iolo, Quicken, Computer Aid Inc. and hundreds of others.

The primary value topic for commercial software itself is direct revenue, with secondary value deriving from maintenance contracts, consulting services, and related applications.

For example, most companies that lease large enterprise resource-planning (ERP) packages such as Oracle also bring in consulting teams to help deploy the packages and train users. They almost always have maintenance contracts that can last for many years.

As to the economic value of software quality in a commercial context, the value of quality to the commercial vendors themselves stems from these topics:

  • Reduced cancellation rates for large applications
  • Earlier delivery dates for new applications
  • Favorable reviews by the press and user groups
  • Reduced development costs for new applications
  • Reduced maintenance costs for released applications
  • Reduced customer support costs for released applications
  • Increased market share if quality is better than competitors
  • Fewer security flaws in released applications

The economic consequences of low quality for commercial vendors include

  • Possible class-action litigation from disgruntled customers
  • Possible litigation from customers suffering business losses
  • Protracted delays in delivering new applications
  • Unfavorable reviews by the press and user associations
  • Poor customer satisfaction
  • Loss of customers if competitive quality is better
  • High maintenance costs due to poor quality
  • High customer support costs due to poor quality
  • Elevated numbers of security flaws in released applications

The commercial software world has only a marginal reputation for software quality. Some companies such as IBM do a good job overall. Others such as Symantec, Oracle, and Microsoft might try to do good jobs but tend to release software with quite a few bugs still latent.

If the commercial software vendors were really at state-of-the art levels of quality control, then software warranties would be both common and effective. Today, the bulk of commercial software "warranties" include only replacement of media. There are no guarantees that software will work effectively on the part of commercial software vendors.

The Economic Value of Software and Quality to COTS Users and Customers

As of 2011 there are about 14,659,956 U.S. companies that use computers and software. But the largest 1,000 companies probably use 50% of the total quantity of COTS packages.

There are more than 150,000 government organizations that use computers and COTS software when federal, state, and municipal agencies are considered as a set (roughly 100,000 federal and military sites; 5,000 state sites; and 50,000 municipal sites).

The main economic reason that companies, government agencies, and individuals purchase or lease commercial software packages is that packaged software is the least expensive way of gaining access to the features and functions that the package offers.

If we need an accounting system, an inventory system, and billing system, or even something as fundamental as a word processor or a spreadsheet, then acquiring a package has been the most cost-effective method for more than 50 years.

For a company or user to attempt to develop applications with features that match those in commercial packages, it would take months or even years. We buy software for the same reason we buy washing machines and automobiles: they are available right now; they can be put to use immediately; and if we are lucky, they will not have too many bugs or defects.

In the future, SaaS, SOA, and cloud computing will no doubt displace many applications with equivalent Web-based services. However, this trend is only just beginning and will probably take another ten years or more to reach maturity.

The open source companies such as Mozilla and the availability of Web-based packages such as Google Applications and Open Office are starting to offer alternatives to commercial packages that are free in many cases. As of 2011 usage of commercial software is still more common than usage of open source or Web-based alternatives, but when the two compete head-to-head, the open source versions seem to be adding new customers at a faster rate.

Examples of companies that use COTS packages include manufacturing companies, law firms, medical offices, small hospitals, small banks, retail stores, and thousands of other companies. All government units at the federal, state, and municipal levels use COTS packages in large numbers, as do the military services. These enterprises use the software to either raise their own profitability or to lower operating costs, or both.

The economic value of high software quality to corporate and government consumers of commercial software has these factors:

  • Rapid deployment of COTS applications
  • Quicker deployment of new services and functions
  • Short learning curves to get up to speed in COTS applications
  • Minimizing the risks of in-house development
  • Minimizing the risks of outsource development
  • Reduced maintenance costs for released applications
  • Reduced customer support costs for released applications

The economic consequences of low quality for COTS users include

  • Business transaction errors that damage customers or clients
  • Business transaction errors that damage financial data
  • Possible class-action litigation from disgruntled customers
  • Possible litigation from customers suffering business losses
  • Possible litigation from shareholders about poor quality
  • Protracted delays in delivering new services
  • Poor customer satisfaction
  • High maintenance costs due to poor quality
  • High customer support costs due to poor quality

As an example of the hazards of poor quality from COTS packages, one of the authors lives in Narragansett, Rhode Island. When the town acquired a new property tax software package, tax bills were about a month late in being sent to homeowners, and there were many errors in the calculations. The system also lagged in producing financial reports for the town council. Eventually, the package was withdrawn, and an alternate package from another vendor was used in its place.

A study by one of the authors of the corporate software portfolio for a large manufacturing company in the Fortune 500 class found that out of 3,200 applications in the portfolio, 1,120 were COTS packages acquired from about 75 different vendors.

The total initial cost for these COTS applications was about $168,000,000. Annual leases amounted to about $42,000,000.

Approximately 149 people were devoted exclusively to the operation and maintenance of the COTS packages. In a single year, about 18,072 high-severity bugs were reported against the COTS applications in the portfolio.

Indeed, bugs in COTS packages are so common that one large commercial software vendor was sued by its own shareholders, who claimed that poor quality was lowering the value of their investments. The case was settled, but the fact that such a case was even filed illustrates that the COTS vendors need better quality control.

COTS packages are valuable and useful to be sure. But due to the marginal to poor software quality practices of the commercial vendors, customers and users need to expect and prepare for significant quantities of bugs or defects and significant staffing and effort to keep COTS packages up and running.

The Economic Value of Software and Quality to Embedded Software Companies

Embedded software is present in thousands of products in 2011. For consumer products such as digital watches, digital cameras, smart phones, and similar devices, high quality is fairly common; bugs or low quality is fairly rare.

For more complex devices that might affect human life or safety, the quality levels are still quite good, but bugs or errors can have serious consequences for both those who use the software and for the companies that produce the devices. Bugs or errors in medical devices, automobile brake systems, aircraft navigation devices, and weapons systems can lead to death, injuries, and enormous recall and recovery costs.

The economic value of software for embedded software producers derives primarily from sales of physical equipment rather than the software itself. Examples of companies that create devices with embedded software include Boeing, Motorola, AT&T, Nokia, medical equipment companies such as Advanced Bionics, and many others. In total probably 10,000 companies produce embedded devices and the software within them.

As of 2011, about 45% of the revenue of embedded software companies has come from selling more and more copies of existing products such as digital watches, digital hearing aids, and digital cameras.

About 55% of the revenue of embedded software companies has come from innovation or the creation of new kinds of products and services that did not exist before, such as cochlear implants, the Amazon Kindle and other eBook readers, and the control systems of modern automobiles and aircraft.

The economic value of software quality inside embedded software devices stems from these topics:

  • Reduced cancellation rates for complex devices
  • Creating new kinds of devices never marketed before
  • Earlier delivery of new devices
  • Rapid approvals by government oversight organizations
  • Rapid customer acceptance of new devices
  • Reduced development costs for new devices
  • Reduced maintenance costs for released devices
  • Reduced customer support costs for released devices
  • Increased market share if quality is better than competitors

The economic consequences of low quality for embedded vendors include

  • Possible criminal charges if devices causes death or injury
  • Possible class-action litigation from disgruntled customers
  • Possible litigation from customers suffering business losses
  • Possible government action against medical devices for poor quality
  • Possible shareholder litigation for poor quality
  • Protracted or negative approvals by government oversight groups
  • Poor customer satisfaction
  • Loss of customers if competitor's quality is better
  • High maintenance costs for devices with poor-quality software
  • High customer support costs for devices with poor-quality software

Because complex devices won't operate without high-quality software, the embedded software world has one of the best reputations for software quality and also for customer support. Some companies such as Advanced Bionics, Motorola, Apple, and Garmin do a good job overall.

A sign of better-than-average quality control in the embedded domain is the fact that many embedded device companies have product warranties. In general, warranties are more common and more complete for embedded software than for other forms of software.

The Economic Value of Software and Quality to Embedded Equipment Users

The economic value of software to users of equipment controlled by embedded software is the ability to operate complex devices that would not exist without the embedded software. Examples of such devices include robotic manufacturing, undersea oil exploration, medical equipment such as MRI devices and cochlear implants, navigation packages on board ships and aircraft, and all forms of modern communication including television, radio, and wireless.

The major difference between embedded software and other kinds of software is that users are operating physical devices and might not even be aware that the devices are controlled by software. Even if users know that embedded software is in a device, they have no direct control over the software other than the controls on the devices themselves. For example, users can make many adjustments to digital cameras but only by means of using the knobs, buttons, and screens that the cameras have and not by direct changes to the embedded software itself.

The main economic reason that companies, government agencies, and individuals acquire embedded devices is because there are no other alternatives available. You either have a computerized magnetic resonance imaging device (MRI) or you can't perform that kind of diagnosis. There are no other choices.

Embedded devices have also lowered the costs and expanded features in many consumer products. For example, a number of modern digital watches integrate standard time keeping with stop watches, elapsed time keeping, and even tide calculations and the phases of the moon.

Modern digital cameras have a host of functions that were not available on normal film cameras, such as electronic zooming in addition to optical zooming; red-eye correction; and the ability to switch between still and animated photography at will.

Usage of embedded devices has been growing exponentially for about 25 years. As of 2011 at least 150,000,000 U.S. citizens own digital watches, digital cameras, or other personal embedded devices.

Approximately 1,500,000 U.S. patients have digital pacemakers, and the rate of increase is more than 5% per year. There are more than 5,000 installed MRI devices, and more than 1,000,000 U.S. patients undergo MRI diagnoses per year.

According to Wikipedia about 30,000 U.S. citizens now hear as a result of having cochlear implant surgery. (Cochlear implants use a combination of an external microphone and an internal computer surgically implanted under the skin. Small wires from the processor replace the damaged cilia in the inner ear. Cochlear implant devices are fully software controlled, and the software can be upgraded as necessary.)

Most modern factories for complex devices such as automobiles are now either fully or partly equipped with robotic machine tools.

Almost all modern automobiles now use embedded devices for controlling anti-lock brakes (which would otherwise be impossible); fuel injection; navigation packages; and in some cases controlling suspension and steering. Automobile entertainment devices such as satellite radios, standard radios, DVD players, and the like are also controlled by embedded devices and software.

The economic value of high embedded software quality to corporate and government consumers involves these factors:

  • New features and functions only available from embedded devices
  • Onsite upgrades to new embedded software versions
  • Reduced maintenance due to reduction in mechanical parts
  • Rapid deployment of new equipment
  • Fewer product malfunctions
  • Quicker deployment of new services and functions

The economic consequences of low quality for embedded device users include

  • Possible death or injury from software bugs in medical devices
  • Possible death or injury from software bugs in automobiles
  • Possible death or injury from software bugs in aircraft
  • Disruption of robotic manufacturing due to bugs or errors
  • Inability to make repairs without replacing embedded devices
  • Possible class-action litigation from disgruntled customers
  • Possible litigation from customers suffering business losses
  • Protracted delays in delivering new services
  • Poor customer satisfaction
  • High customer support costs due to poor quality

Modern devices controlled by embedded software are one of the greatest machine revolutions in all of history. There are now dozens of complicated devices such as drone aircraft, remotely controlled submarines, MRI medical devices, cochlear implants, and robotic manufacturing that would be impossible without embedded devices and the software that controls them.

Embedded software and embedded devices are advancing medical diagnosis and medical treatments for conditions such as deafness and heart conditions. Today, there are thousands of embedded devices carrying out functions that were totally impossible before about 1975.

The Economic Value of Software and Software Quality to Other Business Sectors

There are a number of other business sectors that might be discussed in the context of the value of software and the value of software quality. Among these can be found

  • Outsource software vendors and outsource software clients and users
  • Defense software vendors and defense software clients and users
  • Systems software vendors and systems software clients and users
  • Open source software vendors and open source software clients and users
  • Gaming software vendors and gaming software clients and users
  • Smart phone software vendors and smart phone software clients and users

The views of both value and the value of software quality in these business sectors, however, are similar to the sectors already discussed. High quality benefits costs, schedules, and customer satisfaction. Low quality leads to cost and schedule overruns and dissatisfied customers.

Multiple Roles Occurring Simultaneously

Many large enterprises have multiple roles going on simultaneously. For example, a major corporation such as AT&T performs all of these roles at the same time:

  • They build internal IT software for their own use.
  • They build web applications for marketing and customer support.
  • They build embedded software for sale or lease to clients.
  • They build systems software for sale or lease to clients.
  • They commission domestic outsource groups to build software under contract.
  • They commission offshore outsource groups to build software under contract.
  • They purchase and lease COTS packages.
  • They acquire and utilize open source software.
  • They offer business services that depend upon software.

This is a very common pattern. Many large corporations build and consume software of multiple types. However, regardless of the pattern, software quality is a critical success factor on both the development and the consumption sides of the equation.

  • + Share This
  • 🔖 Save To Your Account