• Tidak ada hasil yang ditemukan

Cognitive capitalism

Dalam dokumen PDF Evidence-based Software Engineering (Halaman 72-101)

3.1 Introduction

Software systems are intangible goods that are products of cognitive capitalism; human cognition is the means of production.

Major motivations for individuals to be involved in the production of software include money and hedonism. People might be motivated to write software by the salary they are paid, by the owners of an organization that employs them, or they might be motivated by non-salary income (of an individual’s choosing), e.g., enjoyment from working on software systems, scratching an itch, being involved in a social activity, etc.

Motivation can be affected by the work environment in which software is produced. To make the cognitariate feel happy and fulfilled, spending their cognitive capital striving to achieve management goals, organizations have industrialised Bohemia.

Intangible goods incur intangible production costs, including the emotional distress ex- perienced by cognitariate when their ideas or work goes unused or unnoticed. The im- portance and value of an individuals’ contribution is propagandized, while organizations strive to minimise their reliance on individuals.249

While salary based production is likely to be distributed under a commercial license, and hedonism based production under some form of Open sourceilicense, this is not always the case.

This chapter discusses cognitive capitalism using the tools of economic production, which deals with tradeable quantities, such as money, time and pleasure. Many of the existing capitalist structures are oriented towards the production of tangible goods,iiand are slowly being adapted to deal with the growing market share of intangible goods.174,782

This book is oriented towards the producers of software, rather than its consumers, e.g., it focuses on maximizing the return on investment for producers of software.

Human characteristics that affect cognitive performance are the subject of chapter2. Al- most 200 years ago Babbage analysed100the economics of calculating mathematical ta- bles (along with the economics of the manufacture of tangible goods), and later proposed a machine capable of performing these calculations.

The sector economic model groups human commercial activities into at least three sec- tors:986 the primary sector produces or extracts raw materials, e.g., agriculture, fishing and mining, the secondary sector processes raw materials, e.g., manufacturing and con- struction, and the tertiary sector provides services. The production of intellectual capital is sometimes referred to as the quarternary sector. Figure3.1shows the percentage of the US workforce employed in the three sectors over the last 160 years (plus government employment).

How much money is spent on software production?

A study by Parker and Grimm1445investigated business and government expenditure on software in the U.S.A. They divided software expenditure into two categories: custom

iThe term is used generically to refer to any software where the source code is freely available under a non-commercial license.

iiHigh-tech trade conflicts traditionally involved disparities in the quantity of hardware items being import- ed/exported annually.1859

61

1975 1980 1985 1990 1995 2000 5

10 50 100 500 1000 5000 10000 50000

Year

Employees

Lotus Intuit Autodesk Microsoft Oracle

Computer Associates SAP

Figure 3.3: Number of people employed by major software companies. Data from Campbell-Kelly.296 Github–Local

100 500 5000 50000

5 10 50 100 500 1000 5000 10000

Revenue ($million)

Software development costs ($million)

Figure 3.4: Company revenue ($millions) against total software development costs; line is a fitted regression model of the form: developmentCosts0.19Revenue.

Data from Mulford et al.1324Github–Local

software, as software tailored to the specifications of an organization, andown-account softwarewhich consists of in-house expenditures for new or significantly-enhanced soft- ware created by organizations for their own use. Figure3.2shows annual expenditure from 1959 to 1998, by US businesses (plus lines), and the US federal and state govern- ments (smooth lines).

Figure3.3shows the growth in the number of people employed by some major software companies.

Some governments have recognized the importance of national software ecosystems,1404 both in economic terms (e.g., industry investment in software systems347that keep them competitive), and as a means of self-determination (i.e., not having important infrastruc- ture dependent on companies based in other countries); there is no shortage of recom- mendations1792for how to nurture IT-based businesses, and government funded reviews of their national software business.1194,1600 Several emerging economies have created sizeable software industries.77

The software export figures given for a country can be skewed by a range of factors, and the headline figures may not include associated costs.798

What percentage of their income do software companies spend on developing software?

