Hi Matt, Thanks for your response. I can see exactly what you are saying and I agree with you, in a production environment being able to deliver efficient value should be at the heart of everything that is done and a artistic approach can certainly impede this. I guess I should explain my motivation for trying to find out the finer details. Certainly it isn't to classify myself as elite, I work as a trainer and part of this is taking people who are new to OO and introducing it to them in a good concise way. This involves giving them a good explanation of OO to help provide guidelines for their developer skills so that they can reach a point where the hazy or grey area definitions don't really matter. In order to provide good solid foundations for them to build upon I think it is important to get them questioning the right things and not the wrong things. For example a discussion on the finer details of encapsulation whilst in the workplace is the wrong kind of questioning, where-as discussing scenarios based on how would we solve a problem is very good because it develops their problem solving abilities. To this end, I need to go the further distance to try and remove the need for them to have that discussion at the wrong place in time, else not talk about encapsulation at all which would be more a leap backwards than removing a barrier to learning. Thanks again for the insight so far as I think you have really hit the nail on the head with what you have said and I hope the above can explain somewhat my reasoning for the discussion. Cheers, Kevin -----Original Message----- From: Matt Warden Sent: Wednesday, June 01, 2011 3:06 PM To: thelist at lists.evolt.org Subject: Re: [thelist] Object Oriented Programming On Mon, May 30, 2011 at 6:17 PM, Kipper Timmins <kipper_timmins at live.co.uk> wrote: > Hi all, > > I was wondering if any of you could offer your opinion with regards to > what Object Oriented Programming actually is. Most developers will know > how to use it, however it seems defining it is full of a lot of different > opinions. > It's a concept that too often allows really great programmers to cease being engineers and start being artists. It excuses elitism between senior and junior programmers, and a wedge between senior programmers and management. Our team is very lucky. But in most teams I have observed, software developers are no longer interested in the cost-benefit analysis that engineering disciplines are supposed to have at their core. Instead, things are the right way because they are the right way. That is art. This discussion of the definition of OOP is a great example. While at its root, OOP does of course tackle this very cost-benefit analysis, the discussion has evolved to the point where we have become so divorced from that analysis that it's rarely acknowledged as the original goal in the first place. Instead, the goal has become to know that "right" definition of this or that, or to know the "right" design pattern for this situation or that situation. This leads to many hours spent discussing, whiteboarding, arguing, and finally deciding on the right this or that, and those hours destroy the very benefit that would have otherwise been gained. So, I realize I am not answering your question, but I do suggest that when you get your answer, you always keep in the back of your mind that that all of these techniques have been constructed by very smart ENGINEERS who have optimization of cost-benefit as a goal. In other words, a good senior software engineer earns that title when he or she decides, say, the team makeup is such that we should not use the double-checked locking design pattern, even if that is the "right" prescription for the current technical malady. -- Matt Warden Austin, TX, USA http://mattwarden.com This email proudly and graciously contributes to entropy. -- * * Please support the community that supports you. * * http://evolt.org/help_support_evolt/ For unsubscribe and other options, including the Tip Harvester and archives of thelist go to: http://lists.evolt.org Workers of the Web, evolt !