Making decisions in the presence of uncertainty with limited resources is the domain of Macro and Micro Economics
Making decisions in resource-limited situations at the national or global scale is macroeconomics. Macroeconomics is the study of how people make decisions influenced by tax rates, interest rates foreign policy, and trade policy. Microeconomics is the study of how people make decisions on a personal scale and treats decisions that individual and organizations make. For example, about which software to buy, which Features in the development backlog should be implemented next, what prices to charge for products and services.
Software development is an exercise in microeconomics, since it deals with limited resources - time, cost, and what value is produced in exchange for the time and money.
Because of the limitations of resources, projects need to operate withing a world of limited resources, the uncertainties - both reducible and irreducible - that create risk, and the emerging attributes of all project work. This is the foundation for estimates. Estimates with accuracy and precision values needed to make credible decisions. These estimates are critical to both developers and customers. Underestimating software engineering costs could result in management approving proposed systems that potentially exceed budget allocations, or underdeveloped functions with poor quality, or a failure to complete a project on time. Overestimating costs may result in too many resources committed to a project, or, during contract bidding, result in losing a contract and loss of jobs.
These estimates are used for generating requests for proposals, contract negotiations, scheduling, monitoring, and control.
Managing in the presence of uncertainty requires a Closed Loop Control process. Where targets are set, work is performed, feedback received, corrective actions taken it steer toward the target. Without that target and the error bands on the target and the processes used to steer, Close Loop Control will be ineffective - constantly chasing a moving target, with understanding of what could result, versus what should result.
Accurate and precise estimates - with predefined values for the accuracy and precision needed to satisfy the attributes of the Closed Loop Control system - are needed because:
- The work and the outcomes of that work must be classified and prioritized while the project progresses toward the target.
- Any changes required and assessment of the impact of the change on the cost, schedule, and technical performance of the product or service.
- To determine what resources to commit to the project and how those resources will be used.
- Inform those paying for the work, the probability of completing on or before a needed date and at or below needed cost.
Since uncertainty creates risk, managing in the presence of uncertainty is Risk Management. Since risk management is how adults manage projects, † making estimates in the presecnce of uncertanty is adult management.
No Estimates? No Adult Management.
Here are three starting resources for Software Economics:
- Software Engineering Economics, Barry Boehm
- The Economics of Software Quality, Capers Jone, and Olivier Bonsignou
- The Economics of Iterative Software Development": Steering Toward Better Business Results, Walker Royce, Kurt Bittner, Mike Perrow
† Tim Lister, Risk Management is Project Management for Grownups