A study by Mulford and Misra1324of 100 companies in Standard Industry Classifications (SIC) 7371 and 7372iii, with revenues exceeding $100 million during 2014–2015, found that total software development costs were around 19% of revenue; see figure3.4; sales and marketing varies from 22% to 40%,335general and administrative (e.g., salaries, rent, etc) varies from 11% to 22%,335with the any remainder assigned to profit and associated taxes.

3.2 Investment decisions

Creating software is an irreversible investment, i.e., incomplete software has little or no resale value, and even completed software may not have any resale value.

The investment decisions involved in building software systems share some of the charac- teristics of other kinds of investments; for instance, making sequential investments, with a maximum construction rate, are characteristics that occur in factory construction.1193 Is it worthwhile investing resources, to implement software that provides some desired functionality? In the case of a personal project, an individual may decide on the spur of the moment to spend time implementing or modifying a program; for commercial projects a significant early stage investment may be made analyzing the potential market, performing a detailed cost/benefit analysis, and weighing the various risk factors.

This sections outlines the major factors involved in making investment decisions, and some of the analysis techniques that may be used. While a variety of sophisticated tech- niques are available, managers may choose to use the simpler ones.1809

The termcost/benefitapplies when making a decision about whether to invest or not; the termcost-effectivenessapplies when a resource is available, and has to be used wisely, or when an objective has to be achieved as cheaply as possible.

Basic considerations for all investment decisions include:

• the value of money over time. A pound/dollar in the hand today is worth more than a pound/dollar in the hand tomorrow,

• risks. Investors require a greater return from a high risk investment, than from a low risk investment,

• uncertainty. The future is uncertain, and information about the present contains uncer- tainty,

• opportunity cost. Investing resources in projectAtoday, removes the opportunity to in- vest them projectBtomorrow. When investment opportunities are abundant, it is worth searching for one of the better ones, while when opportunities are scarce searching for alternatives may be counter-productive.

For instance, when deciding between paying for Amazon spot instances15 at a rate similar to everybody else, or investing time trying to figure out an algorithm that makes

iiiComputer programming services and Prepackaged software.

3.2. INVESTMENT DECISIONS 63

Airlines Catalog, Mail−Order Houses Hotels Knitting Mills Soft Drink Bottling Oil and Gas Machinery Laboratory Equipment Book Publishing Engines and Turbines Bakery Products Wine and Brandy Mobile Homes Cookies and Crackers Iron and Steel Foundries Grocery Stores Drug Stores Household Furniture Child Day Care Services Malt Beverages Household Appliances Tires Men...s and Boys... Clothing Medical Instruments Semiconductors Distilled Spirits Advertising Agencies Perfume, Cosmetics, Toiletries Pharmaceuticals Prepackaged Software Soft Drinks Security Brokers and Dealers

ROIC

0 10 20 30 40

Figure 3.5: Average Return On Invested Capital of various U.S. industries between 1992-2006. Data from Porter.1509 Github–Local

1985 1995 2005 2015

50 100 150 200 250 300

Year

Total cost (adjusted to 2018 $million)

Figure 3.6: Development cost (adjusted to 2018 dollars) of computer video games, whose cost was more than $50mil- lion. Data from Wikipedia.1957Github–Local

it possible to successfully bid at much lower prices, the time spent figuring out the algorithm is an opportunity cost (i.e., the time spent is a lost opportunity for doing something else, which may have been more profitable).iv

Return on investment(ROI) is defined as:

Rest=Best−Cest

Cest , where:Bestis the estimated benefit, andCestthe estimated cost.

Both the cost, and the benefit estimates are likely to contain some amount of uncertainty, and the minimum and maximum ROI are given by:

Rest−δR=Best−δB

Cest+δC−1 and Rest+δR=Best+δB Cest−δC−1 where:δ is the uncertainty in the corresponding variable.

In practice, ROI uncertainty is unlikely to take an extreme value, and its expected value is given by:228

E[δR]≈Best Cest

s δB

Best 2

+ δC

Cest 2

Figure3.6shows the development cost of video games (where the cost was more than

$50million). The high risk of a market that requires a large upfront investment, to create a new product for an uncertain return, is offset by the possibility of a high return.

