Jordan Peterson put forth the idea that “empirical” truth (e.g. the Earth is a sphere) is all well and good, but if that truth runs contrary to information that will allow you to spread your genes then it stops being useful. And at that same moment, it stops being true.
You might argue there are Immutable Truths in the management of other people's money when developing products or services. But there is a community of people - followers of #NoEstimates and #NoProjects and #NoManagement that proffer a notion that estimates, projects, and management is not needed for success when spending other people's money to produce products or services.
A new field of sociobiology has emerged in the last 25 years. Sociobiology - known as evolutionary psychology or Neo-Darwinian theory - holds that many patterns of human behavior have a basis in evolution. The postulate of Neo-Darwinian theory is that evolution is not mainly about survival, but about reproduction. In the physical form, reproduction of a species.
In the population of thinkers about project management, an idea (or a principle) based on Neo-Darwinism it's about the reproduction and survival of ideas for the benefit of those proposing this idea, no matter how unfounded the idea is in established principles.
No Estimates is an example of this process.
There is no principle by which you can make on informed decision - in the presence of uncertainties found on all software development projects - without making estimates of the effectiveness and beneficial outcomes of that decision.
To do so means a willful violation of the principles of Microeconomics, Managerial Finance, and Probabilsiyci decision making.
Microeconomics is a branch of economics that studies the behavior of individuals and small impacting organizations in making decisions on the allocation of limited resources. Sofwtare development is subject to micreconimic principles
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 models of mechanical engineering or classical physics, the models of microeconomics 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 allocation of limited resources paradigm.
- Supplier = development resources - these are limited in both time and capacity for work. And as likely talent and production of latent defects, which cost time and money to remove.
- Consumer = those paying for the development resources have limited time and money. Limited money is obvious, they have a budget. Limited time, since the time value of money of part of the Return in Capital equation used by the business. 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 these cases, time, money, capacity for productive value are limited (scarce) and compete with each other and compete with 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 determent of quality and actual productivity.
So cost is inelastic, time is inelastic, capacity for work is inelastic and other attributes of the developed product constrained. The market need is like constrained as well. Business needs are rarely elastic - oh we really didn't need to pay people in the timekeeping system, let's just collect the timesheets, we'll run payroll when that feature gets implemented.
To develop software in the presence of 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 conjecturing decisions can be made in the absence of estimates of the future outcomes of that decision is willfully ignoring the Microeconomics of business decision making in the software development domain.
For those interested in further exploring of the core principle of Software Development business beyond this willful ignorance, here's a starting point.
- MIT OCW Principles of Microeconomics
- Economics of Iterative Software Development
- Estimating Software Intensive Systems
- The Road Map to Software Engineering
- Software Engineering Economics
- Essentials of Managerial Finance
- Making Hard Decisions
- Modelling Complex Projects
- How to Measure Anything
- How Many Licks
- Forecasting and Simulating Software Development Projects