Friday, February 29, 2008

Software Development and Theology Development

I've been wondering recently why I approach theology, doctrines, and church the way I do. And then it occurred to me it's because that's how I've been trained and practiced for over a dozen years.

In the software development universe, the absolute is the laws of physics. That's the basis on which the computer hardware runs, and the software runs on the hardware. As understandings and applications of physics improves, we get better hardware. With better hardware, we get (arguably) better software. As both hardware and software improves, we find new problems to which solutions can be applied.

In the process of developing software, there are numerous constraints: hardware, money, time, acceptable quality, among others. The choice of tools and development methods and processes can affect results. The development team is a huge factor in the overall process and result.

Software development is dynamic. Tools, languages, algorithms, processes, methods, and entire paradigms that worked yesterday may not work for the next set of problems. Or they may no longer be considered the best or most efficient way of doing things. Because software development involves people and profits, change is often difficult for those involved. However, products, people, and companies that refuse to change are usually found left behind. Coming back from such a debacle is nearly impossible.

Software development is a process of trial and error. No matter how wonderful and precise the plans may be, no matter how great the tools might be, no matter how minimal or grandiose the procedures are, ultimately it comes down to writing code, testing it, and then fixing any problems that are found. Because this is a human endeavor, no one working on anything other than the most trivial solutions believe that an error-free solution is feasible. It comes down to analyzing the errors (bugs/defects) and then determining which ones directly impact the results and fixing them. That doesn't mean searching for and identifying defects, even if they aren't particulary important, is ignored. It turns out from time to time that small defects observed are actually symptoms of much larger issues.

You might ask, what does this have to do with theology, doctrine, and the church? Actually, quite a bit. As in software, there is an absolute - God - but our understandings of God and how we apply what He says is far from precise or perfect. As our understandings increase, our goal should be to put the new ideas into practical applications that solve real problems in the real world. As our understanding grows, we may even find problems that prior to this we didn't even think were problems.

On the other hand, we quite likely will come across cases where our previous understandings, our doctrines, and our practices are inadequate and possibly even wrong. In these cases, resisting change would be the absolutely worst thing we can do. We cannot be afraid of abandoning or changingn even what some call the pillars of faith, if further understanding and practice show them to be wrong or inadequate.

Like software development, I think the development of theology should be a trial and error process. They are both far too complicated to try to come up with a grand scheme and assume it is all correct. In theology like in software, we should consider prioritizing those things that are more important from those that are incidental, and work to fix bugs in those that are more important. This doesn't mean, however, that the less important things are ignored. Rather, we should continue to critically and objectively evaluate and analyze all points of theology and doctrine. As in software, we may find that some of these minor things lead us to better understandings and revisions of larger and more important things.

Personally, I approached software development from a mostly intuitive stance. When analyzing problems and evaluating possible solution approaches, there was often one or two that intuitively made the best sense. I would then have to come up with justifications as to why these were the best, but usually the deductive approach showed that my initial intuitions were correct. When looking for defects, I would "sense" something wasn't quite right, even if it wasn't obvious or even visible. Usually, there indeed was a problem, although it could take many attempts and long hours to actually discover the precise problem. There were, however, times when analysis revealed that everything was working the way it was designed.

The point I'm getting to is that for those of us that are more intuitive, when we sense discrepancies or when we feel discomfort after hearing or reading something, more often than not, a problem does exist. It may not be readily apparent what the problem is, but often, careful analysis will uncover real issues. On the other hand, when we sense that ideas can go together to form a better, coherent whole, it is often pointing in the right direction.

Intuition is often dismissed as lacking in reason and a way of leading people astray. But I believe that intuition is one of God's gifts. Intuition can envision solutions and sense problems that dedutive methods alone may overlook. I believe the world needs both, and the development and applications of theology, too, need both.

No comments: