All Software Problems are People Problems

One of the more fascinating insights from Domain-Driven Design, which is obvious in hindsight, is that human relationships can and will affect even the most purely technical of problems. For example, how two different systems within the same company interface will be informed just as much, if not more so, by how the two managers of the two teams might get along.

If they have an antagonistic relationship, that might show up in various ways. Less integration than is technically possible or advantageous. Or the team with less political clout gets stuck with all of the less exciting tasks, which affects the fundamental design of the entire system. 

Or it could be the opposite. Teams that get along great, have important touch points for communication, and the contours of their respective systems and responsibilities mesh perfectly.

Another example might be when a certain framework or conceptual model is dictated from on high, stifling creativity the further it cascades down.

It was a good reminder that software is made by people, to solve problems that other people have determined need to be solved. Some social rationality and awareness is needed. Navigating these issues, with a realistic view of human nature, is just part of the job.

More Prayer Than Discipline

From a distillation of some of the wisdom from the Puritans, inĀ Living Zealously:

…the zealous parent will make more use of the power of prayer than of the rod of correction…and will talk to God about his children more than to his children about God.

This might seem extreme, but if so, we need to reassess our opinion of prayer. Do we really believe in it? And if so, do we have a correct assessment of its power? Do we really trust in the One whom the power resides, or are we trusting more in our own efforts, in our own system of thought?

What do you think?