My forte is in the area of Complex Systems Development (CSD). The focus of my career has been the eradication of the Software Complexity Barrier (SCB). The approach I have been refining to create software is quite unique.

That approach is called Organic Programming (OP).The term was first coined by Dr. Hideyuki Nakashima back in the late 90’s. To the best of my knowledge, it is the only approach that even claims to eradicate the SCB - and it does so with dramatic efficiencies.

Key to OP's uniqueness is its reliance and emphasis on Inductive Reasoning (IR). I am convinced that complex problems can only be efficiently resolved through the use of strong IR skills and aptitudes. Unfortunately, our industry has traditionally focused on developing and utilizing Deductive Reasoning (DR) skills and aptitudes. While DR has enabled us to be successful in many areas of software development - particularly in Algorithmic Development - it has left us weak in others: Architectural Development is one such area. In my view, that is why we have been struggling with CSD for so long. Another domain where IR is proving invaluable is in the area of Data Analysis. (Please see Grounded Theory).

IR has long been recognized as the ideal approach for the Arts. Artists are required to Perceive, Model and Communicate (PMC) reality. Artists are trained to use IR. OP simply claims that since the intent of Object-Oriented Design and Modeling (OODM) is also PMC, then its practitioners should also be trained to use IR.

OP utilizes IR to deftly model the problem space at the required granularity. All independent objects are quickly and easily identified and modeled. All relationships are modeled at the object's parent level. This guarantees:

  • Maximum code reuse,
  • Agile and extensible architectures and,
  • Simple, intuitive and stable code.

Significant savings in time and manpower can be quickly realized with OP. And current development staff do not need to change in order for a company to see these gains. The XMLStore Case Study illustrates how OP has been used to significantly reduce code complexity for a major corporation - without impacting current processes.

It is my desire to garner as much publicity for Organic Programming as possible. I would be very interested in your comments or critiques. If you like what you see, please refer people to the blog. If not, please let me know, and I will endeavor to fix it.

Recommended Answers

All 10 Replies

You use a lot of buzzwords without defining them. Why should I care about OP?

You use a lot of buzzwords without defining them. Why should I care about OP?

Really. It sounds like a sales pitch for snake oil... :-) The words all make sense, by themselves, but are meaningless I think when strung together like the poster did.

So, advice to the poster - illustrate what you are saying with some concrete examples. Expand your definitions in a more rigorous manner. Don't assume that everyone here understands what you are saying. Keep to the KISS principal when defining terms, and build on your definitions in a coherent and consistent fashion.

I have an extensive blog that defines my "snake oil" and the terms used.

I am proposing OP because it eradicated the software complexity barrier.