3.2.1 Discounting for time

A dollar today is worth more than a dollar tomorrow, because today’s dollar can be in- vested and earn interest; by tomorrow, the amount could have increased in value (or at least not lost value, through inflation). The present value (PV) of a future payoff,C, might be calculated as:

PV=discount_factor×C, where:discount_factor<1.

discount_factoris usually calculated as:(1+r)−1, where: ris the known as therate of return(also known as thediscount rate, or theopportunity costof capital), and represents the size of the reward demanded by investors for accepting a delayed payment (it is often quoted for a period of one year).

ThePVovernyears (or whatever periodris expressed in) is given by:

PV= C

(1+r)n

When comparing multiple options, expressing each of their costs in terms of present value enables them to be compared on an equal footing.

For example, consider the choice between spending $250,000 purchasing a test tool, or the same amount on hiring testers; assuming the tool will make an immediate cost saving of $500,000 (by automating various test procedures), while hiring testers will result in a saving of $750,000 in two years time. Which is the more cost-effective investment (assuming a 10% discount rate)?

PVtool= $500,000

(1+0.10)0=$500,000 and PVtesters= $750,000

(1+0.10)2=$619,835 Based on these calculations, hiring the testers is more cost-effective, i.e., it has the greater present value.

3.2.2 Taking risk into account

The calculation in the previous section assumed there was no risk of unplanned events.

What if the tool did not perform as expected, what if some testers were not as produc- tive as hoped? A more realistic calculation of present value would take into account the possibility that future payoffs are smaller than expected.

A risky future payoff is worth less than a certain future payoff, for the same amount invested and payoff. Risk can be factored into the discount rate, to create aneffective

ivThere is also the risk that the result of successfully reverse engineering the pricing algorithm results in Amazon changing the algorithm.15

discount rate:k=r+θ, where: ris the risk-free rate, andθa premium that depends on the amount of risk. The formulae for present value becomes:

PV= C

(1+k)n

Whenrandθ can vary over time, we get:

PV=

t i=1

returni

(1+ki)i, where:returniis the return during periodi.

Repeating the preceding example, assuming a 15% risk premium for the testers option, we get:

PVtool= $500,000

(1+0.10)0 =$500,000 and PVtesters= $750,000

(1+0.10+0.15)2=$480,000 Taking an estimated risk into account, suggests that buying the tool is the most cost- effective of the two options.

The previous analysis compares the two benefits, but not the cost of the investment that needs to be made to achieve the respective benefit. Comparing investment costs requires taking into account when the money is spent, to calculate the total cost terms of a present cost.

Purchasing the tool is a one time, up front, payment:

investment_costtool=$250,000

The cost of the testers approach is more complicated; let’s assume it is dominated by monthly salary costs. If the testing cost is $10,416.67 per month for 24 months, the total cost after two years, in today’s terms, is (a 10% annual interest rate is approximately 0.8%

per month):

investment_costtesters=

23

m=0

$10,416.67

(1+0.008)m =$10,416.67

1−(1+0.008)−22 1−(1+0.008)−1

=$211,042.90 Spending $250,000 over two years is equivalent to spending $211,042.90 today. Investing

$211,042.90 today, at 10%, would provide a fund that supports spending $10,416.67 per month for 24 months.

Net Present Value(NPV) is defined as:NPV=PV−investment_cost Plugging in the calculated values gives:

NPVtool=$500,000−$250,000=$250,000 NPVtesters=$480,000−$211,042.90=$268,957.10 Based on NPV, hiring testers is the more cost-effective option.

Alternatives to NPV, their advantages and disadvantages, are discussed by Brealey250and Raffo.1553 One commonly encountered rule, in rapidly changing environments, is the payback rule, which requires that the investment costs of a project be recovered within a specified period; thepayback periodis the amount of time needed to recover investment costs (a shorter payback period being preferred to a longer one).

