From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 11cae8,b87849933931bc93 X-Google-Attributes: gid11cae8,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public From: Tansel Ersavas Subject: Re: What is wrong with OO ? Date: 1996/12/15 Message-ID: <32B3F45C.5140@deep.net> X-Deja-AN: 204475402 references: <32A4659D.347A@shef.ac.uk> <32A71BC6.2D857063@arscorp.com> <32A82AFE.255A@possibility.com> <58bq8c$3n6@news.utdallas.edu> <32AA207E.3199@deep.net> content-type: text/plain; charset=us-ascii organization: RASE Inc. mime-version: 1.0 reply-to: tansel@deep.net newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.lnag.java,comp.object,comp.software-eng x-mailer: Mozilla 3.0 (Win95; U) Date: 1996-12-15T00:00:00+00:00 List-Id: Robert C. Martin wrote: > > In article <32AA207E.3199@deep.net>, tansel@deep.net wrote: > > > There are three major reasons why OO projects fail. All of them are > > stated by the great wisdom of Jedi in "Star Wars". > > > > These are: > > "Do or do not. There is no try" > > Using my tools and techniques, I can prove you that I can produce > > better and faster systems using OO (Please read my notes at the end > > of this message). If I can do it, so you can.If you just try to do > > it, you will fail. Be determined to do it. > > There is something to this. However, OO will not work just because > you are determined. You must understand the mechanisms that make it work, > and you must know what those mechamisms can, and cannot do. > I know. But when you are determined, you will be much more likely to obtain the knowledge that you need to solve your problems. > OO is a great technique and it can help make software easier to reuse, > modify and maintain. But it is not a cure-all; and it must be understood > in detail and weilded with skill. Agreed. > > > > "You must unlearn what you have learned" > > People cling so heavily to the baggage they have been carrying, > > they can not have an open mind about OO. SO the first thing I do > > in my training sessions is to create doubts and questions about > > the problems of the procedural approach, and why procedure > > orientation is a very ineffective technique for most new problems. > > Of course, you should have a very good mentor that is capable of > > demonstrating these in practical terms. > > Although I agree with your sentiment, I disagree with your terminology. > We don't really want to unlearn anything. We want to integrate the new > tools and mechanisms of OO into our practices. First of all, my opinion is, developing systems with procedure oriented techniques is a dangerous, wasteful and unproductive process. So far OO couldn't show a quantum leap of difference, but it is not mature yet. When I train people, I look at their background. Usually the more experienced in the traditional techniques they are, the less they believe the necessity of learning a new technique. In my breakthrough courses, for the first part, I challenge the traditional ways of systems development and show that this way of developing systems is a historical accident, and the more we insist on going that way, the more troubles we will be in. Unfortunately, with their slow and wasteful structure, big companies can absorb huge amounts of losses without blinking. This contributes a lot to people not realizing how big the crisis is. In fact, even many succesful systems Today are big money wasters. Procedural thinking and OO are not complimentary. Procedural thinking requires a major transformation that affects all our thinking. I know it, because I was a procedural programming freak, starting programming with a 6502 board with hex keypad, and being a mad assembler, C and later C++ person. Even when I was a C, C++ person my productivity was substantially higher than others, I couldn't make the switch to OO until I let my strong and enjoyable procedural skills go. Now I only program with Smalltalk (not a prerequisite to anything, just a choice), and I do everything in a much higher level previously unimaginable to me. My productivity increased 5 fold, and I developed a tool to further increase it another 5 fold. Now I know that the tools and techniques I use are anywhere from 5 to 25 times better than my old techniques before. These techniques are pure OO but I am reaching limits of them. Therefore I expanded my horizons to other techniques that I combine with OO which will increase my productivity another order of magnitude. Anybody wishing to see these techniques in action, I'm happy to demonstrate them. It is the only proof I can show to anyone that OO works, and works much better than anything they have seen so far. And without unlearning, it wouldn't have been possible. > > > > "You must believe in what you are doing" > > OO will help you. It will feel awkward at times, but you must > > persist with it. You will be eventually rewarded. > > You can't just believe without evidence. That evidence can be > empirical. But there are so few controlled experiments that reliable > empirical evidence is hard to find. Or the evidence can be in the form > of a believable rationale. One that can be tested with thought experiements. I'll remind you of the placebo effect. IMO belief creates miracles. But it is also true that blind faith is dangerous. Any time a new paradigm comes around there are pioneers. They make the bold decisions to shape the history. They are less than 1% of the participants. Pioneers are nothing but visioners and believers. They create their evidence, and history. Then there come early adopters. People who don't need "empirical evidence". Who use their intuition to make sense of what the pioneers are pointing to. Then there are popularizers. People are quicker than the others, just like the people who watch the other traffic lights to see when they are going red so that they could be the first to respond to the green light. They require evidence, but can act very quickly. Then there are followers, much like people passing at the green light. They do nothing but go with the crowd. There must be empirical evidence for them. Follows the conservatives, after observing the great mass, they join resentfully And there are resistors, they will NEVER come to the band, no matter how succesful it is. So, empirical evidence is important depending on who you want to deal with. We need people to create this evidence at the moment, and we are desperately short of them. > > OO is not a motivational discipline. It does not take willpower and > determination to "do things right". Rather it takes knowledge and skill. Not only being an OO trainer, but a motivational trainer, I would have to disagree here. Every training should include a motivational component. I totally agree that knowledge and skill are paramount. The important thing is to be able to excite people to get this knowledge and skill. The teacher is as good as he or she can motivate the participants to eagerly accept what he or she is offering. One of the reasons that children learn OO quickly is they are so easily excitable. The moment you show them something, that becomes the most important thing on Earth. But for the grown ups (or as they are labeled by children: "given ups") a big dose of motivation is required to grab their attention. In fact, I can't follow all of it, but during this discussion about what's wrong with OO I tried to observe any excitement, but couldn't see much of it around. > Robert C. Martin | Design Consulting | Training courses offered: > Object Mentor | rmartin@oma.com | Object Oriented Design > 14619 N Somerset Cr | Tel: (847) 918-1004 | C++ > Green Oaks IL 60048 | Fax: (847) 918-1023 | http://www.oma.com > > "One of the great commandments of science is: > 'Mistrust arguments from authority.'" -- Carl Sagan Tansel Ersavas RASE Inc. mailto:tansel@rase.com http://www.rase.com/