I've read your case study, and there is no study there. You don't show anything about the original code, you show nothing about how determining that cacheing is derived by IR rather than DR (and how it's nothing new). You don't show how you saved any code at all, just make a statement that you did save some.

How do we know anything about your case study? How do we know that it wasn't just a bad design? To be a proper study you'd need to show a group using DR solving the problem and a group using IR solving the problem and compare things like: time to solve, code size, code complexity, easy of maintainability, etc. You also need to show how the solution came about from IR.


I've read the blog, I'm not convinced it's anything to write home about. There any books on the subject? I don't see any on amazon and all the blogs are short on details (and posts. One has had 10 in 5 years and it's near the top of the google search). Wikipedia doesn't even have an article about it.

I'm not trying to be confrontational, I'm genuinly interested in anything that would improve my skills and wish to engage in a dialog. I just haven't seen anything yet.

I find this reasoning stifling for true dialog and innovation.

I am not attempting to prove OP is superior. How could I? I am the only person using it.

It is my intent to propose a theory, and to provide evidence that supports that theory.

I cannot prove it deductively, but I can prove it inductively.

I find this reasoning stifling for true dialog and innovation.

What reasoning is that? One requiring evidence?

I am not attempting to prove OP is superior. How could I? I am the only person using it.

Doesn't this say something about OP, the idea being over six years old (at least) and there is not a single book about it, and you are the only one using it?

It is my intent to propose a theory, and to provide evidence that supports that theory.

Let's see some evidence, then.

I cannot prove it deductively, but I can prove it inductively.

Again, have at it. I'm listening.

Re. Momerath's comments.

I agree, and restate my previous comment, or to paraphrase Tom Cruise in "Jerry Maguire", show us the money! :-)

Deductive reasonIng can only accept or refute what is known. DR is necessarily based on apriory knowledge.

To argue deductively about an innovation is futile.
Examples include:
If so few are using it, it must be invalid.
If there is no book on it, it must be invalid.
If there is no controlled study, it must be invalid.
Etc.

Inductive Reasoning allows one to innovate. IRs do not really on explicit evidence, they rely on implicit evidence.
Examples include:
If IR is used when artists model reality, then it should be advantageous for modeling problem domains.
If Johnny takes a bath and does not stink, then perhaps if I take a bath, I might not stink.
If well-written code is similar to sophisticated mental models, then perhaps it would be useful for a developer to be able to create sophisticated mental models.

We all use IR to a great extent unconsciously. The problem is that very few of us develop those IR skills and aptitudes to the same extent that we develop our DR Skills and altitudes are developed.

I have a blog that discusses all of this in great detail. Why do you still demand evidence? Look at the evidence and refute it. But tell me which piece of evidence you are refuting and why.

When Einstein published his "Theory of Relativity", he did not provide deductive proof.
When Crick et al. published the structure of DNA, it was actually at odds with experimental evidence at the time.

IR skills and aptitudes are powerful tools in our arsenal, unfortunately, we are too arrogant to admit that we need them.

One further example of implicit proof is the following:
Our industry is paralyzed by the evil specter of complexity; we do not know how to create powerful systems that do not crumble under it's own weight. At the same time, we are in a profession where IR skills and aptitudes were never so under-developed. Is this merely acoincidem

Following your statements, neural network and fuzzy logic are examples of IR in programming systems today. Have you studied those disciplines? They are both founded upon rigorous, and proven, mathematics and logic. How familiar are you with Prolog, Lisp, CLIPS and other such inductive reasoning languages and tools? This is not new stuff you are talking about, and many use these tools to great effect in solving otherwise intractable problems. I have applied such methods myself to the development of adaptive systems that currently manage the manufacturing processes at most semiconductor fabs in the world...

So, I don't disagree with what you are saying, but I AM saying that this isn't necessarily new nor innovative. You've rediscovered fire! So, agreeing with you further about the ability of such techniques to reduce system complexity, here is an example:

A thousand lines of complex, but well-written C++ code --> 1 line, and 6 rules written by manufacturing engineers (not software engineers or programmers) stored in the database. That was the delta to associate a lot (carrier of wafers) with the next bit of equipment in a semiconductor fab that is the best choice to process the lot on its next step in the process plan. Some of the factors involved with that decision would be alternate steps in the process plan, current recipes loaded in the equipment needed for those steps, priority of the lot compared with other lots ready to process on that equipment, the maintenance state (or planned maintenance) of the equipment, availability of qualified technicians, test plans, etc, etc, ad (almost) infinitum.

Besides the complexity reduction, there was also a processing efficiency improvement. Instead of numerous database queries that was done in the C++ code, the system generated a single optimized SQL query that returned the optimal equipment (if any) in far less time that it previously took, by probably 2 orders of magnitude. So, the entire system efficiency went way up, allowing the fabs using this software to increase their production, which directly meant much better profits. FWIW, I got a US patent for this technology.

If so few are using it, it must be invalid.
If there is no book on it, it must be invalid.
If there is no controlled study, it must be invalid.
Etc.

You made a claim that IR does lots of things, I asked for some evidence. I didn't say it was invalid. I put forth that having my unicorn near me when I code makes me a better coder. Do you accept this without any evidence?

Inductive Reasoning allows one to innovate. IRs do not really on explicit evidence, they rely on implicit evidence.

True, and it can lead to errors:
All the swans I've seen are white, therefor all swans are white. This is the famous 'black swan problem'.

I have a blog that discusses all of this in great detail. Why do you still demand evidence?

I have read your blog and don't see any evidence at all. I asked for some regarding your case study and you complain. When you present something as a solution to a problem, you need to back up the claim. I don't have to disprove your claim. This is basic logic.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.