Pages

Sunday, April 10, 2011

keep it simple

A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine.
from David Kirby's website
You probably all know this, but it's the first time I've seen it ----

Love it!

12 comments:

  1. I like the quote, but when you are talking about education, how far back do you have to go to find the simple system that worked?

    ReplyDelete
  2. This sounds like the advice I'm forever giving my students about trusting their gut instincts and not over-thinking things. Only a few ever listen :)

    ReplyDelete
  3. Sadly, no.

    Sometimes we just go straight to the unworking complex system.

    Having said *that*, often the simpler system worked just fine FOR A SIMPLER PROBLEM.

    In computer applications, it is often the case that a simple approach works fine for smaller systems, but that the simple approach falls apart for larger systems. Since problem sizes tend to grow, not shrink, the simpler system may have been replaced by a buggy complex system in an attempt to solve the newer problems.



    -Mark Roulo

    ReplyDelete
  4. Lynn -- waaaaaayyyyy back.

    I was watching a Salman Khan video -- Friday, I think. Probably at wsj.

    It's all very exciting because....he's invented mastery teaching!

    Students watch the videos on their own time, and they can move at their own pace; they can pause; they can replay ---- it's individualized instruction!!!!!!

    Then they do practice problems in class.

    I'm a fan of Salman Khan, and I watch his SAT videos, but they are a far cry from the programmed instruction books of the 1980s.

    I wonder how many more decades we'll have public schools group-instructing and constructing with brainy outsiders like Salman Khan coming up with direct instruction.

    ReplyDelete
  5. Sometimes we just go straight to the unworking complex system.

    lolll

    I think that's got to be often the case, though.

    Over the years, I've found that my initial perceptions of situations are 'complex' or at least disorganized and confusing.

    It's not 'til I've lived with a situation and thought about it for quite awhile that I start to boil it down.

    ReplyDelete
  6. Catherine, I've been a fan of the Khan Academy since the start of this school year. As my daughter struggled with Algebra II and I found it increasingly difficult to reteach the content at home, we turned to the Khan videos. They are terrific.

    ReplyDelete
  7. I'm going to have to watch his videos on counting & probability...

    ReplyDelete
  8. "Sometimes we just go straight to the unworking complex system."

    This isn't really one of those Murphy's Laws jokes. There is a complex systems design principle that states: "Working complex systems always began as working simpler systems."

    The point of it is that attempts to create a complex system ab initio almost always fail; working complex systems have to be evolved incrementally from working less-complex systems.

    Whether David Kirby was misquoting this principle or making a separate point, I don't know. I don't know what proportion of NON-working complex systems began as working simple systems versus being created from scratch, but I do know that WORKING complex systems were almost always evolved, not directly designed.

    ReplyDelete
  9. working complex systems have to be evolved incrementally from working less-complex systems

    Is that right??

    Interesting.

    Why is this the case?

    ReplyDelete
  10. It is not necessary to build a working complex system by evolving a working simpler system, but it is a good approach.

    Why?

    Because successfully making a small change in a working system is relatively easy compared to trying to make a large/complicated thing work that has never worked before. If I start with a working system, and then change it, if/when the change doesn't work, I'm pretty sure where to look for the mistake. If I start with a large non-working system, the problem can be anywhere.

    -Mark Roulo

    ReplyDelete
  11. Whether a working complex system has to evolve from a working simpler system is not quite a true or false issue, but one that asymptotically approaches true very quickly as complexity increases.

    You'll appreciate that the explanation is combinatoric. A small increase in the number of parts of a system produces a large increase in relationships and dependencies among the parts. An x% increase in parts means more than an x% increase in unanticipated issues.

    Also for combinatoric reasons---there are more non-working arrangements than working arrangements, which is why mutations are usually bad---unanticipated issues are more likely to break your system than improve it. An increase in unanticipated issues drives the probability that your system will work toward zero.

    A single-step design of a large, complex system results in so many SIMULTANEOUS, interacting, unanticipated issues that the likelihood that it will work as intended is very small. Even debugging it after the fact may prove impossible if there are so many problems at the same time that you you can't tell whether any particular change helped fix the system or made things worse.

    When you can, it's usually better to start small and observe the issues in a real system instead of trying to anticipate them. You'll see more by looking than by imagining. When things are clearly working, reuse the working design by extending it slightly. As you incrementally work toward a more complex design, you are able at every stage to back off the most recent extension, if you can't make it work, and fall back to a nearly-as-good working system, which you can try to extend some other way.

    There are other good approaches, such as assembling a system from a few working, pre-fab components and strictly limiting their interactions, but this is closely related to the evolutionary process I'm describing. You are still building on simpler, working systems.

    ReplyDelete
  12. Actually, it just occurred to me that the evolutionary approach to creating a working large-scale complex system by incremental extension of working simpler versions has its analog in teaching: the incremental mastery approach.

    The evolutionary approach to creating a kid who can do calculus teaches addition/subtraction to mastery (until it "works"), then builds multiplication/division on top of it and hammers out the new bugs until it works, too, and so on, each layer extending a simpler, working system, all the way to calculus.

    The Big System Design approach says that if you want them to be able to do calculus, just teach them calculus, and fix any misunderstandings that arise.

    Then, my statement of the general complex system design principle would be, in this specific case, "Kids who can do calculus well always began as kids who could do algebra well," and you can judge the degree of truth of the principle.

    Maybe this explanation hits home more than the one based on combinatorics. ;-)

    ReplyDelete