The Microeconomics of Decision Making in the Presence of Uncertainty
https://www.analyticssteps.com/blogs/difference-between-micro-and-macro-economics

The Microeconomics of Decision Making in the Presence of Uncertainty

Microeconomics is a branch of economics that studies the behavior of individuals and small impacting organizations in allocating limited resources.

All engineering is constrained optimization. How do we take the resources we've been given and deliver the best outcomes? That's what microeconomics is. Unlike mechanical engineering or classical physics models, microeconomic models are never precise. They are probabilistic, driven by the underlying statistical processes of the two primary?actors—suppliers and consumers.?

Let's look at both in light of the?paradigm of allocation?of?limited?resources.

  • Supplier development resources—these are limited in both time and capacity for work. And likely talent and production of latent defects, which cost time and money to remove.
  • Consumers who pay for the development resources have limited time and money. Limited money is obvious; they have a budget. Since the?time value of money is part of the return in the capital equation, the business uses limited time. Committing capital (not real capital; software development is usually carried on the books as an expense) needs a time when that capital investment will start to return?value.?

In both cases, time, money, and capacity for productive value are limited (scarce) and compete with each other and the needs of both the supplier and the consumer. In addition, since the elasticity of labor costs is limited by the market, we can't simply?buy cheaper to make up for time and capacity. It's done, of course, but always to the detriment of quality and productivity.

So, the cost, time, capacity for work, and other attributes of the developed product are inelastic. The market need is also constrained. Business needs are rarely elastic—we really didn't need to pay?people?in the timekeeping system. Let's just collect the time sheets, and we'll run?payroll when that feature gets implemented.

Enough Knowing, Let's Have Some Doing

When the principles of Microeconomics are applied to software development, there is one KILLER issue that, if willfully ignored, will end the conversation for any business person trying to operate with limited resources—time, money, and work capacity.

Decisions about these limited resources are being made in the presence of uncertainty. This uncertainty—as mentioned—is based on random processes, which produce imprecise data. Data were drawn from random variables, variables with variances, instability (stochastic processes), and non-linear stochastic processes.?

Quick Introduction to Nonlinear Random Variables

There are many mathematical definitions of random variables, but let's use a simple one for this post.

  • A variable is a system or project attribute that can take on multiple values. Suppose the value of this variable is?fixed;?for example, when someone asks what the number of people on the project can be known by counting them and writing them down. When someone asked you to count, you could say 16.
  • When the variables are?random,?they can take on a range of values just like the non-random variable, but we are still determining exactly what those values will be when we want to use that variable to ask a question. If the variable is a?random variable and?someone asks what the cost of this project will be when it is done, you'll have to provide a range of values and the confidence for each number in the range.?

A simple example—silly but illustrative—would be HR wanting to buy special shoes for the development team with the company logo on them. If we could not, for some reason (it doesn't matter why), measure the shoe size of all the males on our project, we could estimate how many shows of what size would be needed for the statistical distribution of male shoe sizes for a large population of coders.

This would get us close to the number and size of shoes we need to order. This is a notional example, so please don't go ahead and place an order for actual shoes. However, the underlying probability distribution of the values the random variable can take on can tell us about the people working on the project.

Since all the variables on any project are random, we can't know their exact values at any time. However, we can know their possible range of values and the probabilities of any specific value when asked to produce that value when making a decision.?

The viability of the population values and their analysis should not be seen as a way of making precise predictions about the project outcomes but as a way of ensuring that all relevant outcomes produced by these variables have been considered and evaluated appropriately and that we have a reasonable sense of what will happen for the multitude of values produced by a specific variable. It provides a way of structuring our thinking about the problem.?

Making Decisions In The Presence of Random Variables

To make a decision—a choice among several choices—means making an?opportunity cost decision based on random data. If there is only one choice, it is either to take it or not.

This means the factors that go into that decision are random variables: labor, productivity, defects, capacity, quality, usability, functionality, produced business capability, and time. Each is a random variable interacting nonlinearly with the other chosen variables. In the presence of this paradigm, we must make estimates of not only the behavior of the variables but also the behaviors of the outcomes.

In other words

To develop software with limited resources driven by uncertain processes for each resource (time, money, capacity, technical outcomes), we must estimate the?behaviors?of these variables?that inform our decision.

It's that simple, and it's that complex. Anyone can make conjecturing decisions without estimates of the future outcomes of that decision, which?willfully ignores?the microeconomics of business decision-making in the software development domain.

Here's a starting point for those interested in exploring the core principle of the Software Development business beyond this willful ignorance.

These are the tip of the big pile of books, papers, and journal articles on estimating software systems.?

A Final?Thought?on?Empirical?Data

Making choices in the presence of uncertainty can be informed by several means:

  • We have data from the past
  • We have a model of the system that can be?simulated
  • We have?reference classes from which we can extract similar information

This is empirical data. However, several critically essential questions must be answered if we are going to be satisfied with our empirical data outcomes.

  • Is the past representative of the future?
  • Is the sample of data from the past sufficient to make sound forecasts of the future? The number of samples needed greatly influences the confidence intervals for future estimates.

Calculating the number of samples needed for a specific confidence level requires some statistics. Suffice it to say, those conjecturing estimates based on past performance (number of story points in the past) will need to produce the confidence calculation before any non-trivial decisions should be made on their data. Those calculations are necessary for past performance to be more sporty when spending other people's money.

Thanks to Richard Askew for suggesting the addition of the random variable background

要查看或添加评论,请登录

Glen Alleman MSSM的更多文章

  • 10 Steps to Charting Project Success

    10 Steps to Charting Project Success

    These ten tips come from a Baseline magazine article. However, the article needs to include substantial actions or…

  • Rechtin's Paradigm and Agile Project Management

    Rechtin's Paradigm and Agile Project Management

    The Agile Project Management discussion is built around a supposed paradigm shift from the past to the future. Although…

  • Principles Always Trump Practices

    Principles Always Trump Practices

    Principles, Practices, and Processes are the basis of all successful project management. It is popular in some circles…

    5 条评论
  • Declaring Victory

    Declaring Victory

    There are many "agile voices" declaring victory for Agile Development. Hopefully, this differs from George W.

    6 条评论
  • Don Yaeger's 16 Consistent Characteristics of Greatness

    Don Yaeger's 16 Consistent Characteristics of Greatness

    Don Yeager has a small bookmark-sized card on 16 Consistent Characteristics of Greatness. I got my card at a PMI…

  • Making Choices in the Absence of Information

    Making Choices in the Absence of Information

    Decision-making in uncertainty is a standard business function and a normal technical development process. The world is…

  • Quote of the Day

    Quote of the Day

    Rights are won only by those who make their voices heard. - Harvey Milk

  • Digital Engineering

    Digital Engineering

    I'm engaged in supporting the US DoD, the Australian Defence Force (ADF), and the Capability Acquisition Sustainment…

  • Creating the Project Vision

    Creating the Project Vision

    Long ago, I was VP of Program Management at the Rocky Flats Environmental Technology Site in Golden, Colorado. Rocky…

  • Focus on Value is Only ? the Equation

    Focus on Value is Only ? the Equation

    Whenever I hear, "We need to focus on value over cost and schedule," it tells me that only ? of the project success…

社区洞察

其他会员也浏览了