Accurate estimates for the NPV of different options requires accurate estimates for the dis- count rate, and the impact of risk. The discount rate represents the risk-free element, and the closest thing to a risk-free investment is government bonds and securities (information on these rates is freely available). Governments face something of a circularity problem in how they calculate the discount rate for their own investments. The US government discusses these issues in its “Guidelines and Discount Rates for Benefit-Cost Analysis of Federal Programs”,1948 and at the time of writing the revised Appendix C specified rates, varied between 0.9% over a three-year period and 2.7% over 30 years. Commercial companies invariably have to pay higher rates of interest than the US Government.

3.2.3 Incremental investments and returns

Investments and returns are sometimes incremental, occurring at multiple points in time, over an extended period.

The following example is based on the idea that it is possible to make an investment, when writing or maintaining code, that reduces subsequent maintenance costs, i.e., produces a

3.2. INVESTMENT DECISIONS 65

2 4 6 8 10

5 10 15 20

Payback length (years)

Benefit/investment ratio

d/m=5 d/m=10 d/m=20

Google Mainframe

Figure 3.7: Return/investment ratio needed to break-even, forGoogleandMainframeapplication survival rate, hav- ing development/annual maintenance ratios of 5, 10 and 20; against payback period in years. Data from: main- frame Tamai,1811Google SaaS Ogden.1405Github–Local

return on the investment. At a minimum, any investment made to reduce later maintenance costs must be recouped; this minimum case has an ROI of 0%.

Letd be the original development cost,mthe base maintenance cost during time period t, andrthe interest rate; to keep things simple assume thatmis the same for every period of maintenance; the NPV for the payments overtperiods is:

Total_cost=d+

t k=1

m

(1+r)k =d+m

"

1−(1+r)−(t+1) 1−(1+r)−1 −1

#

≈d+m×t[1−0.5×(t+1)r]

with the approximation applying whenr×tis small.

If an investment is made for all implementation work (i.e., development cost is:(1+i)d), in expectation of achieving a reduction in maintenance costs during each period of (1−b), then:

Total_costinvest= (1+i)d+m×(1+i)(1−b)×t[1−0.5×(t+1)r]

For this investment to be worthwhile:Total_costinvest≤Total_cost, giving:

(1+i)d+m×(1+i)(1−b)×T <d+m×T, where: T =t[1−0.5×(t+1)r], which simplifies to give the following lower bound for the benefit/investment ratio,b

i: 1+ d

mT <b i +b

In practice many systems have a short lifetime. What value must the ratiob

i have, for an investment to break even, after taking into account system survival rate (i.e., the possibil- ity that there is no future system to maintain)?

Ifsis the probability the system survives a maintenance period, the total system cost is:

Total_cost=d+

t

k=1

m×sk

(1+r)k =d+mS(1−St)

1−S , where:S= s 1+r. The minimal requirement is now:

1+d m

1−S S(1−St)<b

i +b

The development/maintenance break-even ratio depends on the regular maintenance cost, multiplied by a factor that depends on the system survival rate (not the approximate total maintenance cost).

Fitting regression models to system lifespan data, in section4.5.2, finds (for an annual maintenance period): smainframe=0.87 andsGoogle=0.79. Information on possible de- velopment/maintenance ratios is only available for mainframe software (see fig4.47), and the annual mean value is: d

m=4.9.

Figure3.7shows the multiple of any additional investment (y-axis), made during devel- opment, that needs to be recouped during subsequent maintenance work, to break even for a range of payback periods (when application survival rate is that experienced by Google applications, or 1990s Japanese mainframe software; the initial development/an- nual maintenance ratios are 5, 10 and 20); the interest rate used is 5%.

This analysis only considers systems that have been delivered and deployed. Projects are sometimes cancelled before reaching this stage, and including these in the analysis would increase the benefit/investment break-even ratio.

While some percentage of a program’s features may not be used,530those features that will go unused is unknown at the time of implementation. Incremental implementation, driven by customer feedback, helps reduce the likelihood of investing in program features that are not used by customers.

Figure7.18shows that most files are only ever edited by one person. The probability that source will be maintained by developers other than the original author may need to be factored into the model.

3.2.4 Investment under uncertainty

The future is uncertain, and the analysis in the previous sections assumed fixed values for future rates of interest and risk. A more realistic analysis would take into account future uncertainty.503,871

Time

X

Figure 3.8: Illustration of a drift diffusion process. Green lines show possible paths, red lines show bounds of dif- fusion and grey line shows drift with no diffusion compo- nent.Github–Local

Time

Maintenance

0 1 2 3 4 5

0.0 0.2 0.4 0.6 0.8 1.0 1.2

Figure 3.9: Illustration of an Ornstein-Uhlenbeck process starting from zero and growing to its mean; green lines show various possible paths, red line is expected value, and blue lines one standard deviation.Github–Local

An investment might be split into random and non-random components, e.g.,Brownian motionwith drift. The following equation is used extensively to model the uncertainty involved in investment decisions503(it is astochastic differential equationfor the change in the quantity of interest,x):

dx=a(x,t)dt+b(x,t)dz

This equation contains a drift term (given by the functiona, which involvesxand time) over an increment of time,dt, plus an increment of aWiener process,v dz(the random component; also known as a Brownian process), and the function,b, involvesxand time.

The simplest form of this equation is:dx=αdt+σdz, i.e., a constant drift rate,α, plus a random component having varianceσ. Figure3.8illustrates this drift-diffusion process;

with the grey line showing the slope of the drift component, and green lines showing possible paths followed when random increments are added to the drift (red lines bound possible paths, for the value ofσ used).

This equation can be solved to find the standard deviation in the value ofx: it isσ

√ T, whereT is elapsed time.

The analysis of the cost/benefit of the maintenance investment, in the previous section, assumed a fixed amount of maintenance in each interval. In practice, the amount of main- tenance is likely to grow to a maximum commercially supportable value, and then fluc- tuate about this value over time, i.e., it becomes a mean-reverting process. TheOrnstein- Uhlenbeck process(also known as the Vasicek process) is the simplest mean-reverting process, and its corresponding equation is:

dx=η(xˆ−x)dt+σdz (3.1)

where:ηis the speed of reversion, and ˆxis the mean value.

This equation can be solved to give the expected value ofxat future timet, given its current valuex0, which is: E[xt] =xˆ+ (x0−x)eˆ −ηt; its variance is: σ2(1−e−2ηt); sec- tion11.10.7discusses techniques for obtaining values forσ andη.

Figure3.9shows ten example paths (in green) of an Ornstein-Uhlenbeck process, each starting at zero, and growing to fluctuate around the process mean; red line is the expected value, blue lines are at one standard deviation.

Uncertainty in the investment cost and/or the likely benefit returned from a project, means that even under relatively mild conditions, a return of twice as much as the investment is considered to be the break-even condition.503,1488

Obtaining insight about a possible investment, by setting up and solving a stochastic dif- ferential equation1659can be very difficult, or impractical. A variety of numerical methods are available for analyzing investment problems based on a stochastic approach, see sec- tion11.10.7.

Current market conditions also need to be taken into account. For instance: how likely is it that other companies will bring out competing products, and will demand for the application still be there once development is complete?

3.2.5 Real options

It may be possible to delay making an investment until circumstances are more favor- able.399,503 For instance, when new functionality has to be implemented as soon as pos- sible, it may be decided to delay investing the resources needed to ensure the new code conforms to project guidelines; there is always the option to invest the necessary resources later. By using Net Present Value, management is taking a passive approach to their in- vestment strategy; a fixed calculation is made, and subsequent decisions are based on this result; real options offer a more flexible approach.

In financial markets, acall optionis a contract between two parties (a buyer and a seller), where the buyer pays the seller for the right (but not the obligation) to buy (from the seller) an asset, at an agreed price on an agreed date (the initial amount paid is known as thepremium, the agreed price thestrike price, and the date theexpiryormaturitydate).

When the option can only be exercised on the agreed date, the contract is known as a European option, when the option can be exercised at any time up to the agreed date, it is known as aAmerican option.

vA Wiener process involves random incremental changes, with changes being independent of each other, and the size of the change having a Normal distribution.

Dalam dokumen PDF Evidence-based Software Engineering (Halaman 72-101)

Dokumen terkait