Been on the road for two weeks straight. At client for a week, at VMWorld for a few days, back at client site. During this time, primary work is on deciding how to move existing platform and augmented software systems forward using the Accelerator paradigm.
Those not familiar with Accelerator, they are fixed-term, cohort-based programs, that include mentorship and educational components and culminate in a public pitch event or demo day.
Money is given to the cohort members ($25,000 to $100,000), mentors provide intensive advice to the members over an 8 to 12 week period, in exchange for a percent of future equity. At the end of the cycle, the software products that result are further funded usually through venture capital, in support of the product strategy of the firm. At this client, we're doing this to expand the code base in a rapid manner to respond to rapid market needs, which are beyond our current capacity to meet in a timely manner.
The business of funding other people to produce value of the firm mandates making decisions in the presence of uncertainty. This is everyday, normal business management. All business's do this. We team with other businesses, we provide funds diectly, others provide funds, we put out a challenge to have those applying for the funds to provide something of value to our portfolio needs. These challenges are in support of our mission. Once selected the Cohort members participate in workshops, mentoring, coaching, architectural assessments, and other standard software development processes.
But there is always uncertainty. This uncertainty is around the knowledge we need to make decisions.Questions like how much can be developed in the allotted time for the allotted money? How much effort will it take to arrive at a needed set of capabilities that can meet our needs? How much testing will be needed to confirm the produced software will properly function with the existing portfolio of capabilities?
The answers to these and hundred's of other questions involve uncertainty, risks, and tradeoffs. A rational decision making framework used to answer these questions involves estimating nearly everything before working examples are present. These estimates are based on experience, assessment, reference classes, models using metrics and measurements, some measured data, but mostly experience from the past tested in a model.
No credible decision making can be performed without estimating the impact of the decision on the future performance of our efforts.
This is so core the business management, it has some names. Managerial Finance and Microeconomics of Software Development. The main objective of these efforts is to improve the probability of success by learning from the metrics of past efforts mapped to the current effort.
These models do not involve a single causal explanation. Instead they combine statistical inference from available data - objective factors - and other subjective factors. In all cases estimates are the basis of the decision making process. These causal relationships are themselves uncertain in their connectivity and influence.
One approach to this problem is the application of Bayes Networks, are models using probabilistic directed acyclic graphics that represents a set of random variables and their conditional dependencies via a directed acyclic graph (DAG). Bayes Theorem provides a rational means of updating our belief in some unknown hypothesis in light of new or additional evidence - observed outcomes or metrics.
So in the end it comes done to this simple and yet powerful observation
Managerial Finance is based on making decisions in the presence of uncertainty. In order to make these decision the needed information must be estimated in many cases.
Any one conjecturing that decisions can be made in the presence of the normal uncertainty of business in the absence of estimates of the outcomes of those decisions is willfully ignoring the core principles of business decision support paradigm.