A Deliberate Approach to Decision-Making

Software development can be viewed as a series of decisions to be made.

As you consider this stream of decisions on your project, it’s important to keep a few things in mind.

  1. Do you know what decisions have been made, and which ones are still waiting for a decision? It’s good to maintain an explicit list of these.

  2. Do you know which are the “big” decisions: the ones with the farthest-reaching and most significant consequences? You don’t want to make these decisions lightly, but neither do you want to continually sweep them under the rug.

  3. Are decisions being made at a reasonable pace? It may help to think of your software development process as a decision factory, and then look for places where the flow of decisions is being impeded.

  4. Are you making decisions at “the last responsible moment”? There may be a point at which a particular decision needs to be made in order to keep the project moving forward, and to delay the decision beyond that point would be irresponsible. But if more information, analysis and/or experimentation would help the team make a better decision, then it may be better to wait for that additional input before rendering judgment.

  5. Is your decision-making process open to diverse inputs, and willing to honestly reconsider its decisions when presented with new information? Are team members encouraged to openly share their views, and encouraged to take risks when presenting opinions that might prove to be unpopular? Is your team willing to openly confront conflicting viewpoints, in order to reach the best decisions possible?


Concurrent software development means starting development when only partial requirements are known and developing in short iterations that provide the feedback that causes the system to emerge. Concurrent development makes it possible to delay commitment until the last responsible moment, that is, the moment at which failing to make a decision eliminates an important alternative. If commitments are delayed beyond the last responsible moment, then decisions are made by default, which is generally not a good approach to making decisions.


Model II encourages the individual to maximize his uniqueness. If, in doing so, he should arrive at goals that differ from those developed by others, he will have done so under conditions of openness, trust and risk-taking. The individual would therefore feel free to discuss his differences openly with the group. Moreover, if the individual is in a subordinate power position, and if he feels he had adequate opportunity to dissuade the group and that the group publicly confronted and tested all differences, then the individual will probably be motivated to work toward the group goal but still be motivated to generate new information that may change the group’s decision. This means that one can be externally committed to a decision and internally committed to the decision-making processes that produced the decision yet simultaneously monitor the consequences of the decision thoroughly to seek new, valid information to reconfront the decision without being considered disloyal. In the model-II world, conflicts do not disappear—indeed, the illusion of conflict disappearing is more typical of the model-I world, in which conflicts are settled by power plays based on sanctions, charisma or loyalty.

Next: Decrease Friction, Increase Flow