Some years ago in "A Not-at-All Foolish Consistency," 2002-09-10), I raved about Sciral Consistency, a simple but brilliantly effective application that gently reminds you of activities that need performance periodically. Now Consistency's author, Robert McNally, is back with a new program: Flying Logic.
You probably don't remember this, but one of the first articles I ever wrote for TidBITS was about an application for charting logical arguments, MacEuclid (see "MacEuclid," 1992-11-23)). It was a thesis project, and was never developed further. Flying Logic is like MacEuclid on super-steroids. It doesn't just chart logic; it implements it, in accordance with the Theory of Constraints (especially as described in Lisa Scheinkopf's book, "Thinking for a Change"). Flying Logic doesn't merely describe a logical argument; it constructs a kind of live logical dataflow diagram, composed of causes (actions and preconditions) that combine to give desirable and undesirable effects, leading, ultimately, to some goal. By experimenting with this diagram, it may be possible to reduce undesirable effects and see a way to achieving the goal more successfully.
You could learn about the Theory of Constraints and develop a diagram on paper, on a blackboard, or using a diagramming tool such as OmniGraffle (see "Connect the Dots with OmniGraffle," 2006-02-13); but Flying Logic has some important advantages. It is dedicated to the appropriate kinds of diagram, so its tools and automatic layout and formatting facilitate rapid, accurate diagram construction without your having to worry about presentational details. A diagram is constructed, developed, and rearranged by a series of extremely simple mouse and keyboard gestures; for example, a simple drag connects two entities causally, and the diagram magically rearranges itself to reflect this. Thus you spend your time entirely on content, letting Flying Logic take care of form. And, as I've already mentioned, the diagrams are live, so that (for instance) "confidence spinners" show the actual truth value of all entities, given the current arrangement and initial assumptions. Finally, the capability to group a bunch of interconnected entities and then collapse them all into a single small placeholder box indicating the group means that your diagrams can grow tremendously without becoming unwieldy.
I don't think you can just pick up Flying Logic and start playing. The Theory of Constraints involves an extensive toolbox of techniques, approaches, and structures; to use Flying Logic, you need to know something about this. To help, Robert McNally has provided extensive documentation, both about the application and about the kinds of thinking and problem-solving approaches it's intended for: there are several PDF files (they're really explanatory books), plus some online movies, all excellent.
As a simple example, I've made a document showing a big argument that our neighborhood association had last night. A locked gate has been thrown across a private road, Arundale Road, which our association owns. There's one other way into the neighborhood, so access is not prevented, but opinion is split: some people like the gate because they fear that removing it would cause more strangers to drive into the neighborhood, but others want to use Arundale, both as a right (we own it) and as a convenience (it is more direct when you want to drive out in certain directions). As the argument stood, there was an apparently irresolvable conflict. This is shown by the black and red arrows coming out of the Conflict entity, which transmit opposite truth values; no matter what you do, either "gate open" or "gate closed" will be false, and so the common objective (on the far left) will be false.
The key to conflict resolution is to question your assumptions. (Unfortunately, the assumptions here are shown as little yellow dots; the text is visible in the Flying Logic program, but when you export to a PNG as I've done here, it's lost. You can export the text of the assumptions as a separate document, though that doesn't make for a very clear or effective presentation of the underlying reasoning.) Here, one question to ask yourself is: Is keeping the gate closed the only way to "keep the riff-raff out"? Someone at the meeting argued that there was another way to achieve that need: Make Arundale one-way, pointing away from the neighborhood. That way, we can use it for convenience, but it won't add directly to neighborhood traffic. So I've inserted that in the diagram as an alternate way to achieve this need. Notice that now the resolution of division in the neighborhood becomes achievable, and the truth-values of the entities reveal how: open the gate and make Arundale one-way. (The rearrangement of the diagram all happened automatically when I added the "Solution" entity and hooked it up.)
It's possible to go even further. You can't make Arundale one-way unless you open the gate (because with the gate closed, Arundale is effectively zero-way). So I really ought to add a further connection from "gate open" to "Make Arundale one-way only", to show that the former is a necessary condition for the latter. That way, either they're both true or neither is.
I haven't begun to explore Flying Logic, or the Theory of Constraints, in any depth. But it's clearly an ingenious application, and is easy and fun to use. To try it out, download the free 30-day trial (8 MB). Flying Logic comes in four versions: (1) a free document reader; (2) a $39 educational edition, which watermarks exports and limits grouping; (3) the standard $79 personal edition, which removes the limits of the education editions; and (4) the $149 professional edition, which adds advanced operators (combining inputs with more than AND, OR, and NOT) and some further options. Flying Logic is a Java application (though you'd hardly know it), running on Mac OS X 10.4 or later, as well as Windows XP and Windows 